From 7eb0654594a8ede846376b61a3dc7388ab2abfae Mon Sep 17 00:00:00 2001 From: atusi Date: Tue, 21 Dec 2021 11:10:59 +0900 Subject: [PATCH] I2Loc import --- popcorn/Assets/I2.meta | 8 + popcorn/Assets/I2/Localization.meta | 8 + popcorn/Assets/I2/Localization/Examples.meta | 9 + .../I2/Localization/Examples/Common.meta | 9 + .../Localization/Examples/Common/Audio.meta | 9 + .../Examples/Common/Audio/frances.wav | Bin 0 -> 400974 bytes .../Examples/Common/Audio/frances.wav.meta | 22 + .../Examples/Common/Audio/ingles.wav | Bin 0 -> 299598 bytes .../Examples/Common/Audio/ingles.wav.meta | 22 + .../I2/Localization/Examples/Common/COMIC.TTF | Bin 0 -> 132832 bytes .../Examples/Common/COMIC.TTF.meta | 22 + .../Localization/Examples/Common/Meshes.meta | 9 + .../Examples/Common/Meshes/Mesh_ES.prefab | 83 + .../Common/Meshes/Mesh_ES.prefab.meta | 4 + .../Examples/Common/Meshes/Mesh_US.prefab | 84 + .../Common/Meshes/Mesh_US.prefab.meta | 4 + .../Localization/Examples/Common/Scripts.meta | 9 + .../Common/Scripts/CallbackNotification.cs | 18 + .../Scripts/CallbackNotification.cs.meta | 8 + .../Common/Scripts/Example_ChangeLanguage.cs | 32 + .../Scripts/Example_ChangeLanguage.cs.meta | 8 + .../Common/Scripts/Example_LocalizedString.cs | 63 + .../Scripts/Example_LocalizedString.cs.meta | 12 + .../Common/Scripts/GlobalParametersExample.cs | 18 + .../Scripts/GlobalParametersExample.cs.meta | 8 + .../Common/Scripts/NGUI_LanguagePopup.cs | 29 + .../Common/Scripts/NGUI_LanguagePopup.cs.meta | 8 + .../Common/Scripts/RealTimeTranslation.cs | 132 + .../Scripts/RealTimeTranslation.cs.meta | 8 + .../Common/Scripts/RegisterBundlesManager.cs | 43 + .../Scripts/RegisterBundlesManager.cs.meta | 8 + .../Examples/Common/Scripts/ToggleLanguage.cs | 29 + .../Common/Scripts/ToggleLanguage.cs.meta | 8 + .../Localization/Examples/Common/Window.png | Bin 0 -> 4071 bytes .../Examples/Common/Window.png.meta | 47 + .../I2/Localization/Examples/Resources.meta | 9 + .../Examples/Resources/ARIAL SDF.asset | 1701 +++++++ .../Examples/Resources/ARIAL SDF.asset.meta | 8 + .../Localization/Examples/Resources/ARIAL.TTF | Bin 0 -> 778552 bytes .../Examples/Resources/ARIAL.TTF.meta | 22 + .../Examples/Resources/References.meta | 9 + .../Resources/References/Prefabs.meta | 9 + .../References/Prefabs/Mesh_FR.prefab | 83 + .../References/Prefabs/Mesh_FR.prefab.meta | 4 + .../Examples/Resources/References/Sounds.meta | 9 + .../Resources/References/Sounds/espannol.wav | Bin 0 -> 419406 bytes .../References/Sounds/espannol.wav.meta | 22 + .../Resources/References/Sprites.meta | 9 + .../Resources/References/Sprites/L_EN.png | Bin 0 -> 9692 bytes .../References/Sprites/L_EN.png.meta | 91 + .../Resources/References/Sprites/L_ES.png | Bin 0 -> 8336 bytes .../References/Sprites/L_ES.png.meta | 91 + .../Resources/References/Sprites/L_FR.png | Bin 0 -> 8607 bytes .../References/Sprites/L_FR.png.meta | 91 + .../Resources/References/Textures.meta | 9 + .../Resources/References/Textures/L_AR.png | Bin 0 -> 11236 bytes .../References/Textures/L_AR.png.meta | 47 + .../Resources/References/Textures/L_EN.png | Bin 0 -> 9692 bytes .../References/Textures/L_EN.png.meta | 47 + .../Resources/References/Textures/L_ES.png | Bin 0 -> 8336 bytes .../References/Textures/L_ES.png.meta | 47 + .../Resources/References/Textures/L_FR.png | Bin 0 -> 8607 bytes .../References/Textures/L_FR.png.meta | 47 + .../I2/Localization/Examples/Scenes.meta | 9 + ...2Localization Standard Components.unity | 2211 +++++++++ ...lization Standard Components.unity.meta | 4 + .../Scenes/I2Localization UnityUI.unity | 3982 +++++++++++++++++ .../I2Localization UnityUI.unity.meta | 4 + ... features Callbacks and Parameters.unity | 1631 +++++++ ...atures Callbacks and Parameters.unity.meta | 8 + ...lization features LocalizedString.unity | 1376 ++++++ ...ion features LocalizedString.unity.meta | 4 + .../I2Localization features Plurals.unity | 1638 +++++++ ...ocalization features Plurals.unity.meta | 8 + ...ion features Realtime Translation.unity | 248 + ... features Realtime Translation.unity.meta | 4 + ... features RightToLeft Text Rendering.unity | 1847 ++++++++ ...ures RightToLeft Text Rendering.unity.meta | 4 + .../Scenes/I2Localization 2DToolKit.unity | 2447 ++++++++++ .../I2Localization 2DToolKit.unity.meta | 4 + .../Examples/Scenes/I2Localization NGUI.unity | 2392 ++++++++++ .../Scenes/I2Localization NGUI.unity.meta | 4 + .../Scenes/I2Localization SVGImporter.unity | 1439 ++++++ .../I2Localization SVGImporter.unity.meta | 8 + .../Scenes/I2Localization TextMeshPro.unity | 1791 ++++++++ .../I2Localization TextMeshPro.unity.meta | 4 + .../Localization/I2 Localization - Readme.txt | 864 ++++ .../I2 Localization - Readme.txt.meta | 7 + popcorn/Assets/I2/Localization/Scripts.meta | 9 + .../Localization/Scripts/Configurables.meta | 10 + .../Configurables/PersistentStorage.cs | 286 ++ .../Configurables/PersistentStorage.cs.meta | 13 + .../Configurables/SpecializationManager.cs | 188 + .../SpecializationManager.cs.meta | 10 + .../I2/Localization/Scripts/Editor.meta | 8 + .../Scripts/Editor/EditorTools.cs | 753 ++++ .../Scripts/Editor/EditorTools.cs.meta | 8 + .../Scripts/Editor/Inspectors.meta | 9 + .../LanguageSourceAssetInspector.cs | 20 + .../LanguageSourceAssetInspector.cs.meta | 10 + .../Inspectors/LanguageSourceInspector.cs | 22 + .../LanguageSourceInspector.cs.meta | 10 + .../Editor/Inspectors/LocalizationEditor.cs | 199 + .../Inspectors/LocalizationEditor.cs.meta | 10 + .../LocalizationParamsManagerInspector.cs | 107 + ...LocalizationParamsManagerInspector.cs.meta | 12 + .../Inspectors/LocalizeDropdownInspector.cs | 131 + .../LocalizeDropdownInspector.cs.meta | 12 + .../Editor/Inspectors/LocalizeInspector.cs | 896 ++++ .../Inspectors/LocalizeInspector.cs.meta | 10 + .../Inspectors/ResourceManagerInspector.cs | 29 + .../ResourceManagerInspector.cs.meta | 10 + .../Editor/Inspectors/SetLanguageInspector.cs | 60 + .../Inspectors/SetLanguageInspector.cs.meta | 10 + .../Editor/Inspectors/TermsPopup_Drawer.cs | 164 + .../Inspectors/TermsPopup_Drawer.cs.meta | 10 + .../Scripts/Editor/Localization.meta | 9 + .../Editor/Localization/LocalizationEditor.cs | 308 ++ .../Localization/LocalizationEditor.cs.meta | 10 + .../LocalizationEditor_Languages.cs | 477 ++ .../LocalizationEditor_Languages.cs.meta | 10 + .../LocalizationEditor_Spreadsheet_Google.cs | 717 +++ ...alizationEditor_Spreadsheet_Google.cs.meta | 10 + .../LocalizationEditor_Spreadsheet_Local.cs | 335 ++ ...calizationEditor_Spreadsheet_Local.cs.meta | 10 + .../Localization/LocalizationEditor_Terms.cs | 820 ++++ .../LocalizationEditor_Terms.cs.meta | 10 + .../LocalizationEditor_Terms_Description.cs | 785 ++++ ...calizationEditor_Terms_Description.cs.meta | 10 + .../Localization/LocalizationEditor_Tools.cs | 49 + .../LocalizationEditor_Tools.cs.meta | 10 + .../LocalizationEditor_Tools_Categorize.cs | 226 + ...ocalizationEditor_Tools_Categorize.cs.meta | 10 + .../LocalizationEditor_Tools_CharSet.cs | 190 + .../LocalizationEditor_Tools_CharSet.cs.meta | 10 + .../LocalizationEditor_Tools_MergeTerms.cs | 157 + ...ocalizationEditor_Tools_MergeTerms.cs.meta | 10 + .../LocalizationEditor_Tools_NoLocalized.cs | 163 + ...calizationEditor_Tools_NoLocalized.cs.meta | 10 + .../LocalizationEditor_Tools_ParseTerms.cs | 378 ++ ...ocalizationEditor_Tools_ParseTerms.cs.meta | 10 + .../LocalizationEditor_Tools_Scenes.cs | 179 + .../LocalizationEditor_Tools_Scenes.cs.meta | 10 + .../LocalizationEditor_Tools_Script.cs | 272 ++ .../LocalizationEditor_Tools_Script.cs.meta | 10 + .../LocalizationEditor_Warnings.cs | 173 + .../LocalizationEditor_Warnings.cs.meta | 10 + .../Editor/PostProcessBuild_ANDROID.cs | 133 + .../Editor/PostProcessBuild_ANDROID.cs.meta | 12 + .../Scripts/Editor/PostProcessBuild_IOS.cs | 102 + .../Editor/PostProcessBuild_IOS.cs.meta | 12 + .../PostProcessBuild_UnloadLanguages.cs | 30 + .../PostProcessBuild_UnloadLanguages.cs.meta | 12 + .../Scripts/Editor/Unity XCode.meta | 9 + .../UnityEditor.iOS_I2Loc.Xcode.dll | Bin 0 -> 123904 bytes .../UnityEditor.iOS_I2Loc.Xcode.dll.meta | 24 + .../Scripts/Editor/Unity XCode/Xcode.txt | 9 + .../Scripts/Editor/Unity XCode/Xcode.txt.meta | 8 + .../Scripts/Editor/UpgradeManager.cs | 303 ++ .../Scripts/Editor/UpgradeManager.cs.meta | 10 + .../I2/Localization/Scripts/EventCallback.cs | 24 + .../Scripts/EventCallback.cs.meta | 10 + .../I2/Localization/Scripts/Google.meta | 9 + .../Scripts/Google/GoogleLanguages.cs | 648 +++ .../Scripts/Google/GoogleLanguages.cs.meta | 10 + .../Scripts/Google/GoogleTranslation.cs | 86 + .../Scripts/Google/GoogleTranslation.cs.meta | 10 + .../Scripts/Google/GoogleTranslation_Post.cs | 175 + .../Google/GoogleTranslation_Post.cs.meta | 10 + .../Google/GoogleTranslation_Queries.cs | 375 ++ .../Google/GoogleTranslation_Queries.cs.meta | 10 + .../Localization/Scripts/Google/SimpleJSON.cs | 1109 +++++ .../Scripts/Google/SimpleJSON.cs.meta | 10 + .../Scripts/Google/TranslationJob.cs | 34 + .../Scripts/Google/TranslationJob.cs.meta | 10 + .../Scripts/Google/TranslationJob_GET.cs | 79 + .../Scripts/Google/TranslationJob_GET.cs.meta | 10 + .../Scripts/Google/TranslationJob_Main.cs | 102 + .../Google/TranslationJob_Main.cs.meta | 10 + .../Scripts/Google/TranslationJob_POST.cs | 60 + .../Google/TranslationJob_POST.cs.meta | 10 + .../Scripts/Google/TranslationJob_WEB.cs | 169 + .../Scripts/Google/TranslationJob_WEB.cs.meta | 10 + .../I2/Localization/Scripts/LanguageData.cs | 43 + .../Localization/Scripts/LanguageData.cs.meta | 10 + .../Localization/Scripts/LanguageSource.meta | 10 + .../Scripts/LanguageSource/LanguageSource.cs | 178 + .../LanguageSource/LanguageSource.cs.meta | 10 + .../LanguageSource/LanguageSourceAsset.cs | 16 + .../LanguageSourceAsset.cs.meta | 11 + .../LanguageSource/LanguageSourceData.cs | 176 + .../LanguageSource/LanguageSourceData.cs.meta | 10 + .../LanguageSourceData_Assets.cs | 55 + .../LanguageSourceData_Assets.cs.meta | 10 + .../LanguageSourceData_Export_CSV.cs | 269 ++ .../LanguageSourceData_Export_CSV.cs.meta | 10 + .../LanguageSourceData_Export_Google.cs | 62 + .../LanguageSourceData_Export_Google.cs.meta | 10 + .../LanguageSourceData_Import_CSV.cs | 253 ++ .../LanguageSourceData_Import_CSV.cs.meta | 10 + .../LanguageSourceData_Import_Google.cs | 386 ++ .../LanguageSourceData_Import_Google.cs.meta | 10 + .../LanguageSourceData_Languages.cs | 329 ++ .../LanguageSourceData_Languages.cs.meta | 10 + .../LanguageSource/LanguageSourceData_Misc.cs | 67 + .../LanguageSourceData_Misc.cs.meta | 10 + .../LanguageSourceData_Terms.cs | 256 ++ .../LanguageSourceData_Terms.cs.meta | 10 + .../Scripts/LocalizationReader.cs | 243 + .../Scripts/LocalizationReader.cs.meta | 10 + .../I2/Localization/Scripts/Localize.cs | 519 +++ .../I2/Localization/Scripts/Localize.cs.meta | 10 + .../Localization/Scripts/LocalizeDropdown.cs | 111 + .../Scripts/LocalizeDropdown.cs.meta | 12 + .../I2/Localization/Scripts/Manager.meta | 10 + .../Scripts/Manager/LocalizationManager.cs | 92 + .../Manager/LocalizationManager.cs.meta | 10 + .../Manager/LocalizationManager_Language.cs | 348 ++ .../LocalizationManager_Language.cs.meta | 10 + .../Manager/LocalizationManager_Parameters.cs | 195 + .../LocalizationManager_Parameters.cs.meta | 10 + .../Manager/LocalizationManager_RTL.cs | 82 + .../Manager/LocalizationManager_RTL.cs.meta | 10 + .../Manager/LocalizationManager_Sources.cs | 162 + .../LocalizationManager_Sources.cs.meta | 10 + .../LocalizationManager_SystemLanguage.cs | 44 + ...LocalizationManager_SystemLanguage.cs.meta | 10 + .../Manager/LocalizationManager_Targets.cs | 30 + .../LocalizationManager_Targets.cs.meta | 10 + .../LocalizationManager_Translation.cs | 225 + .../LocalizationManager_Translation.cs.meta | 10 + .../I2/Localization/Scripts/Targets.meta | 9 + .../Scripts/Targets/ILocalizeTarget.cs | 36 + .../Scripts/Targets/ILocalizeTarget.cs.meta | 10 + .../Scripts/Targets/ILocalizeTargetDesc.cs | 41 + .../Targets/ILocalizeTargetDesc.cs.meta | 10 + .../Targets/LocalizeTarget_2DToolKit_Label.cs | 66 + .../LocalizeTarget_2DToolKit_Label.cs.meta | 10 + .../LocalizeTarget_2DToolKit_Sprite.cs | 53 + .../LocalizeTarget_2DToolKit_Sprite.cs.meta | 10 + .../Targets/LocalizeTarget_NGUI_Label.cs | 94 + .../Targets/LocalizeTarget_NGUI_Label.cs.meta | 10 + .../Targets/LocalizeTarget_NGUI_Sprite.cs | 65 + .../LocalizeTarget_NGUI_Sprite.cs.meta | 10 + .../Targets/LocalizeTarget_NGUI_Texture.cs | 41 + .../LocalizeTarget_NGUI_Texture.cs.meta | 10 + .../LocalizeTarget_SVGImporter_Image.cs | 42 + .../LocalizeTarget_SVGImporter_Image.cs.meta | 10 + .../LocalizeTarget_SVGImporter_Renderer.cs | 42 + ...ocalizeTarget_SVGImporter_Renderer.cs.meta | 10 + .../LocalizeTarget_TextMeshPro_Label.cs | 191 + .../LocalizeTarget_TextMeshPro_Label.cs.meta | 10 + .../LocalizeTarget_TextMeshPro_UGUI.cs | 98 + .../LocalizeTarget_TextMeshPro_UGUI.cs.meta | 10 + ...ocalizeTarget_UnityStandard_AudioSource.cs | 45 + ...zeTarget_UnityStandard_AudioSource.cs.meta | 10 + .../LocalizeTarget_UnityStandard_Child.cs | 51 + ...LocalizeTarget_UnityStandard_Child.cs.meta | 10 + ...calizeTarget_UnityStandard_MeshRenderer.cs | 80 + ...eTarget_UnityStandard_MeshRenderer.cs.meta | 13 + .../LocalizeTarget_UnityStandard_Prefab.cs | 96 + ...ocalizeTarget_UnityStandard_Prefab.cs.meta | 13 + ...lizeTarget_UnityStandard_SpriteRenderer.cs | 41 + ...arget_UnityStandard_SpriteRenderer.cs.meta | 10 + .../LocalizeTarget_UnityStandard_TextMesh.cs | 68 + ...alizeTarget_UnityStandard_TextMesh.cs.meta | 13 + ...ocalizeTarget_UnityStandard_VideoPlayer.cs | 33 + ...zeTarget_UnityStandard_VideoPlayer.cs.meta | 3 + .../Targets/LocalizeTarget_UnityUI_Image.cs | 53 + .../LocalizeTarget_UnityUI_Image.cs.meta | 10 + .../LocalizeTarget_UnityUI_RawImage.cs | 47 + .../LocalizeTarget_UnityUI_RawImage.cs.meta | 10 + .../Targets/LocalizeTarget_UnityUI_Text.cs | 111 + .../LocalizeTarget_UnityUI_Text.cs.meta | 10 + .../I2/Localization/Scripts/TermData.cs | 150 + .../I2/Localization/Scripts/TermData.cs.meta | 10 + .../Assets/I2/Localization/Scripts/Utils.meta | 9 + .../Scripts/Utils/AutoChangeCultureInfo.cs | 13 + .../Utils/AutoChangeCultureInfo.cs.meta | 12 + .../Scripts/Utils/CoroutineManager.cs | 53 + .../Scripts/Utils/CoroutineManager.cs.meta | 12 + .../Scripts/Utils/CustomLocalizeCallback.cs | 27 + .../Utils/CustomLocalizeCallback.cs.meta | 13 + .../Localization/Scripts/Utils/HindiFixer.cs | 157 + .../Scripts/Utils/HindiFixer.cs.meta | 12 + .../I2/Localization/Scripts/Utils/I2Utils.cs | 308 ++ .../Scripts/Utils/I2Utils.cs.meta | 13 + .../Utils/LocalizationParamsManager.cs | 90 + .../Utils/LocalizationParamsManager.cs.meta | 10 + .../Scripts/Utils/LocalizedString.cs | 42 + .../Scripts/Utils/LocalizedString.cs.meta | 12 + .../I2/Localization/Scripts/Utils/RTLFixer.cs | 971 ++++ .../Scripts/Utils/RTLFixer.cs.meta | 12 + .../RegisterCallback_AllowSyncFromGoogle.cs | 27 + ...gisterCallback_AllowSyncFromGoogle.cs.meta | 3 + .../Scripts/Utils/RegisterGlobalParameters.cs | 28 + .../Utils/RegisterGlobalParameters.cs.meta | 8 + .../Scripts/Utils/ResourceManager.cs | 186 + .../Scripts/Utils/ResourceManager.cs.meta | 10 + .../Localization/Scripts/Utils/SetLanguage.cs | 27 + .../Scripts/Utils/SetLanguage.cs.meta | 10 + .../Scripts/Utils/SetLanguageDropdown.cs | 43 + .../Scripts/Utils/SetLanguageDropdown.cs.meta | 10 + .../Scripts/Utils/StringObfuscator.cs | 74 + .../Scripts/Utils/StringObfuscator.cs.meta | 10 + popcorn/Assets/Resources/I2Languages.asset | 39 + .../Assets/Resources/I2Languages.asset.meta | 8 + 307 files changed, 45540 insertions(+) create mode 100644 popcorn/Assets/I2.meta create mode 100644 popcorn/Assets/I2/Localization.meta create mode 100644 popcorn/Assets/I2/Localization/Examples.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Audio.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Audio/ingles.wav create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Audio/ingles.wav.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/COMIC.TTF create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/COMIC.TTF.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Meshes.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Meshes/Mesh_ES.prefab create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Meshes/Mesh_ES.prefab.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Meshes/Mesh_US.prefab create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Meshes/Mesh_US.prefab.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/CallbackNotification.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/CallbackNotification.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/Example_ChangeLanguage.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/Example_ChangeLanguage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/Example_LocalizedString.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/Example_LocalizedString.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/GlobalParametersExample.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/GlobalParametersExample.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/NGUI_LanguagePopup.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/NGUI_LanguagePopup.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Window.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Common/Window.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_EN.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_EN.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_ES.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_ES.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_FR.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_FR.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_AR.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_AR.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_EN.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_EN.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_ES.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_ES.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_FR.png create mode 100644 popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_FR.png.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity.meta create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity create mode 100644 popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity.meta create mode 100644 popcorn/Assets/I2/Localization/I2 Localization - Readme.txt create mode 100644 popcorn/Assets/I2/Localization/I2 Localization - Readme.txt.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Configurables.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Configurables/PersistentStorage.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Configurables/PersistentStorage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Configurables/SpecializationManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Configurables/SpecializationManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/EditorTools.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/EditorTools.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms_Description.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms_Description.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Categorize.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Categorize.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_CharSet.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_CharSet.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_NoLocalized.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_NoLocalized.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_ParseTerms.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_ParseTerms.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Scenes.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Scenes.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Script.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Script.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Warnings.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Warnings.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/UnityEditor.iOS_I2Loc.Xcode.dll create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/UnityEditor.iOS_I2Loc.Xcode.dll.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/Xcode.txt create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/Xcode.txt.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/EventCallback.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/EventCallback.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Queries.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Queries.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/SimpleJSON.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/SimpleJSON.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageData.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageData.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSource.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSource.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceAsset.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceAsset.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Assets.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Assets.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_CSV.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_CSV.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Localize.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Localize.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Sources.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Sources.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_SystemLanguage.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_SystemLanguage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Translation.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Translation.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTarget.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTarget.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/TermData.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/TermData.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs.meta create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/StringObfuscator.cs create mode 100644 popcorn/Assets/I2/Localization/Scripts/Utils/StringObfuscator.cs.meta create mode 100644 popcorn/Assets/Resources/I2Languages.asset create mode 100644 popcorn/Assets/Resources/I2Languages.asset.meta diff --git a/popcorn/Assets/I2.meta b/popcorn/Assets/I2.meta new file mode 100644 index 00000000..f99fcf83 --- /dev/null +++ b/popcorn/Assets/I2.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d7621515c2d74e7a8f2db137b44b187 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization.meta b/popcorn/Assets/I2/Localization.meta new file mode 100644 index 00000000..2d64d466 --- /dev/null +++ b/popcorn/Assets/I2/Localization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b53dfc19b95344006a04855337ef5e7a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples.meta b/popcorn/Assets/I2/Localization/Examples.meta new file mode 100644 index 00000000..00a80b10 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b27ce6c46dc8ff04790d01f2841f08b5 +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Common.meta b/popcorn/Assets/I2/Localization/Examples/Common.meta new file mode 100644 index 00000000..09f5d9b5 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c42cba3c502e146419547110ed07f40c +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Audio.meta b/popcorn/Assets/I2/Localization/Examples/Common/Audio.meta new file mode 100644 index 00000000..6626ea80 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Audio.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 17818511482aa1f47a39555401c41978 +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav b/popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav new file mode 100644 index 0000000000000000000000000000000000000000..627bd31798c41958f091f4ac08fd16ccd6f63e02 GIT binary patch literal 400974 zcmeFadALpG|Np<&xc5HClqo}HNX80Dg+el9&JZ#s2_$28f>z>vd(HD4Bs6R`TqHw|GJ!?@BhYcRrr5bmP+%#x)v-$rRABr|4-L~`TlqA|E&+n zr{+|_d-d%6Jm>%Zw|f6m-hydWnu5=`=Ue~nS;0Oy|NVdZU9hdHzJkyGQ@(=F3#R{1 zW&H0vS7~&Ss1($*g7y7(_XX1zygxsW>Z|jgpa1*c`kFNAxw@X8PyH^~26fL>{gFQu z{98HMhXwv2Pr)(@-m7<9&o4`*tI9 zU>TIJ>gD>M{>Y==6-;07p7#ZRtMb%USJiIyzF--u4mFQez5G_`R6cc8 zdDOLF8`M2%sh8jCUR?{eN8PKdO0UW$k9wx=)jO^Q|9H>e`DOk6^#6UX-t+wYG3Hsp z`bf)f>f#-LD!;1x@27wNTku)I`+rMQu*`zr#65KY^_;S}S66kPeIWl(KKBLdIsch@ z&sF`Ya!9M{DtINGN~4~ua(VZk@~O0>;g59uaj)K;e^qnv{OA1Uogq+Z)ch=1X0`(P zhxGrc9`!t%K>ks6so$zxRi`TR->zyNs4~>GU^{unpSr4gDDV7dDxE4vrBzqjrvAv! zJ!uQx^ILs`N?Y(s+JfbC&mYg#oKyGes-B-e9}AYN${-Jas&BYg=~RC8n=8+_vJPoC z;2Bqymn+ZcSMF8+sysYX->vQ`v)~`k)o<=8pFfpP^$G9zQ}0y&kY3#ve6P}}D{0g> zsr0;4dCsqw=jZ>CUe%|rJfl2*^Zn{~!8%mEl*jvmbrnpn-g70tDwp4?46b&}j=7N= zC1QzKE5WUTwt`y(?F5|#-32`FBIqRGU3&rd3SDD=qg$+7HZ8vj-jkPSl%uXaVmH^0@NtyyFVgSg7yf%5%~J%BQ}9WvM*s8CUX9t{OXa z{kxXG$CdX$m8;${KbSvi4)I>KN8QseJfkk20oqmY`wQmbJ?{X|RlVG+_Ny`|N9E-T zRDM+-`N^lsVZ7*5(yH(0dq_i_YHZb*Qb)mOZMgaAmcL2K0m3QO;Dh=;I zhXPRfct%>4U*+XF&)^wAz2~aZb5-wD+M8p4gLiENDh>CP$(1~+4DzXG@Tr!9)&lOi zQkuH*3^e}-En+RQ@5xWTe@m;{qu!~q3O=VjlmU28S=^I``qWjuSHD#mq@fH2_3f%$ z)#jUGH~m+6l%>+~o^Ro*`bCw+l{THLVi9@6kkrB!WF?dKi+ z2vi=Pk&fS7Nz1jVpou{J<{ACL74W>^JMx2q&kCkh@42crsCLj^?#Zj(bEQ7op`NSn zqaRgX(y8~VK9!f>>V3g?q^E4Y?*>7^Z>3z)^1iWvv^-OFQ=TeU-II=TxB}H?byevo z2k@J#`aaTeuYMQ2sKRx1hc&6_3imuazg_BC!Tgl3Kzj9^+*2P=?V+uF zk@~IDsy7<2 zrt(tG`DGXUX40uPP!8qOhoE4;P|m-VPkrQ}9F>=Rs(#+9?^e%MoyjrLJK?-^I1 z($JseSKp<|;5qpk3K|Jinu2XtX;s^4|M~5r9H7<#Win>e$CY>FqYUyE%&(rS?^bYZvcSLQeEE|{MC^P#>;l}Vn0YlAkaJhX+ja#eNmj&D(I=AJU> zd&=Rtl3B=0zc5zxHErj2!9L?RP<^S=kw*0)b<$pbHxOL=53Y+{_h0jXI`~~rP)AT( zaHZfX0eN_@($tOBja?z&N?B?yaL=>L1=R%A1*D@Ko>Lb0yjS2o^#S#cd^H5M{sC

QM8CwgB3t`bv!#ZRQ)8 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


U@ho00do46nMJGvd+-qPML77Ky> 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 SpY!U+XUfad+k-;we~(^ zode?-V-^rG8}DB@JhWlao&w{3b0uT0iJ|_1K^AEnXWXxEM=S5p_`HR(PHh$EPvN|4 zXyM}CBiH=$G@Sn#=Qqw-v~aegn0=8k)e6Si=FMA}Z67-8bKhc&`w{LhS<*i?arPfC zT+Eo}A;u)f)@)wAMSpkbX2!g2UtGWC5! z;geUNwS`%k0^{ugKmEy@&Ru`Q<{KYoY(t81tDf4hcJp@mbw4mLX2SjQk2b7Zz4qz3KNNqZO&FZgwx%nJpYj9tD%jVVF zw@A)x+m7}J(VjnT_2zZ=4|IN!aW8+snDX{5r=PX;?8oo?3FF?}#h6XL<;-iI`5 zV{G{b=<`=bwv{k;&mT6Pf0C~H7iO2^0%H%oIM7Y|Z}xs*X!d@5vEm~6>o`@gHoA&} ze)88peh`;_-|YS5L&Ze`r`A1zwvEyi(A$}eZNeCBOwSr@0@wC)X(qy5PV_9d7kA{6 zFGvbt8E)-G``G@rZA!UFCu0Wk&q{>D`F3#Qddv+#m;u_0}e#CNZo$N)? zVs<+B3A;{gXN$z|vzq7&?2FjngY9~3IcyhUJ005~wr$w9V4Nqg%@=8yNo-+ju&;>o ztSCE+ohEsgT`EzrXT@)@6C^LPC&W#*M|_AqEZM^5NyF?G@kwk{vVg4=|CGHW-oVz$ z^lXcC6+2(LhHVum*jky0jY(weY{-5Y`fQc_oZSX{eNH}~T`l=8>z7!V2lx6#A~q#n z&khLtudo*-;^uqev)E10qac2k-70pojpE1H$>K@2RBT|Q;vUF&C;MDmojoS1G=DE% z!0v9#vqz+z>|AkP@x7SijC|^$=_L8*3ULdq~Loi8y9!7b)s8XO!f$y zB^zaZkgY`i7qAB&;=`<6bV~D9@n7KApD6gP+o!li&Q!VY2W4Pk#W;eh->_NKlR4`dHPcf`c;Jz`S&C3dnP zSChRgV2@&yFo<}hn4rDriRpbDF@pFc93J0OtRh}0P9f{n$M@6nQQT7O2=VK|o?-y< z9p6veXU0zA-?Oig4~>*KG5A|{Cg~%(m2C(1UQk@h)+$8sA^GSd zRwkUZeT9{g>*k7n#mw-@>ofX(##Usr8D0NvPx*=L{O@}qXCZG$!^kgpHvdexL0tAu z?;n}oU)0P0Y5IzhHWWrVgpy1wngtutYfSaVPmG>zwc-GAkNk!mn;&mW3?H4&g_Bz zbBV8XoLwt>kG&w(Abv&cBN@^KEO_={4C^qx`sJSh}{M3e7b)89_9BE z^9k*!-;<0N?`I9Eg>?yemab77?CF}2!(U+u!X{yed_pn^a=^z}IXGmmvz+urmXH|O zT_l_29mq{N=N-&hGzSu{!_)J@G3FJ&%6cXLU>6G;_4yTe(ENva@zeSX=qe;`5-_H`oBq-xB6P#ECHXAs0!{XN!e-?@#Q27`axO zW~WLg*r|v+gLEO=3193KyVxdK7jU9t0U?i^-+Wpa+r{Qlz9N5+jcMMMd6`$5XUh;v zPm>J7eEKJL71@gV&>W!Xg&mJ^n$%D;bNgiyw zsI|=;H-CjSQTS6aB;+EJfmUeiI8LfEhIo!s>h&vK+&M3;Rvs@>sWN}bNgWM)OsUbS zxfJK-x;W0k%|&xxGCH!7TgJ`dxTGN*x2iZ>gj;TKa7K<>A9Zl*VYOq0eye`0(THg{ zG!jbKiV{KLj8t%)|SeIXvQk!NFoF$H|hzRBC6^M+4+n_2k*Ga2(rOXrln_K6HgaK%oQGw(yoO7~cru2K%jCHRXHRkP zfk>1g|8b5Om*=8r7iw`x(#}exjR*%u@E;unhzPf$a2ZOQ11MODODLQ%BBpC7WTFTy zyRojP!qn^|d6UVRy!i>98p4pL2aOaV|L~QbubsGlewE8F&FcKx|t8u!+20H^Edy>d@Kmc zvk<5s^uJkvg+YTX3L0Xu=3iKt#X%!10UBjV&=^ZK|IFen4VqwC&?M-eSc>I9(<~2~ zVMWj^D>eVfasth>P8_$huI7KS0xN?SSp~Gjx1O1zpb8HGj@lu=SuPvXenqvJIdov5n22u~qC; z(A8`c=p^V**&4PPbS*m_be%xgvn|c{*~#oo&r z#!h4Bf}YOK2i?LhXdY!}unR%YWEX*+#db80u&rz-=-KRI&~5Be&~rfFW82v-&~w@4 zpy#nGnupo>0=Q=k{KYn$(~OW1Xwm$JQ}yV&)hmx2D6 zUCwR*y@K5cdL_HL`6G4}`#k7wb_?j$?AGQF*&cQq=r!zi&}-Qppx3c4Hs4`;*`1)D zWBWj_XLmK61-pw9szQ*ohkAr@heGT+0>X! zI|llF_7l)o*!#_Iu^+IXg1*Xr2KpNNMe_yrI{PK)8v=ckeb9WKy~TbF`ZoIw=sWDU zpg&~4Ykrgci2WY)$LvGUciA8C%giD6N6^CpeUJSK$4A(oo6oYN?7u;evA=@;1oRp9 zKKmQ!Pubr=f5!d+`g72y*)P~9puc2I&<{A)e2V>wYXkkYK!3xDn%`i*<;0-BxyNLI0c6H4n1Ca(d8@I3wuaK%ZcL z=S-mg;LM=^DxlAgTOJy>tQlXG4aVnRoLBtZVL?)dnU?7syi9{lnO3_6Mo-#SQD-^=@ z>4vz9`!fZ@DP$74M4?dPsz#xZNWfDf$0!nsN-34LkwgkK7s=%cjZ&f%i$x+Sq#>Ch zDdg9ZK!P9&3?+wL(&J)@ z6zVI++LWnvQv7Hnk|;3_dO&H(r|~3)U&K-s+z+F{kgz{fRf& z0c{$YTszGNK7d>_2(co2E6_zMg$HO5U;*I7F#=FaF)Np;#9G)IMNo+Fq|pm_LWrtb zX+bOzfgiP|0v>>@N)R8S5UNy4rA!53lyYQ}X*@x60kCK-hCCRN@J?wBhC*Aw0KNWI z2v7eygB}1gvYryrF4F-|LT*#2;XLX?%$Y_B>5!2XP+ca{D5=sYEj%f4rc!Cd z1PfdOwiHUWj6#M6ftHX0(}dt>i~&oNWtDOSBWbA7&;fa$E-8^V;6F9^5IaJfR<6*I zaFo($1`@_4{V0i0dnxjlpf9iha1s=yDjmc@QHymX2#F$9NC;0llZ+u#Ni|A!%Z)T+ z;r4V9(y&~sLh67k)s$^DYBi9ggj_lmkWOg@vXOv*pHzW~1cfvcU# zs^C9h2&`3Vg;uN5E0hK@laRj<^iY#JBD29TYPABo!2_f(p+t?*ptr^V0bqEo*Z^Cj z2*E~p(wp&MED_5!Dh=TY7C;gJ*XcrOSfsvS|CR#5d}((25J3xK{z6}&J+xX!BujY4P8y(Pthb->i}T64%fsA6`H^# z617@m(#ds%Cz=PeNP4gl(xO>S5>gasFqB%2tVnX;9NkqiwF2-UpSScv7SiL4AchNa zodzob!Py!$!XL9Z1)N4sRq(k?g|sX*z^IfyNOTxqZZgW1B8f)uJ~0z&3nqjoFcPYY zR-FngHjeWInr6@im(W@O=O&FD4x*~UDCBdcLaouOwOTz=1MG;YN~cl7Ob8i3pXLqH zQ?5k%Y!xyRj*xfYFMvz0#{oG2=F!rDT1WkbETsn8)CQ%}2xAi;7#Rvs+=3g>M}uRf zM0mmlRCuj^4Nq{GVrG+Q0TB|}@P|&&x78P29fCqv}uZA`8 z9{>(KX|)QS3XW9?c*2?ha>EOP#bioMBsdb}gWYMZfVN7NR!g%Z6=F^KNjMM?fFMLx zR?A^F+&5}92v;&FMp4N12p}=w59}y4z?0Ujlj~^-4tISDPZnTX2t&l27LdZyk%Xf0 z6a*DyKOup&)CZmnup8xDNTbkeu@XQiD%4u?k`f?5*lQK2LRJzyuhPK80%|E;6EuNH zvq_;6NfGaGH7dd%Rp5li&|loDD&UD^g-Z<@ zomMX<1i`dw9XzE|P?i$#1pN>+N?~~=Xsgt~vI-5E3mU2n2E;x&K&inbh1pM|)1W`x z33e)-USm|MklUdU+9NiR4+S8~Np+en5i4j;`2tH6Bs-dM<$5#vBaroCGh!D7rbKQ9 zo=kQH!(vsgM;JgUm{Kk#gG?8!zK}f(5MK)fK_Fx$oer5vqtU8OT1-syf}98=|@j+%WBH$$& z#IIJb6%ZoN%ab3cQOHWRwI8=MQ3ErR@DH| z2+kHq;z>9nepF#bT3e!vS*Mhkv{b#(?BP?btcmes;EkV&aAne>Q32o0(Ah-$SK{xh^@JtQZi)~r%nNH~}RQbJq8AL)l^ zru+pk!2=iss|vY6hXXV+SRoFIL2O0rqQI2Mt-zDTsbqMbQW$jxnkKOp#`J)j(?yup zRc1Z>2n0bOjoM@|sEi01oz?=VV?KZ*0Vxf64@q09rvnJ6f>OXc7F>FCH$aqs6{L6R zzs@k6K_k~G3YE^PHhg^Uf3Q~{-c0+t%ZK6?`4GN7!PYV|VO(&Se;ZJ#M=4n9# zeupqRl@^uK2Z2WeI6CZDD$5K&Hn`7JYJ`P}3NFR75mharUM+2LG{Di22=ce81@4CF z(ZOm^Ni15bU}eBG2mk8~7QNAEmbUD#(V7f8m`M+DAPI#7at{KH7F1N!YCTyNc?T{7 zxGWYrfN5YJBY8q^(xblyIUH9_X1z_LwUgbDv9xfzQmccVNk2rhN{?Jg`HKd@a!3wv z0*V@?$xbn=)tIDq*ct_<#KS4@WcR8VCOW0rV5Z4NgGUD`QbDT~o?eiKl^QF80#4FH zAf3iyGHEP2gpA%{(8Cc5Eqnmn!x37UQY(Y}WIVvw0HJ|vEpo2TWHL^>myn8Zl+j*T z>LBoSW}r!JGFh=&beS-BDWR3o3XRn^M1VxCS0YTcdKn<+v8pUsi-^?*jUL?;SRo*Z zdSPa)JyA>;%4n34#ionIfVRk~u&P=w6r@=@ft=)q&uk{8PHIpa)dn*F1ulTIMq$!W zC7+|KQm->o1DbtIXhD+&5bAMZsVp}mZ4fIpb=JXiRE=89+_F}M_z*|d;s~B zYs7@0Ho~G>13+ZAnRPlNMVL`%(Hf09qs55+T0PjAbXJ?usnff#qym~Wh$tj6BW~hU zV}f5zCajdyR$+$0^rf`WlmxvkZis_omAMhVD5Q{520Xa}T88zC%4V_}kyNlURmrsa zX|wC~$XJLqhuNSv0YMg$%x1M}?M9Q)Z1k9oaD)<$#5|z~V)ZhWPG%91i)^Mb>9t7O zO1;^vH(0G^x{g9}5T06RMD;3z)d2TdEOul)pVbC+3|g((VK8YmPKOo`bP(90*PG;K zvz2$K?MPV?jah57>9LwL>hX9LKtKqINr!)(Gn>tLl1B<{6)F6vQ<>mjtw#8#S2$Yb zG6Lip$PGL?Eh>Y|tTk&*RtkT}2Uw`ATB=5bwF#TiAT$7&AS@VZk#f~q-m5i86jqJS zOeR3kQ6(f9wHCca4@N>Ys>q|V7DwVq9El%QkI6`D0UY_PTA9a0)u`3O*eE))#bvhJ zoHA%b5rx*0IVrQ`!EXZFlB=p6jkKKaN(8%tCI4BO858;cV zC4~r2o{)}Vy`r|8?X*;Ge9b%&1RYQE=3*EJ09F-3NnMus5WbDRs@UAZ?hxh zfPahA2n@QNaD*0dOmSM0(z;0#&08r?*sf;p<4%KckBJt{JIjOSgsM2ai@H@PT3Xm9Wa1_)t zB3%UhI-^8sC+`bLLT4kgCRHnN2S!3QsYx`LW`-wm6!?Ls&kVF<^0h#9oy=#ZYSJNA zNLIbY=CL{)ZaK8GSoKD;!)CELbyl;$Nl{)N<2p0;LdN8fWW;WqJ ztHWS11MyCS+ibPkEdi)T8QW~cqzt4Pj9BF;90Xk8!k|a6(=-4qnaob7og9opNJVv&Wu2BXZ1wi=t>0=Zi18+2;k3e%I^z@yKhHp^{#RF};R zb&Oa}8Z}M>RRJ1$D?Dg7*b((MgV~93^ah<7aEycuW~s^vj1en6bv7FbNmhe{T&ieQ z3+ZE2v^Ww^D>xEAssXD7YeO}L4>=9;fR(Dn0DVbTqs`&7yInp7w6i%3W-Aho(_^q( zEjBAs4)Tr(VPjTM*=E_8$gU}Cq)jdY>r6%~+^)A^?g3w&!D%uZ91gQXuSW_q0#aBF0h}1jtaFF$B%Il!2qSz^^rVmi zc=E^fOb7iJRy6T4JJ6w zq|lJj;7QVs@MHv@NDB*`JPjZ6@n`X5)>r^$WIYEYH-w!|1RH#B_gZXv9q%<5WO|F% z?8Nd)X}3G0UR?`M_75X=nz>FkL)hbkn z$zcK`p;|Qn>A&#Q;@Coy-4FzNu+jtfFz^(#QU#uzEj-zsyu;(>70}M+Fq&;{r`_o_ zIII>sat*u-JW=AN1r-&O$w7E>Slj>%BGAvfv5bHN%yh}&u-M%W^fy~^)oJ$fj-c5Z zhOwcJ(S~RvJedXkTqd*8;j}pQ1}_2=`T|cLCq@J4+>sWZyoyK*Pnb)sdcspUV`N5^ zLho~W?UPD~XJ zJ2h}3IoZ5+v&m?JjSS{g0!wAJ*JyE(36R98BB&`FSlkw~qE#I_n+0539Kq8_9EAbF zGvcu0SwoAXxYwkJIH=l9$j&6G#pMaPd0$8Y?VN72&FS;FyaAIN;yBE9%vxCYnoKqY z@G2P8YIT!k-8LUq4@gSkkk4i(2iV*;-s(o$@VU|7>ag2g9$O&jj#=#q8+sV5NJVzL z(eAQXp`XFzwc5-ckIjSm5T1oQ6$+i-gVj9r=94ZG&K6K45xyuUQi$-BD4LmBqcjFR z0T)(4Rx^Guwc_@4!4m@3aZ#_+f&V-_qQe&U2drV2$K!J)y>2gJ*X{(=teDrWcD2EV zz;CUHt!6K#YAh=pUa!OH5BTUh3PF_~^;%~{9Y&|$rT3TvexTiw4FoYczyiLA(_=Nq zB37FMODU({Zue-s-avcA6fqd&a*NmM4m$OEx7(rA7>Zt}*XbnQfk43L^Qr03W*0W4 z$LzHkycRc78K8z@H5(EhfZPnZ9S&>EZ*VHTR-e@y^kO=Je1L_)Z}ns5abf20P<8pJ z0g&$uxU5!-6;rs$+McyK<=TM7<|PwYsk0Lc9;&>Zw}X*T-3Ag3rXh~RlQAP!aVvrJcvx*8Hw>}hb!xZK1dZFqswJ+`Roqp zXSN0$PAl(s`YqOo#b!4H8EQk=Z?{;TPIDyhBjKD8bspi1Vj+dpz*DAdV^*!o9OWZk ztoa>QjY(}sXiXP9e%g%ogx}-Ff4-o@=XS)xVSCKW`vTsa-wQ_=oF1p$g>XR}XiN@G z$ZmJo@epXY`jNj3CWFiGcYDI&03jL$4s_6ieCv!T%p39;c?--2NEE_htI6oG+XD%Y z-)2cA>~@vaZT5s=0j=L3?o3$XMx$JA_1nD>x6z1ngd|$_d;A^`@eX6CKmgB$(;?w- zD0!>jY4RhlIIJ!8?N(C;c0<70p{P9-HhENjd%*6G_&pAA(Ksv)W7tlW5X6(;JppRq z^gG>Q4-~Xp-5!g*vuO9obrE>q4pw&R?7@PEYS0yQfss&sNGRai;s~Br;z<0c!i;vz zhBm*w5VosweyU!(JB&E=dYyq#Iv9(lH35&uA9T3+SlAy<*aJSV-{~cFoAy3GL`~_&)@w<%);IzSF)_5sE!nqTg4!=+Y6KQ~__PT@Fb!tl@ z824kf;k0Y5YNyYJ2p5V@hZOJ1hIwzuhq!S0eeQHD=1lRyK-gal@j+y1kI#+V;Bh%z z9jXIq!S`j<#2zD3dcyBoD^~GXX7YT)cjr6XaKE=*!@x^#k&=!rQ-EL=RENM5J zd8ad+_61$GT*m2AV=3i}c|1W~I2@~{t!bJu?I9;0_nFOpzgMlZ)Wg0oq7Nm8p~7M9 zOhmX{ZdDM@HHRF$(`9d|@3dR<0hcRiM^=N+axtq<9d?GDp?C-p>~do{={ColR4L5_ z$?rThAdo;<7tm_=`K-?FE-aM|ad;ml@H(lp&lM1A#1rwjw5{qlLo~Ox#gTXtN8(4d z804`wG&#ah-Kj1Hsq#)=3~`7^3`g^kR5GUx^S)rj9ISV zJ}u@S!JuAGge)8JC4JtY%jIv+CwM*-M*QOvJi&+45%l*4a5d^n=OP_me;K*YVfVTM zR-Sk8VYe6h*`0B(&lQdNVh$%#m>cfIYA6-;IGjG8JzWX&D87ug5)_Jq6w(4u9eqxQ z-^bW`8v54y>6e1z4tMj`Kr&znI}*tpFyEa_ zJ1v%g+a1dXB5p@9@Ahb%yv?8V`NH~WG}*}6a~6wI>5RIAX}`r13i2AgwJ#co285tV zVyIY5=k<6zG!zP;67g80uAtlFY^jfFyA<|#!%n}Od{#`_0-C5h=8mSL0WY}dybiA= z>82WR2FUA+jR!JF7qm&5*$N_#_;$yKuEEh+AKXQ09;m;T2 z6@Rb>W4j!@H*60CTtUn|LHx?#PVs(EA{j`!+<6yPEcCmLHJ3oJ`TdSuJx0R$^SYjh zP+X*t4tT1}b~Cp@>&VA)5&UlBb?fa~PjK4o!62Tgv99PygoBAtFq-D0LB5d5cnhIe zG#Tkmgb~+CA|d>VJq5hA-75{b+}(NVD3luCEP8_osk z4UwSMV4s}`B|;(MoxxDaq@MTr>5Pg7Uh~<|-0O3<)c3mW<*1L3xr5|1Z&$`1(k8s9 zxkQKu7d`LdZ5c1BFXRfj05n%LOzRrNt1py6CdBeF6mt3oX8A%&Q_jsNu=EOgsdI>r z`lzM@=>QlBHEIj`e7wHJ5j=sSD3+hC+8qmfvAXgkpt?`n9itld1~WX#$|o}AR3YD` zPlS<|_+YG%Nn}diWHg+J@?kt1c>``(Q15fQ$?o1jAO*{MQ=xn)7~}b9rJN6k;ec=` z9cm9Ili_3`jsC$XuBJn!u2el3=?!_Y$`9}{tQ9YNC}38;l=AsRNdYT6YKg~G-bN8(8w zi67O0Y%+)`3d0YVf`)-C)nqVU3X`Pae5tq4U7lrvcG*HWp6M>-O0{5nCYeizlOcaF zh};v5n?io+*<`$C znwu30(qV=-0Z*eRhFHjI(sJl6cNkcBr!G64j+P^?xY_~<}KHrgmC7mbAgHI!(GA1TD* z#c(>BPN$=@t9;hf5$TL{)H||qaIwS@Q`IO{LQpYW2o`dk(avZoR*Ge+xmYwD4Q8@| z*s?{jtkzKvCput)bd)-0ySj3ny%qFN7jn6dN~V8yd44*-I2(yZf~k1HpUZ{w zorzRF77a#gsZ6ZWo$U@s`Xli~FcQY>)mKS|qnS*wZ)s-^CDU(Nitt5=kU|#VY2nFn z7IT<`gO&ac-s?@pYynH65H3s?Jbos8$+2p&9shMT(w&9OaBpvNxLE0`bu6wHyM1Y2 zu9!*WllgQam9zQNwnj3QO2#oC#=7#!6lTJFwc1|n?X9)En}h??Nbfc@Lm`;Ahl;%= zz7m}^Yc!Kdtmqwx`F*8iqCQ%zq{8EKQb}_h{_M@=%8qKacg<*c)bH2n;?-oaui*E0 zcC=d@fs?DnYOzSXdofh4X3Jz}Vj^Rz#JW>~YND7-#X5wNj0F~SrP2u4WP5via=bTC zv{VzdM0KEAOc&D`TPB+E_a;$O#W>a&v94%Wsg|rIyHnk%LT@RRil?H5VmP&CWvZxi z^~W>S1Xv}hb1~hOqT0wca%o$ucKQoxaBXn}&lqteepDBC6_c2i6IH05vMlbRT1*yt zGbC!J*1Mo*cxc>KD;B#O=|Xw9x7s_JtalZwUFl*fo=oOr2s9g>lF05zMLn==vZpvy zXs@KxoeSp=BJINgg+_6xy498->w%JrWhWhu8c zI=3-e4Fv+Zlp|`*b;Y};i`yN{2J=h$E1kXNuAZUxT32Dg@NjN^rP0%0J*lsIRJ}xy>8$ zWrKG#UFe4iIw4c`72|TSjC&w}#TYP@syq+-T-Ha>dXzxz8P}kk<@r3i?!m`0yWuRJ_HBxMJmlltW zwJ)mm%^Iq&8L0J#IznC5Qofw;D&-5Eu4vIY+TLDh&t}u@*}ignF&Gb41_vwEv9Tda z-zWrZdaftmw@Nu)ol}eSrRL08g0;^nW8;}{sMg*-dnt5Fu9#>q*s_&)_ngkoUeDm* z*jY=HOCtD1Gds{;o7)|U^z@YNp4d5q)xjzhpRqccM!TiAZK($mYm7Jw?DKgehwU(^`XtUC@YD4Wq z?fu36V)s}L3bv=atI5Kdn+jC}KQCJv%!5^)I#)}x3RFirM>>nHR&7MPi^Y<&#SuI+ z#F6+>UDH=<$0`rQpEA~NU(-jm*4{m*M52}k=d2uFwBSV7V6ECeQta+sJT@@4w0-uh z+Q6)0t$^t4%I4dyXul0|0_SHHk#>a~jJp=tCvo_9d3}Vqy>FFwT7rHwOrHVV&>6%+Cm5TX% zwwNF2E_PsfS{)gw*2l+3rn3bSLMJ`hq8SPypqi-9>xm9z=FMBy*;P1gd;!)cjbdSR zdCy=ey=r->XvubeY^qKm$LPqbm^QkN_C@uLB4CG09FO+T<`2JQ5~y{ zRXW|R+83*Jc67R09Kkb39El&*jRTD$mOO3r$8>{4t^?G*M*5L+9ZMl0ZVi%>I6mkPkC~bIipNd)d zHW%ZNwmAH$UF#zDBHWuf5gNA6@sbkWoxxwockJrcJX(JSl zL}T$pGL_C`b4d5aQb%W3xzb&&)q5JVdi(kZ28U)3kBrV4n>%lO{(^;z7B5*kvFwE9 zD^6T_(yG;La?RRx>rdXW@sv|HZ9eVvEoYpG51MT|XZyM5oqxfF7wy=2@gq~dv^X0GHd*A&JJowPVkL;g1 z@aSWYfAwom9DMTY-+1cjXP$lTo6o=St#7~h(#zlZ?)Sd`$`4+B?RECXn{U1S&JTa| z<981oe(%W9V@xc59-3axb~3zD#xCM^aMyFqHdotAZQp5oPjr!Jw`h;(F3}IfYVkbr z3h_ze&v`HN{)xBnUOvD__#9v0D}0r&^Zon|{vQ5b{vp4_Z^A#hz&7|DKI2~*XbVUK zx_~iY!H-;C{028Wuqv=F%))J9byy!Z)Ajh?$yTzPXE1oZ2DcHQ;*e`Cd>jO1wN%g5!o`#;FBd|D0zRiG4=^9pV-H5fBe?RZ+`s7$6xxX?)|%4EskAw z?B<{7K$|~Vc5M5xrx`nT^D)D*`my{^d_VCXJ>}?o$4))gbL8eDpB%ZGu_O0l+j``T zBPSin9?8Ae^IrYE(tGXiW#3C3zUlBa?|yjrl*5Y-9g;jNU~(7W+h`lXcL4EjGPVh9 zlWkYF#+{*UueH6^_WsP-%)afNnWO)?Z+ixOu>D_^huGct3czJ;-FQF$m%z)lc+>w5 zyg7dlCt`! z*hYLCVKcsra2nq7KONsd*n%%0oP}>5Y{eH3&SAg8w+_z3mk!RyR}C(}d-r$Yiv||~ z)fclrv){6>bA#LvC+8ISOp1zqjCa0gbHm&SH_Dp$pobdY4xz7{%;Cnkx!gQ%oSV<- zI6Xd-V&oQZ3)x3_gM1OU7@t~MichXA<4)j~b1S$L@tKg5xK-S0ZjxKW{?6Xv>iEvf zT5cV;o;#V_z?nERw~;%Av*7b0HqMT>;@`(tN1WWL+$Mad#f^`aZ01hmPUp68XK-h7 z9?pxe3mo8l9M7G_ZRPy`w0M+&8$VxTm>i+G^ahT#6}bw&r|<;6fA9ppvG7&)ZG4sDd3<}~uiP!{R`xsK?8}X%OP4HOv~a=v z@p*H{=8O){9vU3z@9Uk_=&9GL-Ia1zXGf`6XwT=enRF_dz%y?o90~^fyw8gt*zr#s zHvBUz{>}$~y@tO?#XAys%~ULE<5+4SIJkcXli9+w6` z+h&TVeyefoGc6lvx&Gf;Hd-wk$6IoGzRIfU6h9E;r(Wp~@&~yS=1<`Gn*QK2e(HC^ z@tANdjtD0jocR6d!4KFs^z&2PDt=&UaNCC61FQPeDeizu*%$0vr%b2V0i_CuDjZG4 zf?E!7u{tLlw8aK02illi10APQ!Ty1%WDs4!Mid@cy>@DR{=`5({^4m^IyJ@htqD#} zv0(3%E-5r&eZnwP(!ME~FbuzO3hJ<{`2(rvcJDc;XOpXv>b1eOt5-}+iB^Nhz?305 z6%Y1L#n1bhJ)JtpePz+al%nq-#}-XIi4W53JdoVk-@gnkcZ&vg@4n)*&C{vT1rvVA z6CBvXlYk2*1liD>vuDA5-KSJIpf|KMKA_c2AE-5-K3E59wC)KrGs1a{8V}XLXA(L z)3Qny_VoM7+E*WJut}Uu?VLZ+I_KG>>rvLoCYMdMt)e^6&D^mpraL=l?i}yFDhOCT zE=)m|DS71he>(gT+`xv)6leWE++NqZ4;T;d2gH)_?(vDp>fKknBCB@qSq5|sBD!|( z9t`q>yI1XAeXzN6GRW(LyAPz(ySEG=Dq1QXY(96jYpStl*#-_qohr1fF%TSBHT~bV z4fd&>lRWN;Bf@{-DRCJ0;k3xA$u%2jzk1#7V1EnHfY?-{AINU3o<{V*0sQC?99X>y z9@vORqw^=GvcWA==3s9N^0*-2Y~#Wf&{|gqrp$d)Y}K0SUQ^it^d)6?Q#g=-#49)- zh%Pjb9Vqgy#|rpN(lU}`%G!rehz#tWSi648x5~8^31dA!;qp&4mXRBS6YG{yfCTkZ z@nh5In(hVN{;l;)W2ikP3(NV5HkW7_fe#n>L6Bf?6*u%#($*=#vA4=ka4t5}45Li9 zprg<5!HFo`HyfR?N7ugDErsbtpSL^zx6pNlYgqy!R8;Rm$3U+ zw`nb=D#>X%TT)MTf9Cu%(y4cgAg?&mHoEA9-Mf{ax%a<)~M{vVlf|A`rvxKA@37GXO$8@rCPH8i3f`>xw} z=f3^>p4}(G@(_P7%;_779hY2p$(@(%zhvJ*PXFk$mrT(OMf15vvtMr>#B2VIM{l^H zSU>N)LjA@Yi}mx*FVsK(`9l57GYj=wZYk7Ptt!+{J+)9D8!OZoEh^OK&MnlJEGg7y z%_`I@l|sE%E7XUF3-#XKLVe!6LVf-ELVfk>Lj9)mi}kPEQmo&+s#rhi)MEXNv0{B> zQL#Qcw^-k}q*x!HRjgMl#d^6`talF=>jS;T`uust`keK}`YEf6^%t$&gAX36KlIR{ z`t7$Ls_)!+sD8&Chw2YMe5n4&BZuny_aCZHO&zLVd+nk6#TOr{Z{B>UzIX4t^~uS1 z>$`TnTR;2kck3%x9;zQW@NWII(+<_|y6fHg?gx+7uYTxg{ejz$*3a5`w9%~Jd&jZ* zt#=%)-+#y9`UMXktM7UEX#K*657#e$FlJ#x5y#r|XUFYG^BKVkpj`h8Q! z>N}>6)|XBlu3vfWvHJFFkJeXQd$@l3#mDOBUVOB^_~OI$O`DI^w{AXKAKZMnzIN}i z`trR;>(}i)QlHp+xPIc^L-jS2$LgJvN9$jlJW?N;JY4UZJXAk<*RgufuA}ukcO9uW zb{($w?K)JipMA7`>Dfo>3(h`V??3xcefG+u^@~;>u5USTw7%`Y;rb;94%L^PcC>!g zX@~2#-F39S@2(^DbM87^KlWbj=zFyz@6`_fxOV8rwReA9d+$fJAOEQK!?$Yhyj6Sq zt=gNf)!ulm_WEnJ#yM}jT6^u)+7G^0d*yqz?|-lM-Ir?Ld8zjDOSSL4SbOQk+P9yt zee3z!3(wcS`AqG(XKK$rQ+xjD+A~kre)LrB)u(DNK2>}AsajAw5Ks^Jl>@wdz$YE> ziU&Mx18z3pl-uQ2xmk|)G4NJAUiZd(F8E-PybUkCGj4S1xixHblArqTg~5ZIa{dWZ zl3*`4WgKOri+V>7%9;yCr{v?yCk}Ajwae^J;`4;f%dWA~zu5e%*k=xpAIx0%Px}Lt zlLH%(|7faQwXFZq2dftzb8U2mPhB7>GI?H z^3LjpgWLe_-*K?5@pyOTj_R6&T=CIrnJ(l0!`0;nIS&{;Qk^)+nI89-_g5Dk~POA0OnZk6X&0um1iZmw0@3`ONB14|48D#pPQLa{C_7 zR&J@jagdWenk&=g#ujmTRrP_l=ax^c?t3{<9;;seguc9}dg(nq<+;^uH_FRPs;6AG zs64B>`do9lQeC(qQLa@R<89@6)nLj{USD;t$$+kY-E<5!Jw{A$sUZ5+?6&!C>m zx^VSn(8Hh);NCs>;-L@Ev^U~Qo9AMCoEdQK1AJle6Z{Ht6DJ4#Ben<7{%vLwdcVP$ z(B~O^PxLb3%3*N334QjlC-7^+0L~uA@m1*e0iGYK_(j2k{-59uwINA7_)S8N`!{h{ z;CBO@31hs0?}$Fe?ZU4gRrWT1Ns!^GUCyq;?-E6f`wTcb=C*<~!Z@2mTiPsyY=I2|R#5TYV`c3;iTK8GZ$SMDPs$ z$m_M(yx3Fm0sPbb>&cBuRDzm=q z7qef@zMMUr{cFyUi{@tKPR^a5yC%0UcQE&Q?&rC`=9T$qzMj7$|6%*Nh1rGoi-F?7 z(pX2Z<6!4)oxkYvbX`@xywX{Dyt}=7UsYaxxz<;^vtFq`+0)%~M?>0})A;$U2YWNU zcl7?WFVVNRU(|omfNEgpz+VP?P!|oJK6vHO8MCFcduH#L{k!2M!}kn-FfulB|H!vS z4vpqU|2k)A&NX9!u}A0j%$+^=^tq4EyKmmJ^N!5>Xk0z+8Sfk)9$z)SZT#x-yT%WW zzd8Qv`J(w_^B-8CT2NlFbHP0eK3tewc>cn#FETFLz39h_ez&-7v1xH?@z%wETC!=$ zg-ebs9a?(c(r-`rC$=veJVANF(G&i<{KVy#FTZ~I1IwRZ{=*fwpSa+}(@wnn#G6n2 z^2&~tPp_x=Cx=3_RNpY5}ozP*7DZ5TPL@k zv-Rq&H*fvh+1j&%XFs`ZXxoZyTee-c?bdCNYmqsa(=~$;c(YyHtFs>(cC{eU~o1^z=)AziZj9_b)s9vVUGKzWk;utXFuic<_qH zuFPEd<*O7|eFMK3{O)Sg)$yxqSI@tC{nh8~(d~)ud4121_xxnfN7t}xZo78i+N0P0 z`8vgQ*Isw?UgcinUgzFN_I~Yi*Il2z{`u>Fc*CL_p1@1n;|+hm z@q!z7-MHr_@lB`R^tYS8@_F0mQ=i{+i~g1aw@%)A%B>%M;ruUr=e8xct-QVS_J{B2 zxntoSzxm?YJ4f&Q);{;Xz58z2w{PEv`~G^@(|3LQOZ{KE|L(54kKHrzW#gAOefgJP zx#V8!z4?3JyZ2Z3ExB*yee3VrbKi~kNA7>%+E(ix01R_%{!K{D^7)qW!1rzi9t0`ybu^{r$g~3QlFGx~GPw7EGwo80Va_I+=XHcfJqE=ilVP)cdp3Z;Y=X)9%GQ9wa~ zqPT!MpyCFj;J%MI?&F3|acA^5zsfk{AnGuizd;?h+3f9mo}@T4@8|vFrEQkm(%$Dh z=Q->5oYRtbv7#dos$}RR6d{!agAtNt?xZLZy1Ctnh_JY4#2B8(eN*2#RnMKO=celC zao|h;fym)2x%#R4>UcusgbEXtbDSck#z~Oo?C?Jhjx)pXw=SN33C(3&LE~76MBXG} zDhR4_t6IivCXkZQBR#;$k+rD<|Bd4J#m-Zc@EeI(=hVp@;$EwcBbC(a?V{1Y4d5HYuCiYpR&HG#mT5DWk>$3J+N3HK#Pg@x)rCK5WLN+ZUWlEpj zx6`-JM;BwoiK&T`@Gwc_Ch(dOR0`soDcu;{4St8Ttd4?fzO*Kl#@CQfn(_^>HGY2$ zi}tV*a*3}NNl2Nl!Cyl!S2c0o>W7<=xY=J*S5py3EjER zun(~T*sHn3ZTWt?OwR|Pr=~I&qzN7p(RIpPEuEvy&|aZB7_igUnk*s>bY&{)s^qOT zJeO)t^`=HrW2wth52i#ZJw?>f>V{Tm5lJ^y@ahJ>Nj!U?X{_mnCaS5EJ6W8Z;HDC&5oA7P_0VFmhtxKI@Q$&P* z@2WG+UbOJ%!yA=3i4G6W z-So!tq$9BWuw(06i|4fn|Lho{g_SaG{c_>?m0fikZ&z&o-K;MEoUzeWej^~|DB_T? zi9zghFilHF~$E#Y4(7#GIEd1v=t@u7{^ zj&FG=>F=Q~Lg#nfzVfeAfA_R?7k@%i4?4qzrC}tDXt!^==gr-lyux?>#L{WecgwtK zRe&YaY+KK5d$x`xj`?c|26}vd%C@s>pl^K`I=9b;uIM}Rea)9Shyh67y$9s2yG%^B zUsl_FSwvPTTe9%7ZvH4w@|~B(_Zh~$hYkC^v^QjkSw=1UEQc+$g>JhnCLfjWlOLAT z^4w(v?V!8q0eXxcr;kB*z$M%yuxs%wJe@doqB!{ncuR0+z5y1_;p;%ZlIXxEvrI3< zDv=D87_dwvbsC*xU(J90EQ?$spuIj(gK6*k;T^p3`_S{(&hHpLZ`JiZ3x@m1AA3Wy zUi;YIW{EkIZ1wtGexyiM+2L%6uU@ud(b5~P9^N?deJUCVH|0~2nmOd}X9vAYmUMSD zrfAj5zU$8GT|7{{VOvKldboboUBVI}(0Ow*=2oh&`VB(M$)#6RyAm$_KXvmLUwvTZ z>bZ-rxa}S0eVa4bJ>O`FE?W4#B308_XzB0IdhM8(JErfVzhNyfUqDAR5u5Uzsi@W^ zbr5;6i4Uj~YMvK0Q@n{BmJTaMTqE@(c_uH_rs$+T>TprwWZV}ad8G~6#5|VP3cjm; ztbV+HfBlhqroI{T?__Zbh&y>=^2CgkzzhuR3v7#J22dSS%L+~)ex<2xeal2jJo_M5j>yr6nZ{0Xocz$8;$_ttr{@Qs&E9FF{ zRLH1ZeSgMN<+$+8e>}hYnj05?lA!C?td3Ug)D?u=E^OR-<@(m#!yBpC;D*iJ?VI0z z>cMFuT{m30pvoJ4`%&Sa)t*G+^@$5Fe)iSF%Wu940w5N86Z(L?6sTr?j$lAhNH|(U z5i1lTd2HhSZzd*Sk+3wZ1j_eWVxSo{@C)g(Miulk(YE+%#ms%SEw=H9VK(sbpu4Nu zr&|o^kPC!v@>#YG{HEHxe2!|CxmPtTA5k%?XOTXyH4}Pqo47|jET$C%P+o_0HcabN z6F}S?mIU~;V`_5vn3pK#_dp{TbxG}z&o)M@Msw*uL}S@nmn|gpuHW`rz~D(Se|8t5 z(H)rwI=O9ot-|G2ZNXL{)odRRiy_@>lGqOzj5Vx)o+ z=_+_7{G^@xs5mwG!!2*;DyW~cS(qPjbG~nn9`(2f z-204&jgJ}Mb-wEsF-ny&A__p|rF#hs6lrqWO>U!CN~w%qJ8fj0%0MnayDJ!{$w*n0 z6)hqrKvaXBql9)R-P&#ot+f#0cvpAH%;`LFsyGkZH=W$XsrRQ&mK0&8NW>;iox+MR zlTl~pg%P|U@Eh2PB2mh| zoSmGUnwU5P3!9oa%bme2g>TU+#+#XN0 zPc=t#0mb0meNA`(eGOO;B@xNnVlc#GCx|WR4{C=QF$Bd?4k}KKQR5U#ac~4q6$$S9 z6Ziz2W3|$4Q7p2$Ya3HmQ`nREkwJJM<+kp-G#O93jl!!b_$#C61o<6#5lmHa=amxn za#8^tAfv+-+4}OnpDOJ-wmc``m$M~XrpAK}7xMnAg?kn)>O%Ehz34;5ym^Xwt?(Q7 zP2Y{Kf>{zW!k0JZSir9Uz$-85mJCRaN#2uu44sB4Id}3@@il_`2H!D*@3_nwERxmE zo?V-0Z!eY}6ScG9H!hmKk9wOeg3L+h9gJ42oMk{n6SM(kXrlB;8{noZ=&-&a^Pe}3 zEwh**5w4CK%0wa3YJ&}dMF0X9^xNZJUNjFK?Yg|+>KmFULqvUh-MSB#0>ORg;q&AeMsrmuTc&` z#~)s-=WF5KW!9`1iOKWnarwB3@@aym9!;-lL_Vw;F^M$1lD5+^Itu_WhBomT(BY)q z#{Cw=NAWDSc#7ONpt#{BkjX*$R9rgcbU%B5|DYe~PXe~a^}*D~uL^$_@gDUior zf33}uxIG?Jfg5wBH&EA;TD7#hAQ#0sG!jau5t690Lx_yO5ZejkEOxJk;*^4KQE#WA z&)~e$d4W*BF?(NXzDyS^9QoU%an&K+Wq{*NULpPz`|b+PMHZWizP)%*T^BErlT6U@TNMxl;u$59^!Y zPM!sIH#HHPh{4K>rA-1!;R1P45*g?8bjdD-f)$q%EANuk39B!ur?R#(oKx~F^<`zB zG4W2V|2DrYBx}{lcV?&e#d{XEw=G||FKjyBx4CEQ_+2}Hl&$M{;)S|V@)whRb6b|B zNIUd5D!3Q_`A1EUotGZim9MEvj=2`ZTpOxem##WA{K%|jqgxs-yhkH9xf}frK$#n+ ze@WLd-@&w?oAYC=#b-{KJ9RCVwYouzXbpvWB)x$F$w+`U>+I>UuGX^1yx20V95N4D z*0{$cn+)=_!R(eO1MWghSs-K$F}hdNYag|2CAN@EhqW)gF1#*Hhu6aSue28u2~8oN zMOls=fLRC)V2Ofhl!#4DaK(~g4`vZikedL_Q5h={vd94SX7r>T*+9r*1G9W72WYT# z>IZ@XW1XWPkQ1M8f-K&0@l`RlArP=eJ=+$qU$A8Kyt_u1e9_v5$hP*~E%}X3Z6I^o z6+OS&an(yI{S~`~&!V~Z-D*`J>20m9ZkfIMmSyu)vaULNUFG72r77My3tZE#_NM;f z7yqwAB&z=T4abGE*bj|Q|AD@jHA3v$MHKVd0re;Z746Vk!dY+?3d&5?ngl$1kub)%GqFUBJ9`$Wq)Gry zK=zhB{!|hQAu(Zc2;noNDjg&diwF@zP4umykuYmdvM=3({!%!9qssW~To>32-`)(k zv!{d~6|Yw}%YP@6DEX?^Ve%Kn^S*xtt(vWoPz!{fNh$Efj_FtEU96aBC)VZX=qkJw z@qBW2PsPG~PxElaaI?gsE5w^ob2Gu!qxz_*0``7Rl+LPJ8y7V$$`3XU=5LdT(rxa> zypOieQ5A?bu8nN#z(yK3Ie`)395#%&Z(zGmYy_9N2qy;%w;ybxk{MjuYd46v(viVC z3}Fs<0;QI~YIf$aq>uE{SuygIUb$KyBjU1&A% z7gc2f+B;C)D)&Nd1I!grW_@EYZlp^1c>N{pPBg@0W#jILkN>JHQ+a`ij& zvr8@uefH0*uKP<*i)nkfso;5tAC;MoMKa9p$C66?NR~iaE*- zu20#=^{dw^*K(uKx{y{|~*4+Am zurc!df%X{h_uWqV(X7XH&^LHVD8=Ps*!$Zu{T4k8lQAn{R$H1lm>=tvFE=f)FLV_{ z#nf`fv9epqH8?`MQ!0ra2GT9JZzsdVxPSH48pIx z(}m5H6rWM=dUh&(cl>5xi8D>@)c$#yR9IQTd-x&;#qdpzgFBsu)QmmQ$!KmK&j z<f3I)c5+us146&QxOQPf?G=ZU3mJNJ{`p7S_~Dk+^3`vm!sd0azqtKk zk`{^=H>ENiONO6#XVV&HYkSM4YwO%@e#O=4s;R5yq!!+?y)m+|`O3??)4=;<(|6Ll zLB~44c6cCvS*0^fBqa+Z%M^!4i}Ef7}D>afPGc?d=7lp-YZ z6qGu^{|5XvQI z6|5^PMhtopi6H!2_Q)}Xqln_#?|h;ym~6TK(35k*{L%D_dmnh@#xI_|;UGf&!@|!W zco3c6x3_yqV08uhpRK96J@tV)TPAnUEj^CZ$oOB7;o6ICKKzOBg&@$&e)8Cj^Jm5N zol6qiKgT-c8R8Oj2R%}+IV6k_t7aLcY=e6!^Y~k7ke!D#K0#kh$=ZS=iZ?^pehnNa^%8es!UZ? zR#G3?@M%@nYOT_=t3x~~t;%MrMFGBPv*c;GEN((DSAZrdf|HoQ zb;3ut8^mHx(k~$;;mYRu=LGaQpMMhj``FztmI#Z@5uo3>zy>;Jso}Fje(e2R_!qQB zO8U|6-ph~h&AAe3p6z=G!~KQ(uu! zhNTTslCiVqD-8r{vYP=j9#CE=PwN8*oiN+W9x_*oL+d@1n1{mmNToU)ZT>G`we##L z2-JhQm4RC(Vi4xUVf%Su0^fB>rIby{vXzcEBT++?!owX~Xm;_SftRn2UKZzos_^fDqM4Y^a`zQNfrmoujg`RJMz1 z&Gu8Hl$7$bg)f-+*jhZD6w^F%iaW2evFCKt= zEYPESwvLx1iv6=kXOpwTi?XE*(l;OvPoCwNOxwtQ4V|Iyrd?3T{r8D26>4 zppYMnLy#TB4`&w#C(EHoe3)iJm1P?ZCg`dl*ygOsVRN)}tbnQg1P;2DTvf~`rZop+ zsq?Exk0bYUA%5_R^n9~Dx@1nFHdI@|>)ZFFYmPtpPvO+PH$C<=vdtfUEK(7yfB(*F zuM>VfBD^*E3EF}d{B>%>h3LnP4aw9~>z+e3jgfk*uX@&AXhulVckFGff{;~{N>r%7 z=G#L*`t5}9E8+7OChSdIQ@Fn_vc3=MP{!edMB2B1B|P)V*6o<@E}#CCnGJmBB)r5# zek;^VxwnzqEPKhl7B)j>6d6m0q)Rb}Tc%jXtx>Guq_o#Xim+V*2U%hvO|GR7S8Eoz zY40FDViK)OKZGM~5wPt@i$p}yGOycZ(rZ~GnTG)qgw(Cq!fY#r*J7ec#?|c~^^*?& zv#2sJ4@T_$3Zw}8dd}@wdACfJoyAjd_#l>H%;hFcIYR~;P4fUrb(MHKHzA(5N>PtP zGsWt%&jf?I&M7xd$!^djNC|o3by7fETUzUBM@T4#Qp3jEksKMl#Z#W6D&`UN5N2l8Fm~Ree>5GJfJpw}G z<>~k6XIVFBh#+{Ax8*NvORiC`)2|B*CD+yM)IaGJ2d%!uT>ad-#oqop)@tRP?zo!| zMpI-inoRbP{n4Jp;^b&l5>4==sDUE~^vL8lWwQQO{Tx4I=bgMf!FMq`8Itky+6=Fc zX>(dqOH^`|j>>o?UD*i2cA^O3Ivh5^W>qP6QnsHbxYx?@6EDQBd`VR;*pt38FP9vK zQalLK7)nHySRC{u<;Nn~&svcO{~&fdsV$!fcZECES`x`crmG)4de`%B+Q*{OKAlbn)J|h3NzNA1~j! zu^Z-}Jtk}i>v2Kvwf%Q}e_BOJcC30=(qzumnqqZTAT3~yF8u_9rvsm#@9?QoioB|u zn6DntvP302hg}9UBhvvlsa2%Svbay$DkTjh5s62-BV!RdBIOA?8nchv_uG%ykJ{g} ze{2`o!|{e0(|aQb$>MP^Il&Q|%pIR9o-7@G>|cY|MM9HvJvJpvt_Da#+KKH64gn{D z$yttFz%aw^yu)JDExi8mFBdMp`25w`i!;`6)+hX3`0Cw#dy(brU#sWY+b{6_iL5ee<^j?S43y&rILW41hOf1%1$z z4<#!%J4gqw@$;lCs*y?}y^)a!72(Zphl_`q0n%~le(6z|ixS0bFfny}ViL?g>^{N9 zgEa*E4(lpOG;kuxnb5m|hA#nLO!tX_GcXpO-ft`Co(yGJ&o|JfW|R_G9~eDkbu=3(JA>gR>K zg^z_#raq#ib#2Y3x0Xs`VgB#!^ox-5ZzHbBFRV?}XK4{Z7jk5l)D*@Q`xQqNltNdq z%erLyWQS$6%w@L}0Z!vz zd$I`Vg9+{wPFGI?WZ*al-UN2BV4Ekvn|!}$Je$i+ZGZoL@U}8#BmqzdRG|oqZtsi; z2N5zO<>3N+VrA$A7hP4GD)}PkoN)s-rLbTDX6RF>9=v_Qt78%sdis?}q<;D5LJiG0 zj8`=NBd49GS+jVB@VfBU(gBu{X|&qGknQ64SA2ba!DMBcnYhi~qECDzT-WMi`7*fPUV!eTP14z&6s6`15xE-SVuT7LRAiSD@XbYSMc!Bj_ znH)0_g_1=JN8+3jU0yj}HTJz{mcBr(z4V>t$2X9#tUP${ifp*{z1o&fC44xXQBvuM z({$-;9Ty&W6ISXHM>SfZJE4{?uc}jLr@En!L-;tQJ05u)D5loyoY6S}yBpTkHT^u( z0aCS=xHUhfmxc5hS+XLlPdd8LQfirgShl)ijds|vGrBLTRO<^eGTT=IU=Cy1 z7lFVvwhkC=qi~_{)py^0du)7P-%U@~hxCElMmiP*JO7x?J@~}#Ytq91y=Krytmfng zq$->xi^2)vdH`2y5Jh?)+*m(*NibhooaaAZ_=Rxrg^mRqFFvg(!chsPox8J#$Esn<`Azwik;+K2zOp_!w{mWBdFArty2^D)X<}h@Wm3vGJvXSI@ zy&cBl6nK^18%S0{|CeIGB`#?7s)8(AAQ?wfyoqeG6zr~;E9dHR(XMb|UfJ?2VsSb- zd3JJY@_q2>rvMv*v%DENci+U|z?G~~NRM%UsE!jw^h4NNT_PH2X^={3P~12a4)lTx zWj=#PU^O5csWW&%8L3LfDkkGmCGFOyg8^R8Jp8?|+>;Il({8aAKj~PgBSlALmCkx! zJ+mt`AM&h&!luEw!h4<2hbGvG;&aK0z< zo|+#g_aVpJd27=l=n9A+U;bO#!<+=O*cy`ESFst&aRmM(d#JE>$1@w zRp^9M!r$6{(YB(Kt_w%%7;jxTT(6tIy7l#zKcZzcm8~jD#Nmn+&|eU*amDo249EN* zI77|(kXN77x9TZQ&r4<17M|h5^ z{AFoGZ)$hheX#za>AUGBmIYMziaZtyV-PUe4`}M6#4&)_d<@m}5&+tm(3ol5wBK~Z zbkuar^q%Qs)0ZZRNzcfgcoS85R-^O`&7!XwKA9t`R$=G)Pde2qj*VE zZwuA8F3eLq7?(Ye$2>VU{V4l$Mj#rAck}yw`jo!Q)?r_6>9_US2lcBAD~;;{Beilf zOvkiWFRG?DRd24{UA;R=N0b3=8}?3&4y|i3c1p5zQdGJUkyVS9<5)^ISse+u99o%( zmid%~slu2beWX%qlwKAIcKsP)MZbG?M=CDMo+N!jXIA%G^@^~S6hcVJ-fsqTWhtovUNiiy28~pIsA|b zJFw2Cw)$IosyIX4(rRDRLOwqB$Pv;tb?-|XXV1-tnnnTDf8!HVUlyO9=e9-e{~Fzh z>Q1#}=kyAnL!xvSRQ}(2!_w58`!Y`m^}?}7_Bz5@*qckHABWLtN{AqD%6FK>VR4V6W|sqWxUu|!3L@;_(~#K9pIDL zo5@#pgEzy28G8y?%m@k9nK%Z(wa(;nK-YO-vSIiq#4?IrkcU7jz>6ZSTE~^C267WV zL7jkf!5j$P$x$kXII0w)Nz{PJ%Q76-m!2z(O#Kx`Tdz(#tPra3{p0ns$V^d` zi#BN2{Dl1|J~lKP?IKV9?#x2r$wk7~ZhJWNP^j^5jm=2bocl*EI(L(B&EJF%g>S=) zc0i*7+SJwJ+cb62s4xrr*PEt)&dNcaD&Z6k($FQTR%yuP>3uZo8`MH_& zIGCsBVh$WdQecOib7L^-hH?pin0W8R@1fH~`;q%!_~83*AG&?tp0~cfY-@ zEJ@)Fj#KAwwud`|&j$FOCB)*4yNW|p|6y)YF35^ehM9yYy4|uuTiD$Hk*$N5w6|m4S3RfP6QCAa!ovyQ*p_%w*iY_tn4OxSKN3 z^s~YR6^n~^jLn||tLzl!uqR>Pj6^kYUw$35!M4ZTNqfJ0)Xl0j2qx}CLXoPF#vS#t z3cERCrbrDzF(GG;$X0d%j+vK}PM(p~^g}Zdk_f?Ocr_d}3x)PxyaNh01~`hd@^&$b ziF0sV#>B^9;(55HVaAv$Ij5NOW7uxOAP#^*;B8icTmi8%uapy;iGGxY2{tEKw*#V1 zUXRlOgK;>@S~rLHO#!$DdR^uriX3?;5`EdlY1nJO6t9jG&ADrm`3wZ7V97q!ME z4HYWMgajc%nsERKu@Pi)+=m>#xG(SP_6_(LpOTIfD#1^J2w#ng5#VC*#4!*>NpnJgx7v9$`3-OY^A1C zKx+eC%1(h-jj8U(PfCRIwC6%7^svtl z9G*}k6OwP86YIX{b+W}?!~3tf7)quPamDoOOptk=ND>?JouL9=|61ixfF@LWiBA$# z1~mcnFL;JS=^p4RVz4gj3R&Kj%S>TQIkJpbKNZ;}MU0Z(p^7qf&`m=w8lKfmV zU+B4QM|+N8bMtTc>5bQvQOIOR=Z1wY7|y(N)BT_S=#sV`pv0!>zcbG;p93Wt^8qep zEii>DGM_l?+MjsLbtJ(gce~!5VX5*v@#zA~$H{ z5^x9WAAG7x+J+**tSv9IymX)e~tlCTF$~_Du`f9=-79ZI?P= zvbnsnX*qQA*@yI&^dJg6u^*XsqD!ys>GQNdIQ7)jUDWr!`g(0+tbR{$;lkj*w!uAL zKYf&mGSg6Ru{GbNhjBZkgp!!aO4dSxiAFS6N_7<_Tg_6bs~{PeH!JfxNDY~n!Z)Op z(n6B%N~J>!jj#vZl-sV1Dc@64%CL9dnjbPZV3BdBaN4F6IW}Q49b0B#f??|md!Zr` zd|?xUq^NW3X~3oyKn!Lge~hWoKUerVmUCn~?OP9Y)j6!exq9!wKp%_bi!*s=RUpUo z6^B2Z3XX59pNHaP9n!p)udr4_*4FF z9kelL%Gc0|X=Hq z&J4dNLVKD^|C_C&9o3S&&SQ48f-tQ!hg*8evC_^T;_%$56DH%SQ>Mx?qPt||f}sln z5}Y6)a1IbIGbH|RGZ*KNNk1tfOF=fEc+yV+fBjI6ph=bMV(@56ya7OcOn;D|B;Fxr zUljUj8w&|l@9-A4Jm865WnbTPyJ)1ztxng~tz5gN$+c{8o7Lmh#(S=OQ|7mZJlP>f zAT9hVIOrKL*&cw(8Km@-HAT?J9<~IF3$2i{M5A2_IEV+>qVz# z^$0KA^9SJ~)J%G9hc`E+2UQE#{d6jN(eDaaqP9#w!t7xF3UUN8{oSGd*syLOv_1xv zZ}e97qUe_R-k5Al5cMmIntok(bUic7jw;t{2IG=J>7Z$?cYQ5w(=bswV5pE8WT|R0 zKrU5u>$-zI(LrW7$}VCcnL1ZF$JP{Vjn0j;G^1hMOf6F#WEflNf7W_U((YPRJ77Yl z6dc@BMGPA=WEx^IBV_hVXZXzT%kF5&&A_z`tO)3e1rZjrF%mqElH39W74|@|%$kwc zK>U)#Vpd%_dwYBSx0er_8$v$kobD@c7an-l83;C-o3rjzb9%FUK-J{kshx_v%{TWQgiTsV<}@Rh`Z zNWm!am1agE^1<*4f>D|RN{2)w#qX2~5kp7}QQ+gSAzU^5Uyd5Kr*fSWrpi;NjF@oP zp2E2#MJbmABr8bbStYJzxwxGPrbm(#iYtD=v8=Sv9i1 zQke@>JG$2If>xobPc*Vv$KBzLA!*#JsZ_ivZ zvT#2cZQb9(N1|muJHZSyzb6vJRrv+)THm#www|`rRUzGKm4&jS5)#17S}DM_6V1?S zj6#e@V)rS%4lXd=TXWa@16YYun4o?U`fU32|~PA)$~D zQ~)S(sA8KuK68o*?hoAd*Ni0-6Jk%mM`f=b03w(;rFa#n^)yna87Gckm32I5Jx{^` zwE60)r~e?_S!qO9OkcG-H=iP1wkqo;>#b9VZ@sW_EgCs}Ot?!}Cksp0q?~hGk*c*5 zCFUVS|8DtppaPN40Yjm=X7FZ3%Aw}Lo6vX2f47!8zeTUGYF9P`{~Q(i$(NWf!Mdz| z%E-fz1%S2d^9qiD@i98LiIGBlDhM!D>}+t85V?V8&~lI%!Cpq`hSf>RkIfbROdyK& z>vb{&Xxy^uhGn8>^~(&qtQ;Z}0ozuarbDy*fs5D*Zi#iXH4uvhteb^FX7e+&>KPPM z__7SMvX^6)ZJb&;bsoiJ0)Y$zcl!ABh1B1eZwLceATAB95S3D=3K30d_6x2! zv37+#b6q0$Jo)EaP@~o8&qf~>em*rNeEDXj-kLve!dVsC|H}#YN-VQ-I$Nx74 zF_Eyd4Z#Uu1|TOqf?M@M2M!g8n!()BpcN!Pn^X zs3~>>cxCpM>rkHag7P?sP8V7r#RCoC`hWJy>8WF zVYVl2PyfTrZfMahd&p+@rmf2!65ixJZfgpep~?zPpAzn8!qck=jsgD;1Pd zEmCpEIY7pof=<*44i}9A35NgMnJ11|m8*&Env|-vn8fqbKx)H=m$;*et z$^?e=L-=rpnakia6^2`2P8KOZKVcz@9W4qHZc#vElo<)k0+PB_Q&XiMxS{&9wL_@$ zk4x5Ft(D3UQcIH}j^)3V$-GJK&?lQV4HP_0j^;?vQJdU-DI&f?ORM-Uv(EREt1q1$ z*{yb~0=48b;h~I1J$3Ir_qa6~1k)2q;z>m@{S zp78RvI1d$|X)VzMo+oRD-u8BBPI?%4Ex~s~16q=Bap1Xfyn~PP6wei5^?30RIxT{M z4QcvvViry^J~Ac$q3lbRjUHB~1Pxgx27$vkO6c4P^nineeJOIqZQC7DUy_lLmCkI3 zlp>eh-ukO6cL=|EYC%tEm_#VPq_Ok*pLNU+)yI$MxP%$9Uwpq3~DW`=~`ot-5 zueQfBY+;pJUJQ~}77(*~+vM4esI(EbwpF5EG=7f-iZ8iT?oAkXflwmOD}u>?GL_;)-CqcxmB^J@87n2?kqSRO)j2<36NG6(8Ar<3=3DGrBO5Y`9lXxROB6aNid4vExtF*}H*Z%XyZW%2RLhK2 zwr7zduc_kqlZfn23?xV{5l_6Epdg*P5ge#9-0|bE(Iqb`$Kg%J$F5X}S2n!PVJv~o z?VvD0c89KY7>+)#Pp~}jz%!RD z%DOs1h9J_ngSzm>8-*txQb+=|%aWu>D(nO)sfp?-AJ zmihBBZ!f_$574K^4!iqa{?RsZi@M3XQoYide9&^#a?J7`6!H$p5eMkO zF(?Dt7i4_$6jTGngJZ#CK?(}(iyOC36pe6_HclNcZp6+iL>(}+t%PXBdNDZzV8y8w z5o5ze6Zjxup#s1*Y`vu6_i zmG{VbC`R)Hi3~9m7{Yb}{$Ct) zWWikqUben#{lY4;5-~1D!h+9EoCOds2B~a6Su{d8ikr;AHLNZuQHg&GlZ)nesH3w@K;vqp_;?t5=M)_d7 zf~Aya8vow#(wgpMKrFxPHfU4qlCE6EQ2fA0BRf|PU@po|y+eIP6NC>WamgLiDqd+pU6y{!c@;ZLmF|yOUbdXJd;xg@ zlFv%`!?lmqzFT{`magR*o?#6+}vBvSn{f$Q&k2Sv6C~L$(4;;fPpBW$?wtZt< zDYbG=`3%IOIG5d^4vXdnevebLCzzb3{D|QYhdL5R!V539~ znG=yF8(N@%Uxd(t=SS{qjId&uY){uW&RuZJ^+nSf(+d~Y-6ve$*2o7Gw#uys$kUgG z6MZl=Y3a&&BNwdSuyn)vb#tG5`Mu4(DtQp2>z|nZ7kZib4OCOQiN*O8%M&)WjdghA z-fr(PFFo$v?>*wBBs>L!nvJ~DY4^swIqyy{ZI{0+C%ff4L4X}J6U`GH)^{@bm zfoFgZQ`xlx#$YLYmdZqci$COVNi-+k))tSqw!*oKgwrBzIvh@ef723=!)S?k%lDJ@ zU(`oGTFm8|-aKZ$H9lr5WobDG;I#$F^O!2?&J|#n? z6s*CF(aCNX4zZMWupEg+{|hUCQ7&yfSX7yatA%u$7cSfNtLx=3s3p(AWV49fNdL7Z zh8GoU`KNy~`jqt7%&Rd?9hKg7@djy9yjBT z&lSB@MN=`z<{l4|QbH*wzaYMlPZQH}x+Cy1@v{6E#Jlp-#A&%GR#hbuxvP9vVFXH? zj4>tCJszuqLSsfmn&hO^?X=?e49Pn7r4FYaOTCbD%&FJfmOASt=d$+9n1_W41rAY3#+%p_z>f$5S6 zh3zlL_ko1K7J6vmVo3cPW2%=`v?{0D zsUvlzQxEnBFgRWqqDs6_S`4fQn;j(DqZCV*o~M_dw@ON>1!dQ5gTq_V@3-E8ZnsUK1G&P;R}d=1!F>*>_N$Jlj;Y>LeGFmgHj*dip#5`> z%sD#e*qry~d_3pNIifi%uWW;ID|=hMt-tMX+hc7nx4qkTy6uZLX`8E_ckx7=i#uQ> z(O8^`6Z0JN;`8$J2Ih^;J38;nd19@6H54H|+Q^_pRSla#D|Yu4>`>08gczd>%bM5y|O zOE$cLQmxI)a#{C^6~ec7oFB<#B3sd~x2~yk%-(JE*MG*_))|95LiL~5Cnr<%?AfK$&rzS#Es&8P&bL*_$*3A81J*=um$UtfQN>QhKE-2- zmlZ4*iYao6E=9j$Ahb^bAQ+qAbr54s8@HL5FU@v9@ zHwHK}Lq7;0mOPj;0dZF6|0P1pGRThMFW}YbM3Ae8W3#tMW>JW`$A*{JLc~g*4o6ZI zR#7IjTtYqY_>o+gM&Zn?6(4RMwp?lX;EJu!`Ri(8wu^1}$iUP2X#M$)9gcANvdte~ zx8m8M;zHpc3nExwbWR_q-k~cX=WZoN^NU7^VKLdJ=wlZtis~NyBGYEcHuX(bNs#jy zGhE8pW@I>CYy>uhKnK{Zwh>}bJjhXP>KnwQ7TlV{V5m~Gh3}FhXrUnAXGiuQ96F2& zJd-Qp;;Mf$6JV?HLUDqN^8LFcF|8)a2ew`%VlTe-pKqMMfTA{z-*V%Ermp7R)g6l& zMct))|NQAAZ$ES3y^n7HDYYG4xAFSx=NINK+J`R3HrGW{&r@I09iRhih(-BSyQeME z>w%Io4{uRhB0Nl2v9J<_tWrmX0^o-4gBDeBKJVy;VF483;2aJI zayteEwt!5*jtW@MGYC(O3Sz>gR2}Ritm2#}iY;h(3j^wB&}n4t;Kd~7Z;FyDO}30b zNik&4k@ge)9h)w>dik8>{EGGKw>M{c-44NpbtBr3_I>!|+q0_c(gBIlZmO$$djHuE zu024l3R*jV_s>vq{;sE=!mF*Hnxr11gMc!K5qRC)IM0!CGU&^ zZiRF0_vOga6ZRh%IMVola~Rl!Q z<}9G8!7&&P0^lPSPVP0+FH$$tHdyoWJa2>oJQJ)>X4i6n;&p(=J6HNQ0EtP?D3kA2 z*|`{(*p{P6hd+W$mOPQtTp<|!T?U+BHud!ttY zppZa}fOc7tcqPV1j8)!DOT}J04XtDB(BtD}fThK&y8+V8IsgzfUb!D2L3Um(%X%Sp z(HmM5x>A3Wo@FEA813d2wPHS0n@d&uV|57EL1GO6 z2vyAQQxiCG1xFX-6muI-;CfSVAxnXOtPL<}K%SS)Ud$Z-WkV%vXEG+~6yQ;33-h1V$Y%Y+*xlD{e&X_r4(0;(YU83pbWy(e(&{Vt`N!*#I1`MA)0Jt!@|qTC z68RM}COCWK^}83gMEJo#ecYgwYpuDf;|8mr-}pbh<_?pZuY!zp6_)Nz)5oa2&>*jh z*pgrBRRJcml7-?wyHpn4ryCC+*6k0|aa}H)*L8)vb^YN1-Dr5HZY(Sf-_Gc6_wto0 z5zjF^fJ9Uduo#X)SD`Nf8WnTI^0Belk=W7L$1zb6YfvocA%+3CRV?GaffCZQXG_^{ zABcGkM59V7GLI0zNwsq#rT#Sm~fQ%6j=6&K>N?^E>>vJGzEm-Ik70Bo+m}wP^WJD-Iw?DtNk{` z{BYK)*E{p}D{n%iM%DwcZF2T(;p5r*W%_WszbTu)1WDfA^VpJfIQmxd{?BKtHQ~2k z{owF&h!DUHHco#)y+u2q8vD8YHC>9M3X)LMm0CJXhnYTlExo#O8@)|2$;oisWDB>o zl8zI#bX-wed5PjHH9JSq&-RP^D`*ZP;sc6L6*Qr!RO38ZlY*{bONoX`wW5Nh2@xrS z@)-ibYf2$jR~iUNAmzbw?h+q0kYdA_cpO@Thht`BYA#vQMS#Jd;vma-3cyFDUVk{* zi}PlXGy@4f$-qCv3wMnLGUxrkPd&pxT=M^?`~*>O-1C&I7&!epVLl z4Uao-b>8H?*?((T1l@G2h#Kl%^;7EO>NB#B-5>keG5@9jbntXu<38kO?QX3<=JxpM z)B4lK(^jfQpEu^M-9&d)cMaPsUZn3fc3Wv@gNJPRDx&nlsj=!ylnaafvK=_p zSQYkzOQP3Q$iyU3;Z>R080%#@nMzg*S1DtK+X+8fMG{m^SeADhiDY+@bl|L;y#^fv zho#HdZyYs_8Q(K9#&B)JISdlGCq>*?3KzO@r*MKDLRvs<3?apdIgES+0DXz#VVs}< zUlvYfiSmFL1#yM38Zk7}GyoFoKZq+ zk`$^sgd{gFYY3$m)-AbF$U*Ps8%8hP{Pp+OA&zu5WCA$v)i6B?OgkSm`Sbbf*T{#A zt9(~ed*wf-9`T7h-db;qcaaww*Lp88i^ilEn8&4;nGcftr3dAQm4~#49EaS`lTVvJ zBtMiZ*O-T*Tgh$mZOTo-Ym~c#H%kvHrPorI%P+TmDE~ry#>-wxT`0fMM#;@Sl2*CJ zsxa$j&2o674MwGmQp=1*QS@U6a*S*DLxhUbV#$DGil^Yw2nc8R06K$Uhyn5r#}!Kq zj>AeyR6^5X*#PL~AL1lw@CQL!oHKE;sZgRZ?YiNosI9Wz=d&;W)6eTRI=sHRN=sd< z{{73l>UP4EMIjku29o>3V2`FwGnUN1j#w1@#zLPO|+klP4bEouLnN+5P z5q!L~QY)2K>OqQWd8JINRLab(nq@&=DJ2r6&9>8tl(8aivx4DE1SrHF=cZ6!P# z!==PHuCr83OrR)m9}xxKlOXb3YZ48RU`9vIK$h{b|5~_jyrtQc4>f!s9IP_u{L#vX zetw{Pj-xi1qb{A&3ST_?>g;rI5S=C;Z;#r8jqbk)b5ZXTyZCHCk7dBN=_hCoq+%30 z^bG8y$1R8H{g%h*BbJxxqZYA=wh-I#i8V>ogpHM?m3oWAmJSEJEDg&`>t!+QCx!^G zDN7_xEEJp)wA>Xl=8WZY$QU8C9E?;M!?77S;J-8CMVu1Hitj9xHbBr7a^T0IUJ4TA zKq2_Vc|vSU0Vm-7E^Rr;Kdc<#2~>v%+gUSIfp0@n4=6Ixd(E94BlG+R{gHG!0#Bd3 zrQ=rC02)4VMg4&v_ojl?uO(U#*Rq%ju6_G2=P|ZSq>8r%>BTkCzo4(hhKim@ok7zE zv3x|Z!Z`UH+e`37^HW5PFyl8ZV+mDQ!kLw2S=0GGE{cN& zZ_`VIEGx!x?MAs4bY^8Z7lo*FI9PG5t1v4Y z=X0&EGgQr-1ut?72k)F?Pb3TrTC4qBm5*#Ncl|%CeF=CQ)w%YZnbAnrV(qeJ+1gjj zwq)&=WJ|Uj@3y=r-ePCpAa;PTBm{>9NC=Ragt7&&Sz0I*5(rQzEu`Eer8Fr}l0az; zX-iv5n+umx+5(pU@65Xv1^R!=Bb@xEa6%VrO3twk`TmFWD1QivrA{zP~@cvBim`Otr&z z@eH;k#cN?o^L-S^pm>vSwPPS8>ZzrLm5tfcm z>;_iDSBZk8s=aKaY$QN|k_gDkJc0JI_5g#G_WWz!nt#n1bUCm^I+JGTZwf#Wb^!bg zB9Qi`1MS}Sz=(GwFzy`>9P}Oxi19msK=fzUupP)r;Baw069^a(zfR7jP$si%T+78fv>m`!vnwS?nanh(Pix5gQrrfHW zP);ciD&JI|RYE~R_4%IU8HiQlY4t$f2Tq~slMug8fPan!Z63Y_ob_x#k5xU`At{5# z-EZ_JV*z7V;GcS#!MmaIZykDhTce^y`OCEr?%sn6|NNOZ4V}vM8eu_UX~Lv0PvRPd897H?uK35(Ggq8L!c?8Dws`>1!)KIvto zcB$83H+X4-)8q62LPa9LW8Z>(54K{K?}GP;aPL8Uf{qdqh_d?8gloc28r+7k$L$FN zNqd-)x}<(`(lrUcb{YI0m&ZTs8ul{;7-85LE5}z=1K3bBb3MFcEu^dPJwjZYP$k9E zKsrFCtB0#ctEu^W;6`6LKRQJ`G5Zff^t?2b4vmH=xKTVS+^C1LqZs0yUkix*q)b{p zQGKxbaP^zjJWqAH`uxnW<9W;H$M2R9L}5}T4N9xi!QtR&kOvRzJwZ=B4W9rPll=@g zFEjs|cYph5BIj8cRZm`Y74OfFI3puqWh8TNl@6xsVJf_^Th?S!Y~?_dSd@(QmaQm* znqKi9Kb|+gA!IKAJhxD&VBF7#CWr_>E;EgpwwfrDJyO8*0yBt|2x%h4`cPc>_o#bL0=QB4W=DYpd_@qlq(};& z?OQ_=p*KT3nEAQS<{h0Mx4Uc!p-*b0#nO1PI2orwg5wESBAzZDEe7qF-AN;}Uy)Y! zih;)$RMl-j9gO7#>?2aDGw3|Jgbo)BkLvjIuhBv_?kIz=n|n>_22RRhIJ_neWAU}K zvNd}dy#Hg&>g-rP@lNL8?9V}GE2Pdb=T_%ICv9+h;C{y;)|!pdrIiEFG!3Lo<>k9tm@(RSrxncD^27<}K{ zm=y37v+D(8MxAr(g-88{!Rv)b!Fs_b;vEZs6kAIsO6W28HdS(73h?-^*t_M%?=B(O z`7y!0n&4jXe+g6CG(SHCynSrlqu#lD;zr?n!lU4xen1fBWWKBtNh`-Hw^mM69;|$`k}*^w zZ{=tuXrm1vUK_AfvajSFo`2=;*+BwoGo|IyN>WPyKF2Z+Gc_WrF%O~Qq7TQ&yvp6G+O0492jvQzE$BrM}0w5mwgvaAK3avai ztPRH_TWKR#a@`o%B=Lt?BxcCqY1k@HFvP${aZu!b6fRjpif`U)+7Nabx0&{dBkq#0 zctyyz&r%$^+Q0J&;ic}#GP0VaNJiCJ921gg634PLgFHpt)tM*c&3pwB>sspPWQLgl z1hXPy!7I>Ki`BmpzVji#l9v=2z?vGT4nQNA^acF$m}m+@^lp743t9m&7HFU6;soTr}yVO z-K0Vmt;iuG{9r^TLD=Z6#PKtLPugH-J|DvPrvqK~!sI>&i z^^5gQ34_%sFKpFRKv1ag>YDXtyE*XnPYuo+%GcdaF3G&eulT{Dg-hyg+w|ujp@BgC zt+hVu)1qiib!d20TPJf0p3HomY3D6?(CabF|N6bU!5C!$nQv zR_u%o#bx++M(aqk)`8c2+(6#;0Lpvt#s?!dzrM67G4|ut z{pijP01U-=-T}NJBm%p}tBv|wDmEA#$-k@sQCuAGiUAtmJtF4k<;N3*enGG{NA50z zN-BAT5j9vzXV@1pMkBghp-x>B39BPvvQc)Lt-Cx4k?j+*tk(wqJ#JfLBR#O=F4%Cm zL=Pan*vYYhb)AKMfytdSGw?2i>BguGK<|>Lp`k$)d_G$)qRtK7y6KhQ@0#k1<%3$x z8Ex!;Df7tU#T6Cao3421k9V5AmV$Ts+iJU?N7iSeGb>glQFRcBj%21aB_wb4O^1d% z7hig^KfLA##er2jtH#QwMpKuUx2?LjuXW01vxFb8x|^;X*uL&{?=m!gNu|Bhzz@hS zS#?Ve_Lzz9lVxN*^$OIRbSJB%0LbT|5)=kh8>jYAA5hR{B>@qYG6slVCYWJnlo@CC zFdr~E(8q0nC|!a`1B8WJ+`KkBhk8mIp0%j^F-QYyZrz{Xg~fwq7nzTt4yl z9o_XRRFBsDbV+7MW@P5`*J9;1k$iCPr_9wio&M_ir+Sz1D{M(vtFqZ;)JDb(-C&m{ ztAa%fih7DhJapVbM2ZNHFX9r3Yu8jGOC(+$F@+*y_6hqGM0!gF5sg%?RfZzCQOmA$ z*EVuZZ*%dhb5P&~fAVLJof$fJ`rN7CK_u%4B)bwbT90Q4ARD0SG#l5MpF@yvT-qQD zD@?42^EIG2V1luA&AORf=m-A@Ml}pYUo77!R{*Y1morMLgk*FHQa&`;@$)TP9)G;Q zuDx2n%++Oav^m$bB{n8%dCOjT<*m;uKd-vivjfmSBsY%-PX-}hQ@n7d!OJlYoZx#Q~_8rH0agx~=22Ecs{!}+QQ3!#;GA$i4U#b|7_ zW;}JEm}jVn#hk?!r;RQa2kEG|U(6dbpqg09*@+{Bv6@O}%5KQ3qWwfAsx&MZw1}TrX&GywS_D;Tm}4bTrE|BvQHkXV603<&qco}7j(<7pfw#Icb!H;x^{4{Uc4dpu^(aX^B%L%TL&vFx+hQlQas zTT#&N#^s5)W9tI-j?9H8@2@%9JfcF3j(iHXC2;e~4=N!_}AE z@ohxBw)fu58|XK0y_We~=7nGVZ1M@@N24d+nYlxiW3Dmr0+~#W)S=MEZQ-!7w^Lt# zYh$@hAVPn8ip(qU-25AiE!UcDCvv9?pSSi4?VSSA=CS33hPa@1J^>pU#mw&KtJCaR5 zxMyhfUy$j$55E3h=EE5$`V{#u>mRDFsBGG=wuOFs+0IL^nB4nt#N}xd*?A9;ci!=b z%-=3wO`_MH{=u;;wtfExPiH>-`)@y|1mt~427u#+aI~|+VcuL}t=maby#qJhzhQNu zG1w}?=UXe)#=Hd;UT)C2XOg=&OK*{qp4BB>rSKcP!-B*14|s11-n4%r`9vym^6bpb zI1!~6n3*fFVCyAC(yMTquW~^}BYvv7aY3b1UnB)Q3!bP#Znl@SRD{DVeSUx_NXdmd zP|1yzstOoD1qEik(+=GtOi-n2?`W)O(`$aRzc|jj)}6W1gENCvSD@RI%phCP@@`f6h|e!~mK1r* z!?IMFu2lSwpI9esXhEA-pROA?L-U0?kD)eKn43enA96KQck4@jhGajj{I46wZ;oaX zWqM7)(#MfD@M`AMq8)c6)>QuC`N1v?xjUEPQO&iCfLFEV+7iPx8iT9hhYv4K9l4ZSGXgz2 z5LlhYaa9~vg(M$vb%4IW6UNnb;(5Vy0h53y1MGe;v>dq?)pY0ztkAkpU0Yd5KMa&F zhT@IA6-taP8|ho@*Me+K(^J$Nyyb)tPGVD1E=tIV1f$xWOYRo9^GCo61+ZX1h6Qiq zBtB2GmN^^)EE?5Zcp9~AFL7EnHNcOUWv%3@vK@p|d#?myf8etYI;K4(|CRXITR)v1IOgfIb5crm(h z5bBj3tNQAtROW8lZ@2q-*S5ecmd$=w@EFqrHIO~Tm&tvt8lcGw`u&tU-P&40wf6Kd z8kLo5^_Q?nY7$1)!>+irN7e;Es6-7D6G*6Pe=E_`RU(t}jA@mY3KFgEbeeA*w*vG{ zbyY0lsZZ3W>xb({>v{D80bkhDDw9eWir*|M@uyr4_tLa0($SSBnuFm;b93*)RQW;> zp(2sHH+}KJ&+-sqQVEP`0rig9T4Hnd7|#M~pia&?7pJBn6U4S^!wBv#?t#TP7dv>6 z_dBwK#^3Ni9*cT_F;yY&$sIu8*s@Xy7Ox-lY}QVI9<2)@6s5p_$5~<^zwCBq_zo69 zkxMqgc}8zt`<=|E3m?D6f!{(SWLKX{j69OEA3XO+`HHR#$3o3uS%C7a>)?#UWTgksn2fK+q?JTQ><(DJ766{ zMIh|!Ab5vM4TMZ!P#6Us1vZg~34yp!r^^-RTCIfy!1B9ke;`1J8LL@F=c?SL!hnv* z1z|wdx&Q$cm!P`>Ot?HC)CKfJu22=xYlV^0BtYd%Xpz<(s^pdu@=8NE`iX0j;4kP_ zs9%P(<9T{1SR=enb2bG(R~C=&fNzkjg>P(G0K?Bg8tn1O134t9OpE|S;oX#g`V0;t zD63SU%#9*VMhBdf-pi*lUt~Vo{>+#6@Ax`|9zYMRdi%@A@4nwwQMY*GTfak{$UV7N zXRElghi%%n6%V|L zhJjc-wCP&`t9^3fqs$Zl3%z#7%4R&n`;ZShm|un5o*Uxu>7+waloKXO7{7Ku+Mn<2 z^XBx)!(%2>eiWo#y`J%}x4A3YIB;Mv3TCoyNxT*N%~;$ycX^I}OM_KsHeBN1(KP{nS3y@-_qv*B`wnvF>p8q&+49E5fYQ3uQPSCa&%Hf86xFzsf0;MFcPs4C?7&cQk0(rR-vL)j4HNRHxt61wP4IawF+|7EOS@67?`_AM%j`^=*r-Jzq%{55di*ep)7OP1JIsj zD}Tha-Bg|VvSxJuAR3z^^K#iX>lgQ5aXEi5DP#C|J>s(|8ZnpG*G~$@-(GXDoG{I6F;Em4_(UN{IS z^dwYWJeHyt|0wC|R-v+`Wu(Ywsga5VKPy^S*xhXyH$2NnWPdxvzYw9xtflXV zipLmxG z6S1UDpr#}Yp{61RCgOxmqq8W8h{f$_&DONcfM0SxbbewkO^!7pr{v&p1KW_~`V_Ff z$KXxamf1Dths;XNNC8d)L^d-`b5TBvP0nfqAvj zCAKP{N(oha1s*XAjW6(cT}H72Trnz^uLC|mtJvuE1;a6~$7NNB1$y=8Uwf-6MQW;&H%TL^*TQ9NoaUIuM9D?0JfGf z=>`v$7-F34g5#_R_YAzuiX`ezg{x}CuC3QhRn;Z-f3Ko2?yY`|eE2a}`1?(n>88x1 z&n{nQTw#gr-1YI_X3{9qhBG41&A2lkwCRDd>S&_Vem z{L`jXIWtNh*JSFy@ z)OqZ(+c8`PfPMf5Z8o+=`+4lNFv485qQc!PR;nc8JnM;>&n0k@A;ecTyDLZmBa=+H zBUAFIxD5eMMRiGJJFj^v^X}f6=l4O$k~=)KFS3tp+KXJ@rNQI-_Sb(aUpV4gyKY@k zbI6TaZt5wgsDot0y_%H3_vQHRZGblLdpaM=S2iZoeI`_ALO~$RPUR=XnudI>IK`)u z0!;(umZpYbxGZHbctA%`28@!SxD8I#owCM+7P8UT#* z{7Qu|QnI*Xt1_8+JwX>pTAdaBi`Ey|*)( z?nU1dX5w4EXbm_hH#JaU*Xg$j=;1mwL_rYIp1Fi)VqSnVb3xK-$AZ{wzA%WI-Nya&x~NYUNDEa7r@lrCN@A(waJ2JJ(!# z&t)6BOPv6&K+U4by{IRaOgm#M|MBGlpur=F71U;Gg4qY&f{9p~1d0U(AyJ447OP02 z5U8Q2Ul3M9D2hzz3Js(}BBpW)C9bi`r6XD>vdV7tx!B?~SBH8MKr>Ea^Pfxqv~eAa zAm{+!$U0Y8ZA0VP1+>WE8{;qX=4X=YbOy^63u0%>$+&Bn=52oEvc=uMzvn)~CcBpR z6Pn(b^whSY4NKmf`Mozh-2dnu+pqlAha{q9)%kEoPU>1}i1`jMAL)p)q$Wo=kgKW! zpob#3Wh$VToAAY!V)9!r;w%gXtr8ieE+&0*`EKrIIf}ro=3jU?Q8&gSKolMsUQK}pb zl%hTtTA)JIEx1zs^b^j0VmWBjdrGR+?bys@Z1ObM&Zg@9}h*uCxi5&mKR zoBXpNAcUyO6NXBA%t;MZCZC^x>Q>qN$7cZ0a0vf@=ETr2uI_o<%v5_5(rR`=SxsH)Ga>!pex*7gPap_RDsN>8x?O}KG^*ts(vb59Qi}k zuvzbQ*p}UTsHydPvmeifujSba`!aiOjTbko zdBJjD@R~;vfqwdAd&hU4|NP0x%+Dm19_^^C8hoqN>>GRpNDmAVgJ}69$rb!SeI!qr zXo?5Ic~;WIWBFRFCP2y|+!3Fyib$lCOnpk^bK9$Y{5H~>$1@qi@s^YqH>+lm`n;=kN=)1d?BR^4LcN0u*MKDB1YM$dzpZDa3uELziUvV?zl&(4q5@pyDc zP$MzcDWeZuc1iERwW$qd8fr=A#v41k+rK{LG#K~o`PH8uf3#e*veR1{th;?>m#O8s zM|DO3hPWb~+@SKh3Zzt}g@4odgV(KG=l5S%4E5O%FM^s423VK{gaZ09)5-DxB1&kb z(=5s?o)L3@A*8vkvKk#X`PW%7uoy>P5>YvBZ-Vno1b14V$jR&o0(2G79} zR{RgwVY71r^_3xPyW+eKWoG$Z@X3$ux4iQaM7AptCJg47oXxDO>BYT=yo~lbr1vk{ z*HN>-0H6>$a>VsK+@^TnQdxgqzI7pOtj6t%Z$EsMimD>-%v2;>dUkKie0m#diXz;p z*pyjn&hs}5#Me9mJ&YR^tL^!!RXpph&qFWcMh)GKt-3jmD+6G?^(H+!M$cpEt@N1Q zO6s`HsF4E0l}^j(1w6`isfEJmZ3+P>$I>}=t2spj1l4k`K?19NNECu2$a0-wv4EoV z`LI(~N(dZ4gk~+}oY>%>$!-5cZIyXpaRime&r@5`ja9DN70;cgwpxHHFtydM7P!!s zn44v`Duo_6lDK;IWz+)9Cb^LF2qyD$c#3PZltd4=ppo)K8xa9$=hfNJ1sf;lY&uA) zPMmw^{4wt>c>To&o=tceg&WD}1&;022 zKBmkX43xX9fdH;r^%8%l_L09P3W$nifi|C?QzccXsY19GEsuW#k*^iGb?LeIKAbSe z+GIEcjjsh$f3sJ^MiYV#2gC;OWU&?O@EzCoQa6{B_92wnxfe5g*CAcKs#De3N%Bw! zJaPFI8qDS`;CVc57K7F|`x1Q!bhiT}-)$8c;wQ~!MX(Lnmb!6 zUG-X%@9OHJa+A9-5&2DIb=1;sxYlT^c6_HzSK~8OJoBB#;!yh~gJ|U&Q^)uz-%Mc|_lMGjrDP|jDH z@`{xy9Y0l^+fI$JB;^wnkMcmk8&@8%Ry(Wpz;?ymsPJ_Zeh)?&Y+XFx_*920#{oM9 zMlHb-0jCXnbJ%*}V>1nZi5-Ea2OFb~jw=g0S05be`WDLBbmxQ1!r_P9J0F%tCAT%W zqGcObT`$huRpG2t6)#O6LX$ZSgLx9vfAin#u0FixccP}NNMUB;H#c6It}CQKmNye$ z(9h8az>-N3o}@-Fp+;&#%afX8<>6wpqr6m9SXCSe$BxtLAP@d42?Ej$`)(-`)HOGSFGOx~kUE7_<6X(reZ%^rZr-uGNKQ=8(|W zwN%=bTEjhCjGqOnDtiN4tYEKv8c)!i@UN z$ZAGr1NOU%!S6OeVP=EDC@5XxK<(h3WB3j-ufzZ(;U)O>qya`lRTzLWKt1=&2?Plc zY-)fzcf#$4N09k(gS~+hKwx>`ndFfDuyF@71Y4062_5)!A?SfXBrv!GcSxRwT3i{Z zncX*#+F!f+d&|e0GVe73N`1$5lYcU$E68Po4`n{O`P%ihA@t>etDBke6%Wk3nR(&U zgP|)$3IUy4Ujl*hPO@p);j90VK?p4-yE7A+_hyNEm(XGn%#4!w9$mpk>|#(O4IRpQ zdtOjrUmUkY^pSMgaM>vC$R>CNLat12X^9r zc=q20>b{C}jsSb5uF!eI@}cJ1#iRGefxXf&@*g60Z@YR{By83Sbw0Kg8MP;9B-FE$-r2Hq5VF2Sb#56@C&;Nz@k?`Zpq z!FfJT!|+#;4$RZ}|LIOC;+feW(eDutLX1U27>Phqs~C{vTtO6u^UR=vMMJb&X3)A# zt=S`M`t4(ui`of-bE{*>L1tV z8VyDdR1r@afyXqF%2w2aJZzhNHs?BK5GolK5pN~$=oW%KrxCaayP$#y3B2M^T~dqz zCPezwm}RSF!ZKx{ExJ_NhHN&Kn@H8UQ(-}>Y7BbQC&E+VgW-Wf~~Z zuw#SEA}%C|uz?{BiWqN107_$R?0-(;aiuB_hPL2b9?m5Jq!t@T$%B`$d0D{rxPV%M zo&;L72Oc@gqh;v%!=)v$flo3%fidsKsxPa66>VMb;>>HA&j#11)@A*4lF%dX@z;vjR~V9R#8nYKSbBf@d_AtRnOgvDcC3RykOY$nD5e(O$i)D%Tq>4-54G z#HWSoLH5@Qk0)NKsD%At3V{C`ugn@Lb7m>)^kidnaL8lyA=XZBWAmyo`IsvQdn;M9 ze15(-w`Lxw&SJ#s9-JYh;OzN44b~;pCD;FP4nX8r%XfV_hhI1L{yco$?U~m}aqs@m z+X2IFW+?Xqu;@8_k$X;Z@FMS?jnwUC0qq{0$FobcXKviPDD&TFJ8R3cs3TxSmXJm& zPW}yyn$o123g?K!#DGkegNqj!rCXD}2veExKtyJSwP0}l2DY=|PO&uM|G-E?w?(GI z?nuNPo{rqG1~{i8kC1PacNx}%wz$n98HUyD!lBlPv$@`czTVreSUxHrm+z5J$`1f26JK6{>AA;% zo_j()rDoIyeC}@nM2gFx?Rdlc>_d12Df$@}2o^&RfM~F>SqAUPtd(mZRScO(snru9LYMJQ!FH-pioP-OGYGPlC6>n$&}=v zUOL$_8rUiw5Kr+tJKtK&FEDDYsV{P|ZbFR6wMPi}rR{Y(yYWT0d zRd8(;aBUjK3$e3K?%Lvfa*79;(lOpvaw~5F0O1&brsFuyC&W`gZO*%JN*SS4iYW~+ zWeHCz8+w1}1k5fwq1>lu`HMm3Y~_Ux+g*Y-|;j7|Y;& zawdKR7?jyP21_}&!RH-Byu1{stF8IvlM!50u-XsDFX1{h8$jpy9Z^f^`!v#u2zC9#2b2vH(F(qPgkwi1}Yix?)b zT;eb#>^Ji3Q(IaN9vNMdIsQv(f9YMBR|f-S*36@yl;tAp9|9F7Lv-Pij@Nhm9EA=I zJcgM4J2Lc-G9mY^8O4Mbz5SxqSC9`zxwXce+_-J=nY(6Zxqf}N!)FkLlp%IMO0b<- zPHCCP=_#Y7@Bo?<%hJwt+4;^a78RfG21_N*T0*;t9`qCFCX|rKS=mD(!c$$~>~#kM z?f^(z!R+fy4f6=BaWrY-8FTY++&zMUXg~q&GC^^G{W+mk|ugr#Qx#$DuS3~d( zP{rB!CQcWHfFAgKzzDJ*Sx*~Yu?#k`Ss6xb>Kh0J^McW0plUMiTj^7wxFUG zBzj@?h2%m}BOuoPka)2+pGdLn;~S5jR(EBY5P%W8)kV21VV|gHoJO=T+|df5U8oI($S!jBT;RG=Y-)(Hn4knIE7LX*7tXq8r5x)t ze5?oA|FiBpckaPN;(BUU#OM#STx+d5{o3>B72HlS^A{U~mg2HBH*R66{?_95f<;lM zD{kMMzI4~`uD@F9cWMXwG+QM3FOW9hiu_X_qsvC(mWp~!4o`-gZfkSJnU|0cGS-(= z(YUdKeyp|ECu@O@Ik$Dp9ldwr6GTyc4GNm<>81nr202X%mHx~9Fr#aUSIO5|zb=uq ze6tRNE5VTAzNG?C4Eks`V03~L9UOba9RbayaIeZvV!xMbBfFSVl4GzIG_xN&3|;T(4h+)tfA%wL!T|9MXDmb0`H* z`#nt%9f2AJ*=Z=shkmI!{85Y=Ap6~iiE~>{0j3_*Hn43Ctg*!D&WoW)0cOO^W zW4KdTwK|xo(@Y0&&kiNa%n=u$>*WFji6|~gk&!YXQ$~noc5@Zfj|3vMf{4qkR>&gi zh$3Q6LEXnWZh}t!PWA;LvcL}*m4%IaW5hvlYGAT3HWjQhl+WXx#|6az{RZ6Yi)JTV z{)CZi!y#J;Z&@5$Jr9Pdq~#u7=8yeV3LZvBexUUpY7QKk$Dt#ubgOou<=Q}0xlG96 zW%796;Vn(Q8`>;hzLH0Ys{9v%CBO4W7AhHuJ{s93K{SnVG#@yRt%-W@{6wM8@iypl zOcKkIz8pz`S^{^E%uv!0i3N*G&86k?vPeJ`$yG-r<_Ib>J4%@ADsA$gAKS7=rr(Du z8SrbS!GQh7XPEx&M4OEVaC~dXHeAH zz4MNxt6F<*xaTtJ-b{ywTG(+9J#hvQJaDgnO#)&N zl(fbG{|(nn)?mm2?p?XpV9X5eHSf%RivEE6?iUyq%=M_VWBAeeF}n#8-j}t6J@wcU zu7Fw-&Ju>}#a zrvaM!hn%(!=N8nZ+StBc2g%*3cX1H8zeJGz2kb2W<#?*araK!G%BJF1c4Nh0ow#^$zhN zyb5EDKsz#t$F~R1V+?Sk7tD`N0ba^$Y}C_Yu%s=+mRBsi1Mn?-51@51;`%L6f0#!! zBz=r1UjaCrULfW@tfes+=aiOGQ&K1e6-NvJ)=9PlW+!RTdbA1cxR!>xB(SxiD3c`& z!XWFi4?&M)YqCHiz+Y(BgqbMIIy%lW&q|$xlgO@J=YxN<5mR&ocmhlV1r!6+;_Z zp`@+=7ujJ{bvP8c2n-vro9kBs2B0=z0P2}62-|=G=yA*dq>lgt(7h@305AYqSq7lj zB36q&gbFYN5b-!52sbba$bU8_z2m$w?E&7D_7&biEhEzQoo~6tNT__`as#hViIbob zv)kEyQ4$oa?Q`6&328EqD}w7`uSSaN#<;98y5BMBa6RN~ zs~+3$JzU;Umd{J((9LlPk7@DCfNcl&PVJ{HOb}!(k+k)rwP+ks3YzE>V=AmMaMV@n zWo~J{A>RY2By|1=8+9DQol8TkCxp%ijN0#2!+}sw%NVX_WPm*5VwU8BoGJN3`&>QELY@TCM z!V7>Ud2W8e|Jc^~3Gg^*h*DCpDnNfdno z0@nl3>ovJK!u7fCqPvH=@=msdfxDYTEA;E)Pl46Lc_WLNt)OBJ9QGK+or`2=uQL@Y zt@iB9d}b?TPwc1^?=W_ zgt#2)0_;geUXHkr;;W_G2(?!2)@_=*OQ@#6&J;VTytz6qxK$Qyhl@qxcnP)S0yLev z$b#yItJhz40c1|x=afsMEyGK}?)n8iNj=BJp!&s3lqYpcLL}1ZgqlhH0sSlbH}oIq zd3q|>Z5i3XPRDfX$)S^AcgY~4jBPKFEKbDd{2q+ZjDL0hXHuv4s2sh0wgRKxv+=$H zv|e9g`_>wpzSOYq5++ur*XDaVyG!6l+g11Ipn%d~*uBiFH)(gT!t+v`c?^289)~(N z7i5t7Xn{s26lqn&dZkk3F1(AI8Lr|GJdqR7b&3(VxDY_r?quEnxu6$%1#n7MG-%`o z_Z6Lsme$wq?J&6RY_&SvHnG=`Fy-}jEbshwnV|%C528Z)Zt4fj0HFbYATbVGLafex zERR4nxnhD6s+H}+5g|zkWkRFSD@+2X*@%!Y+(oHWNjkkL zxM%%`s;x6JYO?po?M8!X8<2CSR*BE6DuTZLs(@c6kksd=oEyROQj@ zwVBUtRX442=}VkpxZc_E*@x+B=!^0J%2QBE2+^2uEAXsM2@eVn3*Qu;6@CiQU|vKi z@|P6aNms;D90BL1fETft3-TlZL!MuD>CLG&m@pe*!KN$~N-U zerV>MH|x0xW?T5-qQR%*CYzcYfzmRu0LlJuE?A55$(3y9^{TAi`d4+Iqu zC+BS|aYf?SkRNBB-qjt-Be(Dp#Yugz*kLPPJF@?)frQIrdXP-J<8gN;)(Vsj`Y68N z@6Jw><-AV-dEJu)b`GA%nokHLggT;AMhJdHS4dDmFM_?Y^LGQi3G8jKzB<0#Ih_&K zar_*RP~ol|bwcd7bC@q&<+O)_%e#3L;Kc@cL9@jkC!ff)B(EDB8QAl2DsB(xL-nW; zHM)X9SEjhiRAEnoEpQVsJQoY}aJq+}6p&Ax1;U>H!WNt~WC(cyCkjJ-!8kWybnj&b zU|cVW#x;iuRXYpJlY(&=SqZlf??~(?tzhd(p=yo8OJZ?3 z+4llUc>G@Xa;QZfFMvo>9;j%+X3ic@)?xvDSU-Cb{fU_beW)kA&rJY#MWpBjq)f^+ zA_H`f%5@w08*?`1Z&Vp^2mqT7`Eg7V1_&uw8dy9*)@<{f_I}<7 zqay6!g(s3GXG)dwL)(=$lp^@mS~8Y0`K7{AKVKts`co=lHDHH;lE&yl@CEU3mcQ(r zCyrG$PJ=tRQXQ^711n38h6Qvtuz|Cz;0#jwG;<+w3$C{Zhl#BWu#;D{kE{&~SMY_B zYQ-JjQq)Lzba!$7&IeS;_2b{QcieK{%wGiV1B<|0EdP+*i}ezx2O8%KYw$`z9B!_&ymcb! ztq89E)9^qnY^~h)RMHhJs@{Y|b1fLBg0YQ5I(yhtfL68DHQl!Q;fe<(rXg~o+3&PQ zo*D?cEE-!RvpMr8t{>y%)ZMNPgY}`fqtv7T>1X5Vf(JmRxp?|*Xf0U;GMz4EWg6yW z`Rqs3Ul&XfQSd8Qjl54aXe_B<~S4} zIK>JojtaBqwnLq5QpWe3C039_S$G(`#P}pfDbuQg$1cC_>d~zekKXy_dIIP66Bec)u9w(MF~+KSMY zLLA)~!weC;(@@P(2AvdE7x43WOn?usRT8B@jDU*rYz|Ti?p^jMp@kj@1K_O&v7#eK zAp<#gGoN!(eVz`&L1H3stc$U}#aI6gE(qC$R1g}Vg0Kh4@9q0055&bZ5U36D8!!_@ zMt9{u(LkVea1eS)Gj%)EF>0|jrpgoL)#mbavI00e!0?2KDK`5!n-j~DWiHvv+MyaQ z?NkmYZZ_?t?uz~?DlWe`(*)=5UTO#RGV?>2H*d0#q{Z?nG*vJT#TLw%X1r*tW)HAQ zAPxN11Hun+A;JTEAJBY&Ki$t!tzlc6ofkQ`wva5~A|oWzTjy(t6byFgN<~y@hrG&d z%&ayPJB73e9d*}MsDw4qVsXvPPY_Awlo~yyh7vgJ;i|U4RlUocgsfd4Y1G?@DY16S zCLSxEDmhp}X{H2D(>R2Qrig=pjUx9z>D}}Z%x!_0NM!iv;o3Z5rQk~D&Q6d_czoVL zm_J-eM|ZdBdV|50`P_V?IcO_cdt_~keu2ZQwHwM-4X#;yf1T~BG1^FysxreMomc3) zVeyT1O+^i^HkZpVlB(R-e|=kVV=Y|w1Jpw55c6%K7J>2L3#Z1R zEQT=&6nOKs~JOa&=X7HFxbAzIT`jPmR~?fr!O{npbLgHC=5}{be8? zXi95xnx@L)%~R5$#87%@d}w0mzz{QJ?;Q`KV4^NvN7i}AG+Q+jnyI3L8lFa81k&TR zFZV9Pq6?*ePzjGIDUJ+5QefyDC(Nfa@iWI|?`Mv~KE$)|e-kYwk5wZU*6G8u1!51p z40u2MZ&&@iaFz)#63z%q;jB&79|Zga*9b5L60NAUX(}F^THtL>wzjv9Xb!gWT46iyDVi)g z05pp{Zb=5c1Kg5;R}FZ$Jte6f6LF_ouLju6xplxhIstfID~LVG{wuXN zY46ld#smD`7QG!=ZF?<_y?bLy(unJgT_x0W%fh%`-GT zjcu?KGKgd2eFDX@|9gFbd^`<4y)ND~7p)K2au+U8w$1{mO#Y*)$&9`R#4dQteDqRw z%ivYg7sD!fcUEg`CAo9U)Uo0Ta~xLb|E8U0ZpuXhK}~kYd}E~;#4VNI*>vrj&SHbK z1M(+atpSVq$<-R%wwXg8HKvUuE^ovjse6obRyovL5of6`>TB@ie959(vQ}MdJ!_@K zgw{&Sip>IDIW61oVD+@EmT=e#m>ZnP{=}F=WkpZhMK(_%1io| z)CXPB=n$<7)$7AnW4SBw?odi z^qci!Y=auqAYqNkrAi;&nR%qUJB{M$KJ=^Hwzk~11zFb8%_piNc#lqinp}4flLwCdG5{ zULxvWUNxHnKpaiL{C?^ly%YU3t-pogv_z1YV2l&WNqGEfKo!pc{ zffRbN8f~gZ{%UknFQa-ZKTuB77ch#eL!-0_3Ic&^D^r^BCRah{j#d3@t; zaE;vMHovpyq5U^LzUP`}9vI#I`j3CUWYa_a&Yy;Rg99@n6oHTP)9wVF*DazKOP3gnlecn+$nK&~Jf=8y78omnmC z6aJLEF>OZ#Ak&Fb-dHk5#u`KwLCV8HI0CV14P$gAU8KtsQ5NMHtxD0{j01@kB=cZf z!kpvyFmx}TI|)`5H|@C5fBp}L!^LjcIf^R`V0rPZLod<4ne%zVD{3O_zKHKCb1E=D z>$hiqbs_PUeBnjRSJbM~$VJpwUql+4=cauyTDtcF5-eJIF$)&nfBmx`(TCW)jh)?p zx1pzCf9R9yJ>E(02VN@eMaTk%0Re3v7H(UyXv8e9IjbG(xYrTCfSm~YHtj~p?uHk* z-2%b+eaL-I5$r?mbIuaKfX`tLAxpH!4cEcF-vB&|-w&c7@NV#|z}MpjZwzyd9|f-Q za_~4WO(uuqs5Oq-f@m;^7DRd?q{CPs@ufThg0AWTgC(V?bQ2z{;{mcz6Da5hJ13># z`y@Rv6iZ1(BG_C&{(R~L`wbwnW{w<9z+wY_?EA-$9GUT*I)0Qp3t^#=$^i_ZSUH1E zcECTj`whD%d7*IDFJbo=Ha)DF658!d}Q zp+oSO23J{rwR6%XBsC2KJa1cOk|bLWW)41k-4pbuX_OI-WPbE)ZjK|^zYgh7|Ks7O zwNB@*^*$rS`E&M4mM^JWgueRFgH}J3*>K&DV8Vz?Govh)eW8vPAcZJ3uHK`bR8vOv2r!&_bg5#CJ)q0eh8dz<*#heX>XAS%f zifx*NJ~x$NE^URU5tWf*(aKdkv0g822fDA4+W1Z1qDVDM_N4%ffC_gj5Q43g+81|w zH+>uZ_ivxS@euHR`Cjv94o%qH=(e9691OcNH|4zXZk81cq$u0jOftkId%9%1kl^RX z*q^iK8vG2f`*6ljGmrAz{ADB`>T95(6y|ZRYC;5FvN+8Gx>5`w$pP#S++xJqt=XIf zEVu^kX!Hjf8Up@C^0>dT(GUOduEN>lG<&LXy%+DH67JL?^L=nc`F#2Lcx%8&|Ln`u zU)l4lmX-VW01q6pretmc#w8NDx$G7qiS3!k7z^(h$bSv-LGrdHJE}0Cfg-eCht?&~ zPy)phXrvkis?qWUa*2^thWQLfWwc;D;dAS>MO5DN1~dZfc7};WWkR^ZhPrJiWkUhn zT`?i6R)`Y`g>b@MtGIzx7sU=6HfOQZV&_w?%d?fg3SFfr9pwS5$g%+cHp#W7P@6WPgN5pkifbj-O*2v~U9j zS1$+yI6e;cT(Zw~=CKA5CtgYgyZsbgH#oa3xfWGc@({d)3NaQgSI}M_TKVnQYJAri z!_LHA@}-wObuOANQn`~oC{k4Al*!cd$%UB%y3n$huK6{WQCQTo0Y!4HZt?c7BT=^( zRTh{#@=hZS+Pr@3Z06O>4(9F-ojc0c7`a3QbV5m}UqrwD~iF$P?lHD0=} z#32e-MAVEwBCd+$!Xb6;)VajWF_>N4UXQ1DXv481VB;U3ISL4M^Lp#TImG)7x=RAY ze6$I0An_M&?>(P+K_qNmJ8rC!;WzyJiK*6jR6eWIK-H(ZN|&(NaMNLr_E&HT@`4J9`yEV)!mu7sO3 z^f=(0^;@bykF%!)P{*>T1e^oB-!dsUCF=3>=q76C z?04XtAoa5|AI3q!a%$S>j(|`f$%&?GrR=gvj0&~MM zUwAfX2^tXba~1h})=xuIkYshYTu!PAFUr2 zF3fDDW6&WKg#5=X$we!pC}=}g8)`A5;=E{HQy#TEgw__Jp6GK?G7v?!DC#Xi3rbLT zba|BQcOf~W)s}=(4k8gPS!$?S9z`Knw1kfM%ThYEkk;|5A}I?7XOVpY7IPMU9IwDp z*|9Si`kl4gFtbcn$8ZmE-8yIJVp-2FMRt~PiwJ-R&+V2A`ia<1B8W23v9*0SwSHqR zWk0*-#_MkW-9I%FW&VMCh}OOK+^O!`3WGgx(cGCG^0CctA^PCqi&}|DEwmB&Mi#-I z;OdxSuqU`WrnAJY=q$F4690#^H-V3;I{U}x+&gO~%VcIU*^`;fmds2t$?P*(W|Esd zfg~hh2?PRR4FW*{5mZ22sEFc*3o5u(ts7OVR_js)TncI}?tr#$ZEY*os_pAr&CUON z&YcNh`+5Jr{(gZ^l9@R~LSs?wOoK?46Gts4{PhwVUu5>3 zmz}6x%)d%|lE|!9lL^WNW6&9$yG6YoGxQ|K$iVZ#J7gJ8&w&`F1DV?J-N4rgO^!%^ z$LFKoZu0NQ<+A75X(ZWY^fXHEea7FZ@D5Zv;{AB{8GolD_ej=Wb^-f4*1t$iPdP1D zLOY1u11Ug1b8Tx`jr5sWXKrSH0#>18WKUoYYJWxu@kC&M*0!RN!<64B%}FH-=7j(G ziR=&LC43fX9=dvT9?9;c@6^=f;-q(y@*F2HLSie@jbMNJ!+p^NMR z%!iCP{*Ov}w`Q>UPU4TGu~9nKQ+LML^^+&$N7%X}DT7_ZajZMNhI+!~BQrsk=*o$n zz6RFQm|ZiazS3*ngKL4c0B#H}xU5nqql57&q?zf}N;7{l`FYa*$Op|!*48FXi;>ct z^!n+Xxc=LcGge^6ii+&ijF%xYTEX^FNP2H{pJsk~Pl%BG5C(@r`T3_mE9+v+KI_cn zXMGi))c{sitS1JdS$(@YjM2#$=(>q*il-D`;8W0`INf3DZ{KHkysb^A!#I4>#))mT zTQA1UlE%n%$uaSGTADOw-Q>55r_?>Ed2pBaV@2r-RYK#-5{Y63{fKn7$rt4xq4zJF zjqYh~t9T60OZ=|=m_cHL9hdEq?lwo#>nKC6t}Zhdb4Yhv>gGbbIU(sCt9Kl$$Jlha z?R0E=d$E0LESp(H_Yr2s4m^npBXkF14!MHu7-^1^y|i17x8B>rIAjt`S*oGFQ18w3$t@%DJ9E`{%!h zhoKmB*QRU9mE!B-$$i$VZBNC}&MB+rpzk(r^=(x#g930`iOcKZ>9cf66A?X|$caSY^vZb7~6fG&@0!5_LIA-L`I@DWp zY15@@Z%hzlQ<@SPvxIz*~1 zE2RmeP%xh?jFd_`c0#310ddOoU%W5=B$WV6I`-dpWaZMYrxJ;u={b$k@oU8&qmJxL zr_+3IxK(`OuM3B#(uDW6Xef|JbKvGq9+!WMxM(AE#a!8ai4~)>i4Ads*(5ZbbTyOw zQj&%uk%U+l?VCwv&Zu$@^xBIH%*JYC0v%#!gga&Pb;*2dc~f_Ly_&1;OmuRcox}60 z;ixwZ#O>`ueXZaO`?zj_>lKO$glzdDtr}}}Y~my}e@{)Ezz^a*LR|?|0XcH;@L_5S ze}4pFhl7U?!s^1qDNqawpXe0H%m!Fe(tm6qs`>GclEA3jihn7dK9v7dC1xdj`dpKW zEw+_fY8a^CaspwwwD9t8MFXeU);$_^IrcaLuLa!E#Rc}7beQ`;*>&IUOHc6f;->mC zcXY&Z39(#1r`FTBh2t|GyzZ9AmMj?2rmK|uVxtoiTDADb1&gOE_+oL_);gcO-(9D$ z*SZJPTCO@uxZVYK{P~XS{8fHAANI`1QRQY1yZxD#QgZPn_YY6+xNC3eo1x0CH%Pkn zNBc&_w-ePc7T}4XkDf-}ge<=R@@yi0H?g?Ml1k!t>J|3&xk&gb4OI%)WbDg$6o~*3 z&g~gN|G2{2uF(c_l+Fg!Ez~J_EIo5OKvH0v)Xm%uU;&2?ABMv*JZzW1k(8NA{S2CZ zEm^WDIFY34crot+Hk2mpD4tchYGLn}D;JQCzbro|eVS#OK1*j+lQe~=Li}TnKY+?n zpUw2T8%qlup^IwDO0L@cKj;kVE{%;8mlYQe{M`0+hebco&81zvqhR~RcZyFN^s#U0 zl~XxIBYtYoAe)xIo499EU+dgZCYVfT1~m|1J6oZ zf9<@j$5`I_icKFX25M^E)5}J^A4GJs|7*bKIoYq%W@M&qz3jeckgh(XQA$@QUmf4~ z7&6v>ec#Ik%JnT3B`tP)mm)(x;0ST)WXPN+}TpQsAy zT6LUW7O)g9>QOI1NAt9bMM{5ZuC-FF&NWw)>PmrE`RO|43Yl1nRGOe3jz2A}P4a-Q zp%B~zLb3?-qq}($LSddv($I!vhi{a`o+Y0rWuRk(iNE?U7d>+PruFBp+;G|A)w4@3 zSx^yeNYvIP!UbI+N7;;~=J<0)Ti}|eZ4X>=WOVhy^M(ffky+E`SsjiBS4pY0CYr5o zjKq*)uqG<)5Bab>102d~bni-E=Oi7@IZkf2j#NH9`B}oL&1|>lp#sfv2ziTDuqb^M z!Z;ec*Hnhnv^8>0D9*Qs_4Kx*Tx6j0pdVU`)2suG5K%$y2(HImao zZ}r(#3D9TTS8VNN^}$lr3CiuEGV6AS-K17K^G)JoXA~mfXDYbs-#}R~sUCq^sYd*< zz}77epK(7?FO1gwdy&6VZjsq#tqIK*G*L5TX3uB%U{RH?T{Dg$)v5$4{HdH;t%FnL z7{X-*D8dv6AbRMX!%)jq)E*r^RhV+<@jQEpE{vp4SdJZJrTl^&=Rcv>cH6=vTbyqzwmPRJ%qFA$cN%$ReBTR; zIv;Zehv%s@8?GVSUs}IB^VY51UZ+}p-gSQR=(-(igsyI1S77_bmY19-JM%8IJ~e;) zmyiE;>(vMU=-#Sr{Hyj-*m;vDCO%fUCtrc})`Z^0DtwnsM&RYiN_pnxq2?Md2Ug-h zl$zS7a`H5O64}eVg1exx;%d85^EI zdYv$K+s(q9IlD)+E>%%kIHzkwd)r`tqi{LTLQJaQ#Tz$VuG}q*Qv(i{f9Tjd!`K)H z>rfm9CEp|xpO=aRr2C_~U=(3^)YUkC>fpOaP+R8kA?OC+o~$(q;7@6_oWLVeQKXb6 zW$W{=!Mdrykt9c@QwU*#;*E4+*-6A~G+>d+L8N540JU;bYmT>~yD@nOaD&)y_N0;q zBh6%md8D!aATqUU{o~uuzx96!NKN1`a-uoq76T#jRrJ&+e$;*A&O3|dt5bBm+^)n! zPwhXz+eS1o*H9ME5s!7bx&Hev!QPvLcoVO`FcVz9e+g~f-QVnqEdE~tT0u`#o+Z|7 z%`CC%J~}N^E@>AsZW1p)lj`T0KUz6E-FVTJFO`%iH2w!2uJHBtKw7n}K$m8m1(Kk; ze)Bf*>x@C#ExT)Shx$c$1T2P(lTpbZU^vF(6A$t?C_cpV-OR(9M(D|*-Fz!iIjIuO zjVrx=T802~MA1F=^u`n~upiWHF{H#V7YS-F#H?F~t$orK<2vL7#XfWg!|7 zI{Ure?yA!^U($7BX={(c#+UA^pAXHfjABQYCc*~BV`2(|&j=1*w`j2ipOb!hV z?W*naRQHt5$+hGf`ND>f&|YDGWS`;-Q&HXMuAE)s?{60mA@$H}&C*}-AtCb)lj|<4 zDf55Vbjy*x!5ud&T;4rMez*3}tz>-89J6a(TTL*(xL{&K%w8JuO}m2XBO_|5CzQ*9 z#MQ_;63zml!YeDX2-z9q>a8$~eA!uEL7i4qROzsWT5)CAM1_R+h>sRdfDX|| zArI(M9<7@=cBJk&{1l2sQs|M^D3lg2$c0&uBS)vmF`~!~OlGWI(&OVB2%l(;O#2Q- zZGW!2vBABHD{Fe|iW%+Vx#X3ct{i*KYdHm;rK-8BM%rv8A6`kErB#-$VuQ~^qBj%I zh84TSNB$I3JIiv!i_8)EhJY_FlF+l@8~$2;5%-DWx5yaQ{Y)b>pobwcH1J_52a?_8 z)CZ)WhWjMsbQU>ET^^^Qu-YC~{HU})g6^rMx&?z4ub=K%sn0wIonvFW{sR>2eF-Q~ zhR$d9Rr`8BWW!8TV)6%rC9QNvfCJ*p>D#sP)G_(Cue+|As^C=A2FPf&FIHSzyGWm zUt`DzolzzG2>C4xZS*4At^U_&x0DGw1D^nH7{-4f+XMTV&K&Q@%(Hvq@g%0g&|7xR z?Nir`ahy5;oGuWU`m7QPOna zEjepm{wsFR=)Clv{WE#bVuUM+Ve(jPiYWv;rw9C>F4zq%va1utTjJLs9nef{W^#9g zTo)nRBV@mf)Fslg+XK`=h{92fd4@b=9zHWisa98?3*JGqL&mjTgJ5a3P~0jAb=-Jl zYlMpg!b)A5L8)!6@Cap)1``K$-yq>$2N`Xx_=rD+@I#y28PI4}Vv|cqNvF)eC(Uq2kDw zU%#|v_u?BLuCK`aV9uI*{uoR=d}zlepZMLo`9@ca47~TXJH|cJSS0@Qv6n4Pfs7;&6W+Lax9$Xvm=y%0890#&?$5S11F5mci=CC&5x;SR5rKcMAm;Xw6JN6B` zzvK$ku|<_YFU5iX|8tfl6;(vL<1z~ z!}l1si<>+#`LMDLIieJy+L-VS^~T}s2%VfvF+6idv>;dTy35Vhd0Opov38!o%@BHp z&Un;YE^tD9fEyAFR5@m8vf2$Zg)G)@I;%ZbhMpgvzUw{}KaTPu0GUpmLMkrYBAC4g zj~to+@N`I`j~qlM7HysYd5O})aF3*$K!dAPP11VA(lb&7FDxZ@=E7>DLKV&eLo+4U zfj*?bmD2B1m|2)G6o&DqY`cq;nZgz25tHJ<@85pg7OtoWTh;t|OBee46!d|j|MOQj z*q`I_%c71tO(rpLeBEsE7V+_k|B@@;dzX*{YWcG(lnccR7I%wpO{<7RDyEU@?v5@V zU4n+hpUtg^Mk~h1y<_2%k)VKzZgMh|a6!5^4iUsFd)pU>U0DTAoajS*OJvE-Y0_24FT8O2EjOhrkz`{OhC}~%u3o^RKZ3w2yn%fq)UE0RC zbvMcZt<>ln1ea~VLT<3!gSrbQEwAm`t0$}Ugj)dO%G^d`Y_v6UjY3UBdAp?{Gc2G0 z62+%Z(lQ-z)O@teywsy%EnK&{Lq~^!sSY1>qe2Ft2U>m}XG=n?B!86>;jzm4)3!?h zt{X^(%wX|5a_Ei82?3g!I%CQl$&Aj`BlH@ouV~53*Jmr{Z&~c0LoCIyiUy6E*Ob!Y zTsoaD<{Iztt&nPV)%-$D?s@yi4IX8>PhM6L?(V&1*TRCaf?u3h`(tr?YeS@5YbiXR z=QdRR38W64>S2>B{8u?G=B0invEieY-9Hnr{tL~)k$8>AaH=F;p#X zfKcFcmQ_az;=TG2J*OX55f!fqEA8%Z2@-#g#7`bP0o(*+jfo@ZwUURrj_)3YJ$2ge zJDm+rL4F#oXUK_H4w+YhyL{Y{nWY!4pDaq zKXKmI`skrQ2+2U17-i%lTtVd^i$mmA&hd%CV6I}JYWg0ys|8| zNgH-A$qjitA&wj0v3|YPR^A{!F}CuKXn8C)y89V_RsY`WJ<%Qgq^qC&+7pd>JdaoU zx6ZtL{f4rJigxj>Yj=N$HClp|lX8C-Co(_^&XFsXg|dKMU`4PCO`i5rcev0GLU3-5 zJl7jW>L)G2fG;XMwHi}9=MLv;{nVzQ*t~lI&?tZpw0=0&;B#mz-C-=rJ4baVj!16C z*;WK}juW~F*t5}qJ{#;>b<~N=l~bDm*W8$x|6*i{in{RHxl25C#sZrETS(H?98r*K zvQdja|B6J3$I;!BBA&K~4W%x?<^AM!u8O7rPy9-(DY~#f!C$N>V|5%J5e4pUZ~%}8 zk#HC*h!X!Z%(C%h8kR!l6ih|vm0@zLIjz&Eb(gSShv z&dEwuP_Ot;;WubpToi60clXq#w1!(1#==FWv_+^zMfh{)jvP#V_&T3cPtulNKt8?T z4sz2Si&@>Ni^QwyHt6RJ(;dHA6qH(J7IwVEB{)I70X%;pc*|eN=}7>WfS!*x=tY4{iQH8`nO42qO6-G{?A*r6&aZx`y~#ePA9II_#2V)s^wvGG5RIv_4tC*|L2ucq!6FJOrC2T zdxT%VMr>OnZoBdQ^PKg3#(3=R^enQCd)I&9w)TGUi2?CzYpENR)*Jr2p^0dl;{Ow` z>Ru=A{BJbh{=0i%RW^Bw$P0R!9qZ_-UI^^vTX{1)yqSqWO`KTc#8w-qU0lmAC?VY? zBu$1a6^F^OHTxkCZIWSu56K2TEKOs=+0$$_HQyuvk8)_Q2t( zDL1AkbtsLG9bp<=;;DS_e$tzBVVu_?PmPmir21Q$@k6rp%o#nNDGwDh%CngMmS+6$ z^D}02xu(XghtxZwRA5GMQ|KvS`l1$RXOFx@=9dK%g}}0c`DR0PrXWM*|3FTOO&gG> z`IOZj$oWH{=VPw}mN+>)QFr_VVoJbJsJTroX(@e1m5tMWroWVwbX2@knSd8@r}#ZY zH9QmW;~fj;)Q$*kQ^MgAWBzQ#>;{AO#lPLjR|NDIjT-!sB13EAcF|;?J}@UGDF$oP zmT=FbSJ{$i>GYpt{Uw$R#VA5aYvLzKYa+iD)~t46EvtY&Hp^Bg(!BN>vq7WE6UyLq-2Dt z6m+bpjZ!bL`LUW*Q{V?%S9&NImY-@P4Mpidor%+@1?x+D;3-zc-0k8AU4wkih6pWD z7g?4jkuy|fSCzRVYpX9w&zgH;b6>17_+F^~>-uiEArf07ms}-&p`k^sRr@!e$=H}X zu8X<*a?>s+>4YoG?XHTIC`@%!DzGRQSUqv9Rei6OjLY7Vap|&{;P81JhHSxQw-)EA z1r@ku#NlYn(I(8rVS83~*q)}gmm?#dQ-$kd!AdXo+2Nyy(98v#+LH)>u?0&8!KnXt z`jS(L_LNG+i~y9QhPI<(zjZw)v3KXG+3c2Cik#3Bb7GNj33BeP44zWFGdF3>eA#$#*<>wMw;=1-y~H!H;}WXTx|>ghTJSQTPmoypuoDjnuYGlEyfW~7-o zRaN>zIwSDfT=@fB5Y;cUW%Cn_Kg%FTG~@xz&o!JTFH_%MtLf5kzsewSm}v<^e!C)( zp53l6hr?qEk>wNU~A+zww<|=QO>5)OGQKGVr@c`-wLuma> zlirTJZ@kx0H)Tqkc!yRcN=k2vdQeUP&IC8tU)$4`YcytQW_5%wRs3_|nr$6L*5abP zVt-GF!mww&M|mPwyHEBg5c+I|A!RdFXOnEr)HNMFG0ffwXH&WYDJ-i(A{nOl)v@=| zsb?u{p_aQAt=ZODD7_cnCpJ04Ka2<{dbK1nHA-3fd_%rYTM7;Uh4vv85cx#n5WNhF zBrt;$xK9#KfB=APK-Y|a_>!IN@ocrmG*Dift68)8!)p{LN0!dMu2+1%PZ0kh-0r(7 zSnhk>e--Dy>XWN)rKeV^L-;0k0uXeW6LkR3lidx5WD9wZ`vUAb|CVa9B|yeIws!39 z*xzxWLxDhTKv%5`$muUV)jfgU>fXRe^+;e#^_IYa>H~pv>iWut&pnssQ#OGiBxk)p zngRA>ewhwYVazXUBj4cls>uh`_cM;_ZY()igz^Kxhk@Vq%-k}QxQj467p^cUm^b~$CWh6rC48sufsW+UZmCV7gipBrO}qKFQChp9}m2;t2UjIV9Y zR-GQ7%Fs#HHJv)CajcPaQUz{9>ZG>eyi9K{W+YmSluqhJ7)ehmdZG|ulI&#JDc7+f zkmpODRq6E8dWO=RySTSfbJA1YHlv=AU8m-xJWFZLU1WZ8&cXmjhMUfwQ{|YN^J*qh z7+=)YN%^9!vzbhhxTWl~vRdbKUer3@nBiS;}mT z>Bqzst0Kb=K2D(tmON56r6Lc2R;av5X2#%2s-p3Sl;(F9s*ZF&_NS5^mxz6iUXz|@v#B%Xn*2yoi*r76xQ%F)2{c~GlLmcW0oQAxPCmnFfXHoBh&t||I)i6 zwkk_yS;y|5e8}BkIp4j)?;Y?TOv^)Ii zX??@#>3#?OtpDg+;ag{?b2ycT)fu)2?(@(mvc zBt?0u*s}DC#>uBLN^AaIEgS=bI@rEuY(Yc?LMgP6ZgjTUDdGXN!%3^t&~0pB6{Ki55Zk)yj^@O|6|G%ggon~Q|5)o?Ut5$X{$^2? zCC@30pT4K}g00yIcK?WMjHD-?UNn=84w4yzc2?XEd!*Zc)Afj)HErZ1(C) zXOi_ZNi!(Qo}T`X`?>z%7rMyaE^=iT+1y3C!qZj{FI%{pc8A*E#8)@b_E7tqUTpfL z=}WYU>R7#O*~)WP>}~yc0a-9QcW=f=j*xnNd{q$yIC$L|@X-29T?Tw3c%h*=FQ-bS0LN=A~r&D49Nwbk8C8=8$zcm*#Lk$s*5XlJ%oxbd)rY4vcbRv(avv z@Uv%;)vKSIN4VSPJv@)wIge~Y3GjL6%;V;@&!^6Hc20i#{EaJCU%HH}Uq(ijk!6%s z*q_<4ENe0O>*C49+~WSQxgf6EqPj-4PbF9BR@Ya`&Rt#IzqNli%C)?RaxFuvH*UP> z!cBW;jqhD|&fZ0W>&>!{%eb;&G&iBiY|l0B4ZjFNBHryOP)(yRrja!I&S{7(r)BKr zr_DjfNQjk#?&0I^VZ<2Sx|7&8kg~^5o!(R+prV`Y@G-<6QSgyca==*73XlbjRIy^E2y> zhT`(sV}o%|&4uN~zF!5>t1?_lR0XRjsz=5K*WOdxH+^Ek|Lx9u6kMyItP5PL`Lbsd zo1dIRo|#D&w~`sHq@|Ut5XfACbO_`}b)+sYL)TuRAjsQYmTx~X^#AI)1e@I>(+8Wx8UtSC;LUZRX80n06#{2iq8r~b5)w8$7 zQM|WDzXhQtP4yh46)iAKq5wc_r=~ z`yTO*{w8Nh?!b;6w+}0LWxPfG-HHG3HuACyaiBjTDkX$!+*|sZG^K$Z>Eynct;F z%&YUJqMcVy-mc69bJr;=Cp3!@qr~Sh3Uy0my}I7s-jUv9<@uKSs816k_?e$_a72J6BktJ?~D%DE<8b8#QS;A?ZX3g=U+JS`NTzS=Q-2ca5`WX>MmMifvUBt$ zcjQFW-6H1-tQj`8bCLAnE367!+a9~lA+e!sH z2RF=0O8}dl45LD@7cZuy8nrEXU|5p-5APqv!Ij4^Rdi(L=%eobEQ1m4cIVaHCVuhH zVl*>DD0*3k0dZiJvN*?IRp5^7A13RD*_u4GnBOnHzfzpF5&;rdWO&2iO7g%;Qt0q{Hv7mW#CZ?-=UAXPHzR0Yk!2A-@GmPXbvtL?^~;2zLE25o zct+;5l4ee0)ff___!}Mr3Bu#%$%hmdv&Xe;6w4Osg5ptNS7QLH&h}h{L3yAUy!r&s22Zg zI>Fq7O@#M7%EsL>rBgEj!a}DuyIIvDrc)uL)`+X*ZHiYx&j};?P}?6O z_E0d?65@xf#E~D$Z_Nh{D#I7i35G~jZ}A9f+c;f9p(P@V77KQ}C(xkfv{6qumtv0; z*Q3%Nz#cqeqzcklJnam?g7HKL{0P7iZaZ~$Pb2D*%bUukVy^)70EGpWdV$Ny+a~^c z<9y_y$j_ZuR@~UPZ|m@q%6sR{cqP(!!IsWVYjQav-!Y?$ygBjT6_(OSUBMGe8^!ot z+>W~*I(Juh??ubDl;3p46I4`Xj0-fx-iBVGDDd|lCo@6&$MiWcrSMaajduazzD0Fq@=cUb?hvb}CQKG%J zwr6#Iodso&_@~RoP2%hO^BZFpLrZpf-OJtUzx)&b?|A#bPwyw?({4;qm|M0& zT!_eD2D0rICTi!}$WoY+$d1h*O&KJRK^z&RNCS!%$tw}E7r55AIF~HD-ltvUsLLwL z5en+ULbc!u$Ea4qmArfEx%YIpEgjS3y7c1`_Y5FL|?jMdhG?} zbC%hDBS7sH?@G(WD2evePux!l;Ov|MHE* z$7iRf<86Gy4g!#OyD zXc7!Ntlr6q3A+C!ASmU!E2u%kHbIJoLRXJUM5eK!-%s;Uk`T6ZZqTtZ>Yk}>Q1y;4 zofm*vm>zZ~=_m6v{QW=OA9u@vA;(X8!t=Shbw!sKy?@ySKX=ypyx^NuMk1B?v5c%* z2HJ@`e2HrHC%fi9U0&at(LXT>v$cNm1NmN9_ZjFsV?n;PMlhde<}7AXOfi!IZHG%w zGj{6tGph>E=vuZnN(9J}%^l226EZ+T5G{_>esy=jKZJIN`r^wz?FlSGcqtKx^g z-$G2s$Q)vQZ{m}eCdnty?R*s7j$h-m0ow*^zLQn1YOy5w}Kb>p^`g7OPDXAbUZLgLSPfiR9@c z8H>z$M3$$^Gw1PnUbn{4r6t<3vO>y+^g5J?XF8AZe*a#rDe00XdufN{ju;(|^E)Ohadca5}g_<%|pY#n{-s zf5U}r_(wfuF!_ERbS@%xYrMSSJBbO|09)^M#Z2s-n-a@gN|NHnt|cZd=~5AwiVSPX zkcv<*h+C&1=P1Zrw7rleSudX;Ebx4ZMpLqAbH>gLZczpq0DPaN@6qqmKdS$$UZH

u5BG%HyQt+$KZXw5|8{md6sacHc^B9((Mg3+rpki};m! zZz}Ez7507dfcP76Gxkiw#wT}NwVW`qky zNJD@OJIE3TQDq3S`jC)QXITw=$>R`;^70^qT`_dh0y!{CE@%+fhpmOO8C1bS(U3gv z#PLHEN2Ee#N+=U|vhW^+2=x@FByd1aOBB$IJtk+&XG&|j7SdyW_YbA;JsW2U?OcL2 ztlYV5;mGp*0(*Gck{Q#f$iC;_h~J&0w8PZYF-V@J9@8KDjOpolLyn@-ypqcQ z^&ekeHt_Secg<+wjm#rApSt()M|S^?3~pPsNBs5p z{G_ISQtkx)up*J?aEIJn%t_o%GG--9fOe;or7ZvR=|n|lM`Jp%rw7wHkGf9HrKw47 zu^`h`r3v;*qmZAu$fB*}l>*g55D@=3#S%TSGgu}!6Q~qapkGX5JLsjHxdr}ZyGYl} zKk2jUZXaJUI)`cKRX=t|n1;^wi>F4fxO~rZOE%reuW;0kK6~H##~Ujog&c8Hg`9zE zd|I`ubLl@{fB$dQFFh*#_4tpMMrQHmKjB>=M3N@ULyRl1yy8(|F#r2>+B{>JyFrvfe>|~a- z30dl&&bi<_@$1$7Cfc7h*Bm)O6dZcEMtJU^_{kgM=f8sY&`3xlg%cXZ$;J<6-okBi zZPnul4Bk&Qfmyst9+%g^^FN%pLQ_f7Y$QLMfF3_sL*}^&s!q={kxEm&i908q@Iz@- z&~eZh=NQOp8|kzWTg7w(X{jWYWf}vl^_5fz1{R~n!AQY)0avgXH$B_$P>z<7zA_?| zk(x4MDe;hh`N{a6dudSn28;!nv|2dNV&#pkk$n(t9K7# zyOzHBw)pK!F>x=Mf!#ZJAKk5y$#)fxz;5x&wkHNIs34n)$%-O!c_CR>NCpcoE8tLB zVF^c;5i(drJmBmqmG(v8NR{j^*+E7jUSd6?4%d`gQB zD|nEeNYvP%AfKDYD2`GDi+MwmoJ|?N%!Z@v3<_M)8kkr$31?x))W=+ZJdur5X#;eZ zwEq;3h@Fe34Ve1w5&yA7s7K+O(lWlTG_>cZF;6T@b>DTdviv&NW`5!K>#GAp_x}AZ z)Q*02G$+rhNqcG2!6lDyH&iy)Oq@QPuv{$^dwsbZ1GH*Cp{UsE^x3Y1B=NvI+x^k z%dY-ilIN2dq&y#IRPwr~stX>WK04KX)aU=bgbk=|zy_QpQygn)&eOhp%lk=efM$GE z*{7-xvpdXu{!2utjuw=w4_GWoK9rOvd>h^w2su&7{%vnt>=~E%C*>Gp zD=$ricyLBJQp6D@%H(IovN*IT3pWV%LRjCg6$(IVd+>g--p>O017BE2md9+mu&%YTg6m-8QgU-HN`1+cV;A1=R$1uW3)||&yN8ZtOAO`QJpLK+$y!h7-4rp|Ra@(7 z5kG5N$!FYiE6G4P;E(_CmH4|VYrHn`*iCnl6}`W`o-&ndE2P?T*ASlMZ6e%dm9>~_`Vl8w*B#gn-2tVSN?$&nhiqPtj)Xv&lG5MuUV`Mt4Xmhy&uf|X?z)D>SNB5`{n z>--?$FYuE(KjFqa#7+YX{V4Qcv{Or_xs>=ziM^DD9Xj$!Z9a*mla)#`q$FKRVz-c3 z8p%&1Ick|JUJSR&*Ps(n^VUmi-ljP%;VNx|JS`lHgy3Wyr4(_ga=|btSU9GDo8LXg za!aN_J4to8sXYWpgApI83SdUhnT2j8!y$#jGo2t2gADM&a3g5O(c=Y0m2pc+fuZk- zJ9g{#lIjd?MYwnIqgP#}?i<*=bY*CHcTq*1V^aLno7Y_V`bT7Nq~027Go{IYT~%7v z)s&I;z}`D@{d}FP%UF&AI5e5Gn|j*5-R?J*^o;JrIJ5+O7*Pb@8}HDC+kgkJDZ1^$C~-+LZ?tKq-Qrr zWc@x{K_pM8n$ZgrrQaF0XlHbW8`|TEJRw3IT%e}Z$z?{%u~VmxFhU7ZRVdFbwaixL ztHE5)rtEtxIhGZsOVS3#no>(1Mom&9oBUX5h)Gu9E?Geke}NWyX4SKgUHet_z=BIIq+lO|z9+#7chI zdE%dc))Z1Zyu;!)o~~N;qnnz<8XlC1eNSmEltoymA~F z!xQM|DS5y@Tu@s>{giKJwFLLQq~@MAxFIgioVC)nQ@T&we$7(0CDv1i0mg7Y{z)He@te+Tq5m zA&-B$VJThH^M88%4Z!%6+i$;XZ$EXZ25!6i_6xR>XSdRuBNy}VS{=ECJ`jU?e&YM5 zI}++=#49-t!UZ`b?<;+ZFTj_Zl?W{DCN15_wj+j4p(4>PRFp2t3zwoMOahpLHlhm4 zdWy7i?R3MU&a7~Ed$=MTW`Ld~hp8Yw1?wg$iQy5U0RY7C>GbKTqmO;X&iL7)7;8!Q zBJJ%)6I-!(Q}P&v?j(V%tdbX}4^-5V0y$scyKj8)3~y#;PH}B{LYoPxT;uxaqQ1gn zul3^5hN+a1n7i}VJ=5Fx%sXBqkCVTN-@Pyx@MtuT{{2wng#lOHD?4qwY|S-I5zkqo z*_<=IqST7k*XasVt%sEez4*Cvs4Td1@=N(In0)?1lFza)lMLWuS{)?RXtpJFWAWsN z^4C=VjhvGIW+Okucd3GEaUDk1)fKY}s<;oE#Xl=nAQia>oqK`fSS$^#k&Z>GzJ`de zcN!N#TDzqP!IGnO*sxU8QfZqVy$}Ggbl_P%0jw!qLi{tTj4ALByE2F;r|4k8KoBlF zMG7HR_1QWVjgsb4=$r-s>5f&b$gyRq7M4cq3O!$wv^v*Hu54~^m0_A;X<8K*;*NVC-GM-qMH#GJAQtZp(Q4_S$bJWl=I$*<&Nim#9l z8bQBBC(O!D_mG=&M@q7=ZZU&k6@m!d*##XEn(WrO1zZruBt6-Xl1wYHLp_Wl8aU5C zJk0Fa(yL}sVRoJYWBnT$C?C7;x(OUvhrzHi(_qZVThc|m-QRn{VNct{VMWGl8}aXa z@Rg;#zYMMA3$_bX>V30u1wEk!H@y1D60&>ox}va}_6b$r`zwClx#G#EngVKP)qL?1 zp6;q2G7plKayccn04kzep{%!F zaB+HduBHnm?63+a4#wl36R=88P)r9V(y`AeU4`O$sU5-&9U|e%;FJf#h+aS`a2#zE z1ZDez?J=I#Y2rhYHHG_XqA%qJ^oqALl~H%ADI@LfiKTbTnX94N{+nEo0+yQt%~|;t zcT|}U%F78wfp}g0-NYA}Idu1dX|+#g^rJdzRzsFM(qx})UZeiHkjkp6r>YeBs=-Y1 zDp&5jv1~EN^CTM~U~zc)17dBqfxFJml@fX3vQNZ6iElhjluG3q@*}L{S&R+rkdnzS zl}{=;XoqJL8%KLdQ}2vkZn}HEn`MSM7Qd22c8nG4R zM6x5!*;yT3&bdym4k?EP(dL1HfyD#7e}HfUS|I_CTNd3N<)YD9vz^X@aI|S)KpSpq zsyApYz!PV6a`jvdq$CY+vNZHhnGf?0{UI@chmW8E8w@1fJBaVNaf^;a^{@!&krQ;! zGAt>HGQwc3rqz5UH7==dYZ;9OF;Oa$bQ6`K)MR3ElpSq*h2cSPJZVt>pt*wFBqF2^?g)JxOD6R+ToHBG)NU#R%KtU-45lOy${ zxsG@!5Z;&BG3F%mtOOX{ST-5XCVlDT{NNQq?)O@#sU?`^7u%d7k`Kw1-;?OD%LrQ^9vnI>SIgS-20o0cVPXtO&(F419-AoHs`6m#xK@ZpoGrB$ZMwE4SKzAYjztFaH!Mtd%7=CFP0(mO zcIX00j>43b{!3erWir*%fE=y&#`a^J=%Hw!j#7pZ-H%uZq>M`vMR87=Jd0u#;Acg* z{3v+S6TT%5uUp`VRZA31hA2Rg%=`yg6zG^~(e*A-JeUx_PjreOb}kUNjZitUkX*X3 zm1!w-m+Dq zop=b+k>R(}x>=HL7W$x@`}!&+7mG;x9umYSTau_G5q$AiSC^rhRj~m=!0!n=q?&o3N~I{+;RktSc;cc%wC)G}k1|h^y*U+f zLHUm#ob{=*Y?f@ysdFs<1wF^!eFrZpPaR|X&YO_&s*$qowjY@ZCA8qZB`3hje>8GK5wOEZ&BPXB;k%^Ug0o7k z9TmqTs+kl|aYC)b)RB}l1iq&T1M=6r0{_OXd&LVpk@mj6a~kG6TwAsB5?fY7g%`O+ zE6O@OwiVsCI9f{^T=j~pDhDr6i6(KMxHsbI%Ff6zkKOd~uGRZrYA!0MsP|U%-x1xk zV)o8w$hy{Rnq&0LC2PcE4Z+;P;~#R6HjD2o5zLe|0x>I+37T@jOgpn#BY90eT(UKs znN};5$J4RPP-QD+3IkAm2PTbzS}#=CI8|j%n$cI)!uM1(xgh*!dnc~n zOU36qe|Ma_jYNYl1P!hFiqNaUUk2a1x}YF`Piz)3&!QIaj4Q6d)r`W@dKGuCQ`VKJ zY!YgPHfy9(Fqg_dHt8<(ibQuK4Kt8$L94Q%45(b!J9B znL#@HGmZMfe%#d@eg>J=uT4J6LSNWf%d%B%=@qdV+|UAY(a7?V7bkux)|+${54!ho zGxyB52OG*;#Xq)=i}CTUCcfg4v!9-L`8~ZG;s9$SzOOnTYcq_R;!#QinH6cXMC_2L z#f_0@#M>8X6XF9s16+Jy!N8UQUN)c`;06{<=R%wn&Ywr%jcIh-$B$s+(}j{mD@x8C zr#pc$Le4q>4z_Ce{=k@YA9FDnpXeQBW32>4m3cSyyDA?JHk*O*fjs@8bVM? zmJBms;3mV0{x`0n;{N-tov0aDU}vtOHl54Aeg(M8Vb3(;n>J5B=p??K4^huBJkA$f z(n3~~SH8Z0d4|Q;9(-)|i|@`R98V!1<&Im#&zNiYq>yqAAtm=t9#_{X{w#9wysnz-L^VyWC2KHi3A(fzgmQs$;yG{`)wS9zAf&a`SZ>Y& zsc8sbQ@#(a8Dz*hr8Hh<-vb2zK#C`hQVTX!@CY_40!HlCQn(2w2u=(BCw(dA@ihM!Kd3xeC2WdqT8;$oyT#FmkW8N3jUQ%JKIh1^2*Y+ld?Zi zU%zkiW%UzET)QkGTbIbniQ1zr(ZT4FsA5Sysi&BJM3d1z79_#Ew2byBiVef9sS#vN zx!{J|p)WIp;zkV^^ci8hJy?$wGH4rv;YzNQ+V#LXnc)DTaT*_i-*f1c%neQyU7x9r zGC>C{2w+J(#0a_+z(Ou^7ju;J z+{I?OG2JL%;3_h6Y5GNvPrtR{`FDw#bg~9C-+c4nZP)Dh)z^3Inrb@pI4MSSC^I)0 zoF=|LTv$>=s#`xGCFHj`Bl*SEpNW2*L5}`LZ~XCxO=;)~7EFF5-vcstIe0SnCeAU` zAbwO}a2dD-HEU|PSPiMFA!#*aMIo76NL+7Jdyi^r zDx{A}G&JyOu*A%nq7D`P!ue$$KDAyPVL9y%!7MgAHPv)><}Xp-3EE9hOKq`&q0sD9 zt66*@`JNahF3UM_iFljYSy5kb7g_Yk+8fB8`8&A33J!CQ@*R?<=4wXwU3*8cIuy>moKGlsXPimz{M*C*0PfY9gk`^x+b(48c(&Z#BXUxg1 zvC?KqtvWIW-U(uqm827F{fNveWTJ^iwYpb5qUP1(Aj+eeh91o{!X;)76)w|In&?!V zMLe)!0Wi}AJx1Npq{oz8L>Ak?er5Ypf=Cb%*3mucmmn;j@ol8QFsOa%8%-A<9QMbT z-vpu!*f*bz&tJavW7mdr9QwMdwr}6Qrmr>DxMoL3z2d&bmCB`&M>`+c{p;V}`P9LC zNFK@jo`j-WlGQ)+`&=@3+1i`e&zL{H0G!9|lW+6SLq->4CF*5!6QMEmjENNF)kI`* zRisXc3igN$EmFDkhJu1|(EQrRqht;3KT%dE$h8ey%1D`DL<}5#huJ{|b6}X!vvBcJ zh~m_-Lz1Lc(4A6G0){}4ZITqeLyOwcs_AGJBgNKKOvEAO8@q?13e34U0-Mag;gCqIrgP?TxO?GCm=IPb2bHTt94b^2BSmIAhA@H0i5;SKWp)BP5tsq&8FPY$f8(wMt0^^j<15dKOHsvXveQ&S*(wll%|Kk?ctcWwr_wP)>VLZk=wx1kUP9~_&prGVW2R251HqTA9Aic%=3K0et>rF z2G5Nf20l$*$m$hVqMSseOhjRc$RiQ;M4={sl;ocavYJ0?w?oW%Hqex$fM;*G22G~& z(TJTj?!f(Kicy((IvDzk>!y@~y(Z#JnHRS?4#x#*%%P|h44Ud{WHn&Qqfv@|e8A%x z(WcfF@-z4f*1m?-rlx)K4STYcXj90g?C^Nw7<2pA3=2a89zy;=CT#kZ@QC1$F}hS3 zga}40Y9+pZRi=8vAdoFR=Bh7Nhed{q%|)gh&rKPY>FL`)KU(Alrwg1W)Co~w^KR9NQa%SCom+cvs;_KIno?WnGh-_4UQ`e$KN@QY1s!Qa z$x8DAa}Sa|b}%ru!8fBot15_a4D^XiaTkaL9>L{(<%+P}^yKW41y9$_g1$D69OusD z!XZNN)lOG~MmUo6RqcWd5>zWegI}C%d#FJU^ zjs3ynBfGV!4y!G)FuFu02|v3LGan7Wg`*Iu<%o_7D@zml9kgYJ0GkCfZVB zQ$7RMsGGmDYyRjm5B6|Y%0<*%AXkuojKTtL?_;fnJzW7xM6*X$dhSdC@uq6;I-qQ8 zSu!puB}N(|5;s*lVxIlF?FpZzYNFHv86?1k(^@ z3!0}pJwNQU@N_1MFI7dGhO^0xW?;lm0(rt7(1Xu;pY^K`+H=r*rl(7z$?he4z;1>GFcnmR8j+*M z9aI^JoL$d?L+jjRk&4)*(_UsTu2)KOatZ-MKdF&c=*YBwiH_j~%H-)3^Qq;^tyNI)AB;X)F8adD?#1rioqHZDTkRqwH z$`ASZ#f9g9_kB+|QVb^l)jX8Q%i&=juUoZ1g(rfwghD8EccAI?jOjG0r;*7MnS{tw zNDDn_D#}?L0Hcte%qLWh-Ieo%qgJ!ynKPYaPY#YvCnUgMeSHFnW6n_5lPL1e^6i#Q zA^19GinDAe`DF%>&_4F+8+PE}%{uF?B$35Xa_pK+eHckMPankFo)$VWO5`4qn`HL! z2?R$NNr7T{Ik*$g6NLI^Oih~vH(!TGhbE=?2ZzT@ojch+D59h(+(EIW#e9qm=eaIL{H2NP#?=UIr&Z6Zx62 zKmZ&&GpBW0W-udF0-s9MlN{jQtjJ7-CxF$=sL>2eSD3U(@PLk!H5K&GJVwW7i2#D> z!i8hMF)H2!eDjKk93@e?@|hS+p`VZkmrKxGAjo93E#XwM+SHy-j9^0Ngr?m|%NiKS zBA@bSElE{_b?&s5M1tr^r;|H|$#LpjIN3Opn*pbj{DA9AuJ$B{TNgSI6PWcP)XPVa zSdFo}cdob2oAPm<;N0d+!O5clca6Z`8>DJ~XZC_e#tw@dn)riELfBTuiVfC3IAuiK zF0s5gnY-MX%eD*;U0l6!-A*tCynTNDrVVC&UCq4@w@kzBKcD<^&VsjpK67I@_TkP) zRy{kjFz=C-FhUncE^@bVJ>aBsS(d#R%#wwKv8uLXxO=Grlrr7)}(3j*Ym&NWuSH zX1qY@?84nf2Ea!Uv2$K|NISL{xsZ2P?_6c*17Q`wJw-9*FN@kyc+}m@K8v*a*86MPn zXJHW0as~PzA2*di1ZrjpEI*hd0q>kxAPBLC(>xl!lH65DPQo*%c`U|BFl!kDbuuI% zQCNFO!8^lfGq!NlGG(-HyKg`Ydq-i=)SBSTq-b2i_*son^Y}w|US>V4Erosd1SC@kz+omBv(aNQydQme2PJ@ znW}UtP`ZhWm4KSX3F%5{M7%OMlAo>ggLB<*SS9n=Hc^0^Ej^H>C6B0NU>-n0_ zf%8o>u`)VZiE#5nCuTJ2`_3dK)3np{h$PYORTrk^9ot_wL0RU|(J^~m%8(vAC=$|> zyD}5w)W(PMT+pRU_pg&K9o|JwW=~&#B0;fp)%i>7_xSkuJfMnjXz6|VfzMHUWI)j; zzePPwAKXe>yY=~7BXc%w8FF2qF zP%=}>%JRWoE{s}{Aex)fW*G>^l>jDB!Wx6|6*H>{g#e7SOXePQU`+R&@~1YA%Nog& zrMkEi0vI%*Ufw;qkS`YXMrQDx#iF@6VGo6o*%Um9&ljc1sB5>-8AA1jejI+=jz>|r ztg{eBPC#On%*icvQtt3q<7ZWXMJ1v5XQ+3%-Q(Q>0wG)TlNdKb~}=9Pw&UC@R>lj1fnRhkvdq zkBUq7d&S$W%rz?c1>ai7u3-o0N&CoI-s>=q6F4PV@&xcdkenPiUZqh>omW?&&5KIU%hz#FOln$&u33jfb{r}+z zvI7VTmOl?J?{!bH$R}*(vqNdmMx?p8tD~aSFq%FE8R6_`!siKfqp#Fyw>e>Cw1Srg z56D!mX)?h(AEWmOyFc{P@C7?AM!0;2b!e?=mj&7V@e6^@@P2+SK&OV&l;sr*H)yL= zfmy0tRk6K_0B0|C1OP zGXO7kABqJSIihiif!WP5h|drSvH|sf4YkqvV1p*i4t}mMRVMQb?~QS-zL9T{eUw_ z(YW||s3J8=m6J;#_~9ZNKcyxX2nat#!~Mgy6Of3Zv#r$IbyyVS$YSw)#Xr9OC?&s#p%eJHq%rB;*CQKK4{+fb+) zSFWOk4h@``2G>wogO96(Hq)DFil(Pdt5z20@uw&gMKTS{MLu8Y0Q;JlKm~ScnEia% ziegkZ*TCsKsLRRE6~d?hn1~*bYy~r*A~0foT9Q2*255jD77+;2;3VdVJ9~X1qzECo zSik~*Lx|7c0Fv*&;)(MP;)ulMp7A^`56NO3lO5}pdpG+;?Tnr}wID*oQ^u|s8u%l) zU9~NL1K!%YNGe5E2-_wnyy{k;4d)7Lr|}%7)$oTo0dbFT?<2s+_&)cBduJA**rK*6 ztuNuU@=G?51CGrb`Hor#FeiI?@+`kdkRZwaT`4$$3RDr(*EkR--T9Fkb~}^V#e-Wo z30^T|i*y+l-~X`Vz~B)SqSh_zIT@B&;3ts)0+Alc{qD?Iel%D0KtwKbsiXp6#YS*UGbJVB8cnmTJ$mOO(Ko~ZoxbPcQwRv%vlq1oKcc9s`YL2 z#c)?zt!tYr4i|X3s(eZ71)TUm_gCGqyGG)@*Bg5)CBA!MqgE5|n(1nCrCePD#ZI6L zj|&O3D4%RcO=b+u_y$xg*QP>G&t5rZmB2=sZDxv)b(P=-WBFlWLM)^^foxYDnX`C! zWScon9p&O&Z@712rN__Xr%o;T#%)5*;u>9mUsO_f!&wy2TZ_(qcJGP^_Y8n@aNhWS z$7$0YSEj2Y9q5qA;F^Q?6KYU3@*4jmt`_ubS)9JC!lq2rlu8^)=A*sS`{Nys5s*S8iF;l24{_v$|G9{GeM?ta+11jdu8Y(i9Z(DO`gmbf|EkzTH}(OwrJf+^!15*w``ozHf7SnNAy-%<$^1c zh&=Xfj-e5r{QL!UkHE7uJ+7`!o>k@9ur`J|JGg2%?$O>&YYxmVny~3X0=3|g52%M= zmn0B8r)|j6=0~C4aMT!%C`~xR$>At0994TEjTf3OM%iLiEkkV{h$@DI*-mc6O+;NV zIH?h;f;IlJpu%);k!j-HOl~*;P8LdF2Pp=$m>Qulm=ec2iDQB_K43gU+@p=zmxGNY za#d|TvpdIlJz%`6S~*|V)ha8!5NQ`DWP*|ubp4{j!vFYD=Z@~FF(7%JWZbh6HPEvX}MLDHqMP;RNo!~@SW@Khs zDR^BWR|+#{!bT1cw@|}y+g=%Gc9zR@cU0jHwg}^jaY!+e6r*BdPpcFbIJl!}?#S02 ziQG}acujDIvLVJ(6YQ)i~w$|W698Qf|Wq3$;ohr8)PXj0T!8(NfhXS0bK49pi2xRrF4TMn~Wxu&}ZwN zdXN~huqX>;j2}o`On|K6LJb#9e)7YlD4)rW1z|pT@;yz7lQPt@Ot@B0;Gu}~nVuUz zSCSfOe!&4GH?6m0(m)LNm=K|D?>vzn%NNP^&ssGnTIoGKrv}%(+?Dot6t9*}fVH1qB)p$A=xGlwa97*UB911TJ=an|nWKD?TuM1LOy04~st^hhsaCABa!- zK}L=!9XUr4$y~;1%*w2EL0K+H;evu)8eFiRhbHiA`IyQQx#V+v?THhhph!oJNF&h1 zOEM)U2_=#6z1%eZ;z)|G2?GY3HCtf3Pq4Fo=#7iVU~`_JCeb`uWmni40w4iI0r?1c z8I&CBQJdP95-!-E56UhEsAABlzR&-Ln+lfTg`Co?IQxctl_XZ<0ZvX-vfKu>Mv|!^D`9a+xYAEt zl&eW~Qzq~|lr%qIW5;q^#LR~*9mHUY*tlE-GzEsjwn7561WdH?TwK=m-B`{mo|sHB zA`2m%L{G(_q8*R~0K6x&fbzdt)%RNP!eE{U&meXZ2=VaKlRQFGwzUd9-{@RpP z!Lju+P1)X*$;S>h#-us9`{cLp2j1-6u5d4I68$L#7)=Hn-D}(+uujf|Gh7Mw4QVQ; zu!dNTQ!ueeRyPDXA*Tclhg@kBtmHT&0jxO6FtrA}3kC4gz{@@W3hoJGkHNvB3W^fO z3LXs02%!E3R>^ROA>%(0zyjMrg9c|Vf&YMG zSVUjK7<7<{$vQ!>X@3DY7H>?Whu}sD9!vi$w}`_0Wv8zlKLH4yJBwwb*NA$#{`neF zfk#4|ccijTW+E4fz9jN%^NmtY*@4iBKiwo+{_yBcq6_liCQ*B-Zy%7mS!;mYrAHNb zi@A@vF$7N?JxSzZ_jEQ(@0Nc>?h|Epff$PC2; zY(HkFgMvOm=@}q$1`N$S3n*%t#Gqsug4+z^Et8nhmjJ&5Q!_*Xo&lM~gqgBQp$Y#+ z-@?r!8We{%Jp2o2>V?yh&xv_#(1gm^`wc~`cut*m@W`&P2;?q>uGJ!1 zTj`ac^sn@&^%SPb(3P*zTLeGW|qyde}x zX+nwd&{>#t1i|0|M)Vd%C367M)rIXPSvgrn3OoH^-9G z9#gH~dNBc^ zs~*%Ifw(ld>Ft_BD3cjKF| znt;VVToekvX9Z{AzC|bS?A*rb<-C;D?+a5mwVuND2;Z(pE9%j#dX!k7Q;#KTshU<( zj%q~RRiia(v_Oq|)u=-aXKB=hYTTj$$EB*+8KC=aS8-;Jhl689YE6YET~*X)QrdSZ zxl*uTnpsvqy&gN&qiJB>Q(v#HmW#)U`}7!mGB7(&V6IO#o`7(8!6F6w=|m&TYUGJ8 z_ha7>S8p7PH=$`W;503em>FX%Vi=wYRwW8VJpyZn4cH#!n4B642@;V%SFPt-m8a!XyS;pxX(n{rbgU0m8bT@mP8*U(?F zY->uqpSQQ)?}zvjNu9E2&60u*E2jPV;>X5yi>ntthq2}6N4z>dxnjo~sj+hWuSZOS zvklw#%;*{D{=F95N+Kaw>K|Pz0PYRrK)*;({7@UoMUk{wm%seD9^r2XlQt~P`^Ot1 zR}cU8b??hNqm=nxwi_aUzg(1_d+vCW8m>$=08;c(_MqReT!R8%i$v)1>9piTgw$|4yc8Ca_A&hh73EkVb##r z=(}M;a?wmqKh(31BZhi7d?976hvfp`tH?Z$Dqxy)lEV`(1;)~x*J9%6Uqfj zaE5*X7JC5VGPkla+Vcn^dI66{90^%v214zW7Oo5~Z|xfw6PlNon~|$dE{JGI^~#Fe zwb)OVN>^-hmV}3A~kkUBXPM}?<^<4GZ{ zAsA3RUxX&#D+JW5be$plSCSx{|QTNo|`Z^%JL z4^-=cWF9IH+!TjA;%F}~e_EGSuTj>w=uwF*?MK#>Zy0y`>1BATP( z)8L36wisLVRe7D}?Cd<1dE&&Xy1J4gvsP7ACGvv3b{7{eH!vzWIV#EwBoFq~=F>`|s@8L_#-}$u0!vfZoCOJ9)K+nK?noB{LhycS1;QG69KT zWZ6W5nhX<1aths~exWsy0?(*%K?|@V$U7!8DbSuS%kc>=5`?A{En<9@BMds^IY^%(PQ8mfZXt;LP%|CNRlxIM= zYQ{sRwh$HY(_dl_-ckGpP%h^K93Ieea6NMt4x34i!z>O;3gR98O$Oqc#~!$ld+yLG zD%LKap@yI{hD#E_aRksduHA zbBHtVwW0Ps_>Dbx=kUPCF|-59j*gmxsH12+%&jtq^cv z%@Q<%c<4s>Ze?j&Y+|EYRWR8v>(MD4_dGnSWI7KHC#j>>H@8IRO!Johez<>e`K%`W z$~Zzx77opav+IX|mVl2MxS4Me^8MvKh>skaPdxwKNuWK z7=aCi!V<=iI@1!SIBuNrmN0ir8XnxRQEQ3k!}`>02@BxPF*{3G2%OpsOIXbD0%Kve zUVHEiVGTQ=BDiCljdz4IK=WY408fE>+M}PCFb~3HFP_BnNj&yo!gfr2FcTIqVFeQw zLZ6!OI7=9DeDD*NFy=VoBbG45k>PWeFn3HE9>)u_^$G!!9^gce)GOqGMxnEeq4)|dnZ3#Pasw`Wriwqfy(bYwhkfgA4S&zP>of$hIM_(bN&&-ETIvbZX75{qfBvV|Q2l zWK)l{L)$Oy>C#ENTlHO15-rtsNzJ;>4t;mGu1VU^4_|cB-0Gri_}a<5m^)2PJ&oN` zy;0iNs&8x^lNZW>#u$24}GCkDNt?M9T(W!@8n@oL1 zgGoEKQfRZ5ZK3yy^>mpX@cKQP7}3(+D9FxUWLDd)JxQE&Q6XLXc7(o zk|9*g(Q_Ihor%*0f6b6r3jVi9ZD!_I3o&{K89~yO!U<#p{FB00J*S1!3g5bzHyu26 z5ZepCO^}k5(7}`}1zRQ38j`LU!WEFBh0_D2kkSv z)i=_JBbatggtSJ0f)0MI{Wn6Gv``28j8cegg*2oO?5`F= z&G4P%A*E~K8(R~B6q}xWF+glL{3Ea-b+j<~2(&vO)Hnu8WNcgDZ-7Zh+E3tJWvjQ5 zsiOye3H%!Xf~2LS{1(X3z=X!Osg+4Dg;6B6vEw3To}COV$mp7F;~?eqK`Eq{Qpm@? zH9^@V2Z4f~=?8%!!4Xobj>%8zk7Mwl8{$$xixUqek$-WP@gIv>ah4v(LrwjV-UMy$ zg!0W$LOJZiX*x57@cQjw~sk)I%_dgjftFnDgg;lkWxw0x~Es5>n`(j}5k({;pM| z?SCx!KM$kP(nVY+Co@`ad;bXD2-O-(@pVAcMrk_fUlTWgE9Vx1wm2Pr)sR}t%+w~x zYXZ#dgnvB{Cb>WZL;f4S4flQj&40KM!F@J}i@>D}7&Hiw5G$%H zP&qgws6bro$#*@Pil(9INQ)X!BWglA)C{h5Tj9Wc8)`=e@M>cO zZ)0XO19hS<)Qx&jFX}@xQ9l|$v(Rib2hBzIfCv8hXb{~CUM?4cq_7w*K}*pxbRW7O zEk`TRO7sAF5Iuxeq19*&T8q}9htYbp0X>2qMH|s$XcO9uwxF$O8`_Q@M^B&~=t;B_ zJ%x6m-RNob4BCVCqJ8LD@UQnAI)I)BecOxZARHGwgkDC6(JSaxbOaqmuc6n`G4uvH zj!vLA(Mfa)orXKW&!ThaEp#4TKyRaW&_#3!y^H>Z-b0ts`{)C71zkng&~@}7`UriD zK0%+N&(IC@Ir;*9iM~Q#qnqd(bPIipZlgQsJM=yJ0sRQ3;Xk8a(68t>bQk@OhTt~s z5!fmNH6r*z;ewKnkL|Dk3$X}`u|0Ocj@SuHurqeSuHcoz9eZF;>;*R!`Cwn{2aZPq z;NY|r2jO6F#t@3bVD~oy%iu1fC>#x*Bx7+Ljt7@Xa;(4!7`DW~X@e4c_Nj3SPQ_{9 z04xJ%;w+qv$6*c5!MS)m&cpe*08hY$xCj^H5?qSQa5=8PmADGD!xM20o`fgkT3m;x z;Ceh2Ps7u(7B}EV+=O+w8Mok8tjBG*9UE{5HewSt;~BUUcj0c_gL`owo{9VM0G@?s z<2fJ;--GAj`FIfDix=R9coANVm*Ay%8NLtSkC)>WcqM)SKZqZ~tH1;H8VuS-{4idR zH{eI`qj)2J3~$1l@fN%lZ^PU1KZSSU-S}zz4BmtH;(hp8ydOV@58&tV z3;0ER5Wj>E;g|7Y{0e>*AHhfQYxs4148MVo;}iHzd=j6+r|}tl7N5g!;q&+cejC4o zFXBu1UHmWn9=?p<#~3H}s+hHv1{@fY|@{1yHh^!wl7Tliai z8{fg-;qUPe_(%K`{u%#*f5pGyyZCoJgop76$p47KV9v{>K+#LtQ36Uxi6}8;PdQMI zloKVPoGBN|m2#upDG$n%@}j`xpYo;rD1Rz|3Z$e|5EV>?P@z;96;4G^GAfdaqN1r7 zDwc|);whSvQwl19N~DsgWJ*b?C^eNrrBZ2BI+a0Xf*oo$HIC9yIaDq+p30;0sRC*O zRY(=_TMYf?R+@dt?c$84?j~I`ugk1$)bVvQ8x7hH!Hgag$Po<&k+BCDe2`ySjQl2( z0VEtdkTQteBGh(3s0(BSF_X9pn0kXwXa-TnXwWrxiu&AT>A20No=$GFzE?+e>1Xn~ zbiFzwPe%kXu2FB)L0JZqQP`yek%@%323=PdPdB4SYp`qS)M=qw=n6<0AZ1`}_kV>V ziW@q$jqSQ_(kEd91evDVTVk31iM3sgdVQn5v$3Z`)MIP{ur!)Fbv%&TdUgL5Dk>zU z>qw1MgSJz|yfHP2n3}rvh9;dbyGgGDAxhuH%LW;(MWAWaHR)l5__^A~o^Bn#giTgz zO(v|ihWJ`Gg_dccSj)D&*`S*#)Q+ZMvhzUZg0dT}W$W0SIyR?nOirkrZ4O`0rqQ!$ zEO22;*W1zG zXQVoM7_UJ)I_|0}N3jB{3af-k8#GvmQ4age< z?p70=tp>`MJ&K0n+|e*Un?V&}uC;0WTox<^OuV>YG$}ayu+EzTHccs;rgSt7zm)w_ z&3>sK^QD^kB4{GR)YYXIjeg>>BhaA*U6PRpgVd`NLNYB(Wn(v&%xXK!q_%JEF}7$s zdpZo-o^HOW1qg6EuTcxx_(cpx@eS;wl8x+QAGPdbfO!DLGPUcBK&`0U?p8|I-O8WL zw3b)ZYU(rsF(<#wj1WWlT|ErIJHI$7dC`+nq=9*Gi=alXfmB<`=3!sOEZ8jK*msY4;a9QAyO{^CnjjUghy21?W392r z8sgWor4BF;ZY^o~0Q~Usv_SR%PjuZ{s;pJd(;CdJT3!=@w4Dy946N%sU_d&wRJXQ= zGPmj-M%P#+=CS>ndgFjqsm(Fi|wxt1KTR*)&j&t>sI$2_>X zB%Ka^#CfB+#Vw;@ZXQX|0zZO0D}uII0^?l_pG zc9t5rwS)pd4O~(7THi$siD6r8p)kyg02;sq+ubpWyNKd4}#vVLVZ%1~BptV$ItBKE$Fu9$jWU3L`36=0ngnP3e3m>OH zRc>!7g>A3pBl99+GBZI22jn!ZNU(;IG_QslN$6t+?nwo(+mwmK4QbtKs8NU+tBXsZKe9hrXsp+s99iMBctZFP*oCDB$# zqOA_g5=2U|)sbv#RkAHdvMooltyRgk97yXpdI^?vq4moYDLrz=!A*XG1$Zd6u zwmHcfN2}Q!FjXyiljR9X3VyyqLBnB!e7Op&+L=d^oOvW9h)iZ+tr@vh(Ad)n3YNxx zJ1r}U3kl_5D1aSEZVI`AW}Zp3^{KGDYuKmU5-(4*ysMaJa&oqPfWdkKfgK0z*+Yyy{CU71SjofB1o-8`8~MWiiogeP zG6xy7-A2d@wgN>}`BIKYMQO1Vd}9!66ZmiJuPvVnb~^t)U%;3gOihp^NyemBoBgCV`vd#+KfQY50(fVF43S8Jv_W&&Rx#$&?nHRLYU+r z|CmyJbKps8fd72c=s{lnl$PRBF^o@k5FfcTgi)kUB7wt%4A0CI+@t zJwMsIU~cuzy^^gjUOT&a(EU0+NF9T}*v(++im@c`Rqr*|msgC}{QN;jzJq)_?Ohx-h_VBhQzxNOQdMaVp0($ABx%Yq2el__qr&llBocUef z6LU>zuddqT@KWm!hSjGISH$khPyg}xOZC%y@uuJ6+XJ@$ylul1K5ycW?kTGH#But~ zEWf!29j;}bc<%b*!_x-Z@yRu3pIOrT%&nIkzW=oN z^5(m(o1bw@-M{$gAvkx)LEGkkK+k`VPUH&!hj~0Za6%`e!|71#JB=23Sxj3@ja}wA zke2np2^ooL3xhlUt_Y2A1vH!uAHm>(HX8=WKaiV3tLWs-iJKLRXiN6SPQxE^$FsOH z7F9Iaagd6^RR1upJuR}ff)dbM)pKr~gX zJT@s|?D)g1pyto#Olbf0t4ZK-UcR({ee~K_2X~`){ff@+T{g*hT@bl#>YJxlxqi;A zaQHSaBA%n#`{~J5B^xdVH@N?tsSGML%jey>Pqlde7hkO748K*qwj}iJoe?Di&%B_` z{yys5=O-^uy?Q8mVa9=t2QGh9GxExFZ_NGiE&IoAuN#hjC$+-YR~7Md<^-6-BlIBt z+%k_HzKp(o@x90;UJ9OY>W1DWe`@i6&&>Gibfi^dr(?~3ayrJ-vFvmV|98`o%wb*U zznzlLmdWz3zSBCez$>S@r+)6S7dJJAkEClJo$aiWgjIK4?upP3l^m2#c}Mi?X5Xl9 zswW0%-wXKQ)0Y$4PkeiIn^L#Jca{C~l>t*`Hz!TwEz2G5ExBGfZ|i*N#%GpH*(&(? zGy2zC!OEg>qI1`e2OfL3`pfy52P(G3JcS0n+xpbf3mm(%V0Ib?uSiGt+;~ z`rK}F&e!wHjgLot_xv)6?3nHJ2H#9#)LK;8nmF?19y+Z?_*bW!j> zO~&r7uGmH`GyObBrZ6(o{(~9FKk}cNfr)>@XQ04{vv{WY{gMhKt^2V5%Q5!uaup=_w#w4_wI;T)#5t- z?x`0a&Zf>hQeMZq@17@3-}{#NhQ@uTUv3Eg`OqnkHQ(5GA8GBo{Pp^V#Yejy_+@GL zK*+9b56@b+@8^|~Gm7JSeDky4zkR?#TJ>(<=5>RO`XS+4%Wn4^5R4O+!3 z19wt1A8-D4?OW!r zGd};pVeXX+v$yrm&>wxYG>=XS+P8I&PeWSt*gUo7c0(LW~P5x!JnviCu#=)?E#$tT9q5SF4qOGI)%W z2he_GPKsUKi>+peV@)CDL3AMbPPuxGey=c@x~17YM9B-AA7r&wD``3K+Dfuq!)mRd z<%$I0nwi)CffoJSr5qnVYQB;BU5T%3)4G{c>94l#Tpl*pMSd$cEok2VM*BcR$h-b&*PPHpU#va$YHag{4Xxqp z&!@z^YJXr-_|fs7i!xMeV|L2aPu?uJciblnoDOX;RBLw+&fYRTwy)^R_0Kh>ZYcAU zgVp|~ou5A#?R6vl;YPRVlX$vK{>qBQKkxWXK)Mb_{fM zm+bL6vsNez;?z7aU9UV;=wg>Pais3<_GXdbiMQuZtoio&)Ttix`?&A_^vW~y)(r1G zd(XQ&d^)G3oqGAUU|TS~pTF?rerccU!s`~g@gzO}aeDq%GJg?w{swyfx_Oei^X6~$ zosWf-&vkpYc*V%+EuH`W$8Yf8;5b7S)_fs8vi$pXUP<4)h(h1%bN+tHbj7B}#HTZO z4=!1GGUZ0lceiU+#T?k2_h!SlzyIq@YHIDy?^u0F3ZB48n^vi<@amQ$#>nquh?zWDC~v? zJ%9PE#o$o>)8RW6Ck}spjQ(9J7cTK%6X{cY$sa#{XWoa@b9F!LyZUC$EnUHhimK)zOD|mZ-LA3S$cP>?Bjz8;H{e<}gmz2e;dN%ENdoxgl*MT|MV_^*1#Oq6s zaQt^UzkdvGX^wcwDkS*-Pmu&V8QAwkxiT?Po=6yYV6qg+R+2FPi9fOouCz0uG6Gjo z4Qv*I6aXTwT*5GMAZ*xG=$bk}e{UsLqJJV*7JmOPln+e3>Az6E5ITsZY(AruO=D^T z=>V7yB8ZeRLV@xzigo;-4^eZh)K-$P}; zHKC>LbxOe6Ze#duff^w#f`{u~W^-a_v~o>bZ&5~=Zy&u9h;d`k+-FE!O~Ta9BG;L zmGJH&YR*sVXQV~%Xny$2_1KT2v5!+?zV62~mpykD`}v1gn9cxeO>G-QQ2>wdzvIKH z{~hGTg)g*-cq$$<7p@I!Z27o8oV@&jG31V8EgFH!|!=7?)^$EPP{NE z&sf@!dr7e4SFP^NIO;c5e)d}jzKgi`oloAFSo!1u?{jBv+}Zr=#OL!@=Y@W@Gw{m5 z#h*L|Tt4{z0pFW~`uz(ZIC%f0Lw;x0yt8I?!VeE#8(H$m)WU)?b$E)@w@Uf@oGI?B zUcchE;- zQO-{EATI$(nJ-JmMB4F>on}-=y0O!a(NO$vAsIwkVric`5$=xy+D9vio>#6;BCmA! ze+%ie@Nv{Xkj8&2N}Zj*R`tx3t=}EJe(n6OHOt>k+ZcG?>-CG`>TmDs{BhUrC2a@Z z-xoYf{N|gF7d|*O*!9a_e+=1p;0I&xGvD6Yo_6Bck;zjsckS;=2!EnszP5i$!w<$K zYt9?5p4jyE_HyT5?Mvomx-DxxmhPyZe?F)AvkxXdmUZg)E4`s{IW*_9cfnJH^QB4t z+rB6jpImZf>${cf4W}AUt#8}#(A1)0=P%;lsjHhhtzuhO?Bjb~RS3*1+iJ-qja*6shgCY;gI{aD}q{tMgJef9aY+%q5E znBj1tk+W)+{NWYi=Ufl(KY#1a^`Kijr)zI1HR-RjEYTo(2q3lMkJ=8s2gpP7XC0NS+>$xYUTu>AKrNHh#Q38f+sxE)KM)k;)hu!L{jQZ>N&CmDWedo2} zr{j0sQ|0i!;`v|NZaCZx^6ATXymjEYHFK9u`A&1}-bZwEmXwvx9(4Qh-mZUbePzli zY(5um@O-(#?eV2YUifs&nJqmVADofydt@SK;(=clgug#E;qJR(15-D=|HR!NzRUL6 zT|NHk{3{QtT;a-|JKxI}2foZ*QRkwgz7&_A-(tUP{o%_;pFA&c4+}c*e9cn73w4W< z9zQko)Z&{vm6?iR@&))3Vr0kaua!&)< zJb@9S=O3W|xA0SVEP)@@iEp0&1?^^AP-RGNN0Fnk91dA#EgE$pC5MYTM>Xdlw~oGv z<&N~&ukLinXhyCa7V#aQ56bRax>9niJX?9;fn6`X{zBrHbmy2N?Bz{#!)DdIzb-=2{i&YJw@dzYRl-0dsMT9MPKKbGz_qv?Vu=(8PPfAyBnV63zK$=7_=-g@wf z6X|QEziqtV@t0MRyCxPKmfbsBeSBT{^EcM{wmY6>sMyqWXa z>&HKN>U78ScXrQ9OXQp_5pBBu(XD~%2|HW)k!pNpt}gV^InVr*ON0(k-dSK4r^=BXVzC4$^VCn~ZAL@GE_2B}?AKpBhp78WNzFm@t<@1kx-4u36 zWp>;B+hxD>b5Ffjx_CqoYFxBYxHGkL{HfD37cB8zUbcGw-Gv@OgIC0rZrz7|XkVAP z>PS?2!Y4-E<0no%SkaSblI^O@&3mtBC)JTR_+`k9oPo5aYqwL^eX(cVxsDkxUi|XD zj)APnG0XLj?*HNP#7p;Y-SKdGa8_;D)wi{=o(s3H-=lh>0T&aNe;ALODvDe=A8 zlP<(QK5}hm?Clb-eaYW_bZW`T>_a0VQ@^|Xb#3Xi{QEY)c(); + mList.items = Source.mSource.GetLanguages(); + + EventDelegate.Add(mList.onChange, OnValueChange); + int idx = mList.items.IndexOf(LocalizationManager.CurrentLanguage); + mList.value = mList.items[idx>=0 ? idx : 0]; + } + + public void OnValueChange () + { + LocalizationManager.CurrentLanguage = UIPopupList.current.value; + } + } +} +#endif \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/NGUI_LanguagePopup.cs.meta b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/NGUI_LanguagePopup.cs.meta new file mode 100644 index 00000000..3df5376a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/NGUI_LanguagePopup.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 36d92fc19cfafc84d8014a1589d64233 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs new file mode 100644 index 00000000..c2cf240c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs @@ -0,0 +1,132 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public class RealTimeTranslation : MonoBehaviour + { + string OriginalText = "This is an example showing how to use the google translator to translate chat messages within the game.\nIt also supports multiline translations.", + TranslatedText = string.Empty; + bool IsTranslating; + + public void OnGUI() + { + GUILayout.Label("Translate:"); + OriginalText = GUILayout.TextArea(OriginalText, GUILayout.Width(Screen.width)); + + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button("English -> Español", GUILayout.Height(100))) StartTranslating("en", "es"); + if (GUILayout.Button("Español -> English", GUILayout.Height(100))) StartTranslating("es", "en"); + GUILayout.EndHorizontal(); + + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + GUILayout.TextArea("Multiple Translation with 1 call:\n'This is an example' -> en,zh\n'Hola' -> en"); + if (GUILayout.Button("Multi Translate", GUILayout.ExpandHeight(true))) ExampleMultiTranslations_Async(); + GUILayout.EndHorizontal(); + + + GUILayout.TextArea(TranslatedText, GUILayout.Width(Screen.width)); + + GUILayout.Space(10); + + + if (IsTranslating) + { + GUILayout.Label("Contacting Google...."); + } + } + + public void StartTranslating(string fromCode, string toCode) + { + IsTranslating = true; + + // fromCode could be "auto" to autodetect the language + GoogleTranslation.Translate(OriginalText, fromCode, toCode, OnTranslationReady); + + // can also use the ForceTranslate version: (it will block the main thread until the translation is returned) + //var translation = GoogleTranslation.ForceTranslate(OriginalText, fromCode, toCode); + //Debug.Log(translation); + } + + void OnTranslationReady(string Translation, string errorMsg) + { + IsTranslating = false; + + if (errorMsg != null) + Debug.LogError(errorMsg); + else + TranslatedText = Translation; + } + + public void ExampleMultiTranslations_Blocking() + { + // This shows how to ask for many translations + var dict = new Dictionary(); + GoogleTranslation.AddQuery("This is an example", "en", "es", dict); + GoogleTranslation.AddQuery("This is an example", "auto", "zh", dict); + GoogleTranslation.AddQuery("Hola", "es", "en", dict); + + if (!GoogleTranslation.ForceTranslate(dict)) + return; + + Debug.Log(GoogleTranslation.GetQueryResult("This is an example", "en", dict)); + Debug.Log(GoogleTranslation.GetQueryResult("This is an example", "zh", dict)); + Debug.Log(GoogleTranslation.GetQueryResult("This is an example", "", dict)); // This returns ANY translation of that text (in this case, the first one 'en') + Debug.Log(dict["Hola"].Results[0]); // example of getting the translation directly from the Results + } + + public void ExampleMultiTranslations_Async() + { + IsTranslating = true; + + // This shows how to ask for many translations + var dict = new Dictionary(); + GoogleTranslation.AddQuery("This is an example", "en", "es", dict); + GoogleTranslation.AddQuery("This is an example", "auto", "zh", dict); + GoogleTranslation.AddQuery("Hola", "es", "en", dict); + + GoogleTranslation.Translate(dict, OnMultitranslationReady); + } + + void OnMultitranslationReady(Dictionary dict, string errorMsg) + { + if (!string.IsNullOrEmpty(errorMsg)) + { + Debug.LogError(errorMsg); + return; + } + + IsTranslating = false; + TranslatedText = ""; + + TranslatedText += GoogleTranslation.GetQueryResult("This is an example", "es", dict) + "\n"; + TranslatedText += GoogleTranslation.GetQueryResult("This is an example", "zh", dict) + "\n"; + TranslatedText += GoogleTranslation.GetQueryResult("This is an example", "", dict) + "\n"; // This returns ANY translation of that text (in this case, the first one 'en') + TranslatedText += dict["Hola"].Results[0]; // example of getting the translation directly from the Results + } + + #region This methods are used in the publisher's Unity Tests + + public bool IsWaitingForTranslation() + { + return IsTranslating; + } + + public string GetTranslatedText() + { + return TranslatedText; + } + + public void SetOriginalText( string text ) + { + OriginalText = text; + } + + #endregion + + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs.meta b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs.meta new file mode 100644 index 00000000..34c932c7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RealTimeTranslation.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c09397e14dc19fb4ab38f8216b0759a4 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: -450 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs new file mode 100644 index 00000000..36df424c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs @@ -0,0 +1,43 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public class RegisterBundlesManager : MonoBehaviour, IResourceManager_Bundles + { + public void OnEnable() + { + if (!ResourceManager.pInstance.mBundleManagers.Contains(this)) + { + ResourceManager.pInstance.mBundleManagers.Add(this); + } + } + + public void OnDisable() + { + ResourceManager.pInstance.mBundleManagers.Remove(this); + } + + public virtual Object LoadFromBundle(string path, Type assetType) + { + // load from a bundle using path and return the object + return null; + } +} + + + // To use bundles, create a class similar to this one + // and add it to one of your scenes + // + + /*public class CustomBundlesManager : RegisterBundlesManager + { + public override Object LoadFromBundle(string path, System.Type assetType ) + { + // load from a bundle using path and return the object + return null; + } + } + */ +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs.meta b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs.meta new file mode 100644 index 00000000..485f76d7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/RegisterBundlesManager.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63c602586209c154886c6df1d347f847 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs new file mode 100644 index 00000000..60df36b9 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public class ToggleLanguage : MonoBehaviour + { + void Start () + { + Invoke("test", 3); + } + + void test() + { + //-- to move into the next language ---- + + List languages = LocalizationManager.GetAllLanguages(); + int Index = languages.IndexOf(LocalizationManager.CurrentLanguage); + if (Index<0) + Index = 0; + else + Index = (Index+1) % languages.Count; + + //-- Call this function again in 3 seconds + + Invoke("test", 3); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs.meta b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs.meta new file mode 100644 index 00000000..64affd46 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Scripts/ToggleLanguage.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 55bf2bd9f27244a03a94e8e907db26cc +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Window.png b/popcorn/Assets/I2/Localization/Examples/Common/Window.png new file mode 100644 index 0000000000000000000000000000000000000000..46138913ef4c74d89f611d6ffbe30526a9287248 GIT binary patch literal 4071 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 PQUI=Jrdz3V_sRbN^ZUQS literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Window.png.meta b/popcorn/Assets/I2/Localization/Examples/Common/Window.png.meta new file mode 100644 index 00000000..4a4c74ad --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Window.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: 8d412f782b72d2d49a240c947362048f +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources.meta b/popcorn/Assets/I2/Localization/Examples/Resources.meta new file mode 100644 index 00000000..24aad211 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b3af20bac176afc48863451560409acb +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset new file mode 100644 index 00000000..ff04b901 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset @@ -0,0 +1,1701 @@ +%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: ARIAL SDF + m_EditorClassIdentifier: + hashCode: 353930246 + material: {fileID: 21268714557401158} + materialHashCode: 604955127 + m_Version: 1.1.0 + m_SourceFontFileGUID: 56c59f4ecd2348d41abca4cc46a07e11 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 56c59f4ecd2348d41abca4cc46a07e11, + type: 3} + m_SourceFontFile: {fileID: 12800000, guid: 56c59f4ecd2348d41abca4cc46a07e11, type: 3} + m_AtlasPopulationMode: 1 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Arial + m_StyleName: Regular + m_PointSize: 90 + m_Scale: 1 + m_LineHeight: 103.49121 + m_AscentLine: 81.47461 + m_CapLine: 65 + m_MeanLine: 47 + m_Baseline: 0 + m_DescentLine: -19.072266 + m_SuperscriptOffset: 81.47461 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -19.072266 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -12.832031 + m_UnderlineThickness: 6.591797 + m_StrikethroughOffset: 18.8 + m_StrikethroughThickness: 6.591797 + m_TabWidth: 25 + m_GlyphTable: + - m_Index: 66 + m_Metrics: + m_Width: 52.421875 + m_Height: 5.71875 + m_HorizontalBearingX: -1.359375 + m_HorizontalBearingY: -12.171875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 54 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 171 + m_Metrics: + m_Width: 69.046875 + m_Height: 9.015625 + m_HorizontalBearingX: 10.5 + m_HorizontalBearingY: 9.015625 + m_HorizontalAdvance: 90 + m_GlyphRect: + m_X: 83 + m_Y: 10 + m_Width: 70 + m_Height: 10 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 959 + m_Metrics: + m_Width: 79.234375 + m_Height: 40.25 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 53.125 + m_HorizontalAdvance: 76.15625 + m_GlyphRect: + m_X: 172 + m_Y: 10 + m_Width: 81 + m_Height: 42 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 910 + m_Metrics: + m_Width: 19.828125 + m_Height: 53.75 + m_HorizontalBearingX: 0.828125 + m_HorizontalBearingY: 66.625 + m_HorizontalAdvance: 20.65625 + m_GlyphRect: + m_X: 10 + m_Y: 35 + m_Width: 21 + m_Height: 55 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 971 + m_Metrics: + m_Width: 45.390625 + m_Height: 29.625 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 42.5 + m_HorizontalAdvance: 47.328125 + m_GlyphRect: + m_X: 50 + m_Y: 39 + m_Width: 47 + m_Height: 31 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 978 + m_Metrics: + m_Width: 69.25 + m_Height: 48.421875 + m_HorizontalBearingX: 1.71875 + m_HorizontalBearingY: 61.296875 + m_HorizontalAdvance: 70.96875 + m_GlyphRect: + m_X: 272 + m_Y: 10 + m_Width: 70 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 3 + m_Metrics: + m_Width: 0 + m_Height: 0 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 0 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 0 + m_Y: 0 + m_Width: 0 + m_Height: 0 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 51 + m_Metrics: + m_Width: 49.1875 + m_Height: 64.421875 + m_HorizontalBearingX: 6.9375 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 60.03125 + m_GlyphRect: + m_X: 116 + m_Y: 71 + m_Width: 51 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 59 + m_Metrics: + m_Width: 59.0625 + m_Height: 64.421875 + m_HorizontalBearingX: 0.390625 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 60.03125 + m_GlyphRect: + m_X: 186 + m_Y: 71 + m_Width: 60 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 995 + m_Metrics: + m_Width: 38.546875 + m_Height: 24.078125 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 36.953125 + m_HorizontalAdvance: 35.46875 + m_GlyphRect: + m_X: 50 + m_Y: 89 + m_Width: 40 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 998 + m_Metrics: + m_Width: 44.296875 + m_Height: 56.6875 + m_HorizontalBearingX: 3.03125 + m_HorizontalBearingY: 50.1875 + m_HorizontalAdvance: 47.328125 + m_GlyphRect: + m_X: 10 + m_Y: 133 + m_Width: 45 + m_Height: 58 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 935 + m_Metrics: + m_Width: 50.765625 + m_Height: 44.65625 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 57.53125 + m_HorizontalAdvance: 47.6875 + m_GlyphRect: + m_X: 361 + m_Y: 10 + m_Width: 52 + m_Height: 46 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1020 + m_Metrics: + m_Width: 50.796875 + m_Height: 55.359375 + m_HorizontalBearingX: 3.25 + m_HorizontalBearingY: 66 + m_HorizontalAdvance: 54.046875 + m_GlyphRect: + m_X: 432 + m_Y: 10 + m_Width: 52 + m_Height: 56 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 989 + m_Metrics: + m_Width: 42.453125 + m_Height: 69.125 + m_HorizontalBearingX: 3.125 + m_HorizontalBearingY: 69.734375 + m_HorizontalAdvance: 45.578125 + m_GlyphRect: + m_X: 361 + m_Y: 75 + m_Width: 43 + m_Height: 70 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 952 + m_Metrics: + m_Width: 50.84375 + m_Height: 51.5 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 64.375 + m_HorizontalAdvance: 47.765625 + m_GlyphRect: + m_X: 265 + m_Y: 79 + m_Width: 52 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1003 + m_Metrics: + m_Width: 37.703125 + m_Height: 38.671875 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 49.921875 + m_HorizontalAdvance: 40.515625 + m_GlyphRect: + m_X: 265 + m_Y: 151 + m_Width: 39 + m_Height: 39 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 938 + m_Metrics: + m_Width: 26.1875 + m_Height: 36.78125 + m_HorizontalBearingX: 4.171875 + m_HorizontalBearingY: 49.65625 + m_HorizontalAdvance: 30.359375 + m_GlyphRect: + m_X: 74 + m_Y: 155 + m_Width: 27 + m_Height: 38 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 915 + m_Metrics: + m_Width: 24.4375 + m_Height: 45.96875 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 57.65625 + m_HorizontalAdvance: 25.40625 + m_GlyphRect: + m_X: 10 + m_Y: 210 + m_Width: 25 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 951 + m_Metrics: + m_Width: 50.84375 + m_Height: 51.5 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 64.375 + m_HorizontalAdvance: 47.765625 + m_GlyphRect: + m_X: 120 + m_Y: 155 + m_Width: 52 + m_Height: 53 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 942 + m_Metrics: + m_Width: 40.734375 + m_Height: 46.84375 + m_HorizontalBearingX: 3.25 + m_HorizontalBearingY: 38.671875 + m_HorizontalAdvance: 43.984375 + m_GlyphRect: + m_X: 54 + m_Y: 212 + m_Width: 41 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1011 + m_Metrics: + m_Width: 25.046875 + m_Height: 47.28125 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 41.046875 + m_HorizontalAdvance: 21.96875 + m_GlyphRect: + m_X: 191 + m_Y: 155 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 962 + m_Metrics: + m_Width: 55.421875 + m_Height: 58.53125 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 71.40625 + m_HorizontalAdvance: 52.34375 + m_GlyphRect: + m_X: 503 + m_Y: 10 + m_Width: 57 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 979 + m_Metrics: + m_Width: 27.15625 + m_Height: 52.46875 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 65.34375 + m_HorizontalAdvance: 24.078125 + m_GlyphRect: + m_X: 423 + m_Y: 85 + m_Width: 29 + m_Height: 54 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1012 + m_Metrics: + m_Width: 25.046875 + m_Height: 47.28125 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 41.046875 + m_HorizontalAdvance: 21.96875 + m_GlyphRect: + m_X: 579 + m_Y: 10 + m_Width: 26 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 1006 + m_Metrics: + m_Width: 36.6875 + m_Height: 41.53125 + m_HorizontalBearingX: 2.203125 + m_HorizontalBearingY: 34.625 + m_HorizontalAdvance: 38.890625 + m_GlyphRect: + m_X: 624 + m_Y: 10 + m_Width: 37 + m_Height: 42 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 983 + m_Metrics: + m_Width: 27.15625 + m_Height: 53.75 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 66.625 + m_HorizontalAdvance: 24.078125 + m_GlyphRect: + m_X: 680 + m_Y: 10 + m_Width: 29 + m_Height: 55 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 956 + m_Metrics: + m_Width: 79.234375 + m_Height: 23.59375 + m_HorizontalBearingX: -3.078125 + m_HorizontalBearingY: 36.46875 + m_HorizontalAdvance: 76.15625 + m_GlyphRect: + m_X: 579 + m_Y: 78 + m_Width: 81 + m_Height: 25 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 39 + m_Metrics: + m_Width: 53.265625 + m_Height: 64.421875 + m_HorizontalBearingX: 6.9375 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 65 + m_GlyphRect: + m_X: 471 + m_Y: 89 + m_Width: 55 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 82 + m_Metrics: + m_Width: 43.734375 + m_Height: 48.78125 + m_HorizontalBearingX: 2.984375 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 323 + m_Y: 164 + m_Width: 45 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 88 + m_Metrics: + m_Width: 37.84375 + m_Height: 47.734375 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 46.671875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 387 + m_Y: 164 + m_Width: 39 + m_Height: 49 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 69 + m_Metrics: + m_Width: 40.46875 + m_Height: 65.484375 + m_HorizontalBearingX: 5.890625 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 236 + m_Y: 209 + m_Width: 42 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 79 + m_Metrics: + m_Width: 7.921875 + m_Height: 64.421875 + m_HorizontalBearingX: 5.75 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 545 + m_Y: 89 + m_Width: 9 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 72 + m_Metrics: + m_Width: 43.015625 + m_Height: 48.78125 + m_HorizontalBearingX: 3.296875 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 114 + m_Y: 227 + m_Width: 44 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 58 + m_Metrics: + m_Width: 82.84375 + m_Height: 64.421875 + m_HorizontalBearingX: 1.09375 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 84.953125 + m_GlyphRect: + m_X: 10 + m_Y: 279 + m_Width: 83 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 68 + m_Metrics: + m_Width: 42.984375 + m_Height: 48.78125 + m_HorizontalBearingX: 3.25 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 728 + m_Y: 10 + m_Width: 44 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 87 + m_Metrics: + m_Width: 22.765625 + m_Height: 63.578125 + m_HorizontalBearingX: 1.578125 + m_HorizontalBearingY: 62.96875 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 191 + m_Y: 223 + m_Width: 24 + m_Height: 64 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 70 + m_Metrics: + m_Width: 40.65625 + m_Height: 48.78125 + m_HorizontalBearingX: 3.515625 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 112 + m_Y: 296 + m_Width: 42 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 75 + m_Metrics: + m_Width: 38.015625 + m_Height: 64.421875 + m_HorizontalBearingX: 5.9375 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 10 + m_Y: 363 + m_Width: 39 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 76 + m_Metrics: + m_Width: 7.90625 + m_Height: 64.421875 + m_HorizontalBearingX: 5.984375 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 20 + m_GlyphRect: + m_X: 68 + m_Y: 363 + m_Width: 9 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 81 + m_Metrics: + m_Width: 37.921875 + m_Height: 47.71875 + m_HorizontalBearingX: 5.9375 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 791 + m_Y: 10 + m_Width: 39 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 74 + m_Metrics: + m_Width: 41.125 + m_Height: 66.65625 + m_HorizontalBearingX: 2.90625 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 849 + m_Y: 10 + m_Width: 43 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 86 + m_Metrics: + m_Width: 38.765625 + m_Height: 48.78125 + m_HorizontalBearingX: 2.765625 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 728 + m_Y: 79 + m_Width: 40 + m_Height: 50 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 85 + m_Metrics: + m_Width: 25.359375 + m_Height: 47.71875 + m_HorizontalBearingX: 5.84375 + m_HorizontalBearingY: 47.71875 + m_HorizontalAdvance: 29.96875 + m_GlyphRect: + m_X: 679 + m_Y: 84 + m_Width: 27 + m_Height: 48 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 89 + m_Metrics: + m_Width: 42.8125 + m_Height: 46.671875 + m_HorizontalBearingX: 1.140625 + m_HorizontalBearingY: 46.671875 + m_HorizontalAdvance: 45 + m_GlyphRect: + m_X: 787 + m_Y: 79 + m_Width: 43 + m_Height: 47 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 71 + m_Metrics: + m_Width: 40.46875 + m_Height: 65.484375 + m_HorizontalBearingX: 3.078125 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 50.046875 + m_GlyphRect: + m_X: 573 + m_Y: 122 + m_Width: 41 + m_Height: 67 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 57 + m_Metrics: + m_Width: 58.9375 + m_Height: 64.421875 + m_HorizontalBearingX: 0.390625 + m_HorizontalBearingY: 64.421875 + m_HorizontalAdvance: 60.03125 + m_GlyphRect: + m_X: 911 + m_Y: 10 + m_Width: 60 + m_Height: 65 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 33 + m_Metrics: + m_Width: 42.671875 + m_Height: 43.625 + m_HorizontalBearingX: 4.921875 + m_HorizontalBearingY: 53.5625 + m_HorizontalAdvance: 52.5625 + m_GlyphRect: + m_X: 911 + m_Y: 94 + m_Width: 44 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 18 + m_Metrics: + m_Width: 25 + m_Height: 66.609375 + m_HorizontalBearingX: 0 + m_HorizontalBearingY: 65.515625 + m_HorizontalAdvance: 25 + m_GlyphRect: + m_X: 633 + m_Y: 122 + m_Width: 25 + m_Height: 68 + m_Scale: 1 + m_AtlasIndex: 0 + - m_Index: 31 + m_Metrics: + m_Width: 42.671875 + m_Height: 43.625 + m_HorizontalBearingX: 4.921875 + m_HorizontalBearingY: 53.5625 + m_HorizontalAdvance: 52.5625 + m_GlyphRect: + m_X: 787 + m_Y: 145 + m_Width: 44 + m_Height: 45 + m_Scale: 1 + m_AtlasIndex: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 171 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65215 + m_GlyphIndex: 959 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65166 + m_GlyphIndex: 910 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65227 + m_GlyphIndex: 971 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65234 + m_GlyphIndex: 978 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 32 + m_GlyphIndex: 3 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 80 + m_GlyphIndex: 51 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 88 + m_GlyphIndex: 59 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65251 + m_GlyphIndex: 995 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65254 + m_GlyphIndex: 998 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65191 + m_GlyphIndex: 935 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65276 + m_GlyphIndex: 1020 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 1604 + m_GlyphIndex: 989 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65208 + m_GlyphIndex: 952 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65259 + m_GlyphIndex: 1003 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65194 + m_GlyphIndex: 938 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 1577 + m_GlyphIndex: 915 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65207 + m_GlyphIndex: 951 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65198 + m_GlyphIndex: 942 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65267 + m_GlyphIndex: 1011 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65218 + m_GlyphIndex: 962 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65235 + m_GlyphIndex: 979 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65268 + m_GlyphIndex: 1012 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65262 + m_GlyphIndex: 1006 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65239 + m_GlyphIndex: 983 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 65212 + m_GlyphIndex: 956 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 68 + m_GlyphIndex: 39 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 111 + m_GlyphIndex: 82 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 117 + m_GlyphIndex: 88 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 98 + m_GlyphIndex: 69 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 108 + m_GlyphIndex: 79 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 101 + m_GlyphIndex: 72 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 87 + m_GlyphIndex: 58 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 97 + m_GlyphIndex: 68 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 116 + m_GlyphIndex: 87 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 99 + m_GlyphIndex: 70 + 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: 110 + m_GlyphIndex: 81 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 103 + m_GlyphIndex: 74 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 115 + m_GlyphIndex: 86 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 114 + m_GlyphIndex: 85 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 118 + m_GlyphIndex: 89 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 100 + m_GlyphIndex: 71 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 86 + m_GlyphIndex: 57 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 62 + m_GlyphIndex: 33 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 47 + m_GlyphIndex: 18 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 60 + m_GlyphIndex: 31 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 28601538341639112} + m_AtlasTextureIndex: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 73 + m_Height: 25 + - m_X: 73 + m_Y: 0 + m_Width: 89 + m_Height: 29 + - m_X: 162 + m_Y: 0 + m_Width: 100 + m_Height: 61 + - m_X: 0 + m_Y: 25 + m_Width: 40 + m_Height: 74 + - m_X: 40 + m_Y: 29 + m_Width: 66 + m_Height: 50 + - m_X: 262 + m_Y: 0 + m_Width: 89 + m_Height: 69 + - m_X: 106 + m_Y: 61 + m_Width: 70 + m_Height: 84 + - m_X: 176 + m_Y: 61 + m_Width: 79 + m_Height: 84 + - m_X: 40 + m_Y: 79 + m_Width: 59 + m_Height: 44 + - m_X: 0 + m_Y: 123 + m_Width: 64 + m_Height: 77 + - m_X: 351 + m_Y: 0 + m_Width: 71 + m_Height: 65 + - m_X: 422 + m_Y: 0 + m_Width: 71 + m_Height: 75 + - m_X: 351 + m_Y: 65 + m_Width: 62 + m_Height: 89 + - m_X: 255 + m_Y: 69 + m_Width: 71 + m_Height: 72 + - m_X: 255 + m_Y: 141 + m_Width: 58 + m_Height: 58 + - m_X: 64 + m_Y: 145 + m_Width: 46 + m_Height: 57 + - m_X: 0 + m_Y: 200 + m_Width: 44 + m_Height: 66 + - m_X: 110 + m_Y: 145 + m_Width: 71 + m_Height: 72 + - m_X: 44 + m_Y: 202 + m_Width: 60 + m_Height: 67 + - m_X: 181 + m_Y: 145 + m_Width: 45 + m_Height: 68 + - m_X: 493 + m_Y: 0 + m_Width: 76 + m_Height: 79 + - m_X: 413 + m_Y: 75 + m_Width: 48 + m_Height: 73 + - m_X: 569 + m_Y: 0 + m_Width: 45 + m_Height: 68 + - m_X: 614 + m_Y: 0 + m_Width: 56 + m_Height: 61 + - m_X: 670 + m_Y: 0 + m_Width: 48 + m_Height: 74 + - m_X: 569 + m_Y: 68 + m_Width: 100 + m_Height: 44 + - m_X: 461 + m_Y: 79 + m_Width: 74 + m_Height: 84 + - m_X: 313 + m_Y: 154 + m_Width: 64 + m_Height: 69 + - m_X: 377 + m_Y: 154 + m_Width: 58 + m_Height: 68 + - m_X: 226 + m_Y: 199 + m_Width: 61 + m_Height: 86 + - m_X: 535 + m_Y: 79 + m_Width: 28 + m_Height: 84 + - m_X: 104 + m_Y: 217 + m_Width: 63 + m_Height: 69 + - m_X: 0 + m_Y: 269 + m_Width: 102 + m_Height: 84 + - m_X: 718 + m_Y: 0 + m_Width: 63 + m_Height: 69 + - m_X: 181 + m_Y: 213 + m_Width: 43 + m_Height: 83 + - m_X: 102 + m_Y: 286 + m_Width: 61 + m_Height: 69 + - m_X: 0 + m_Y: 353 + m_Width: 58 + m_Height: 84 + - m_X: 58 + m_Y: 353 + m_Width: 28 + m_Height: 84 + - m_X: 781 + m_Y: 0 + m_Width: 58 + m_Height: 67 + - m_X: 839 + m_Y: 0 + m_Width: 62 + m_Height: 86 + - m_X: 718 + m_Y: 69 + m_Width: 59 + m_Height: 69 + - m_X: 669 + m_Y: 74 + m_Width: 46 + m_Height: 67 + - m_X: 777 + m_Y: 69 + m_Width: 62 + m_Height: 66 + - m_X: 563 + m_Y: 112 + m_Width: 60 + m_Height: 86 + - m_X: 901 + m_Y: 0 + m_Width: 79 + m_Height: 84 + - m_X: 901 + m_Y: 84 + m_Width: 63 + m_Height: 64 + - m_X: 623 + m_Y: 112 + m_Width: 44 + m_Height: 87 + - m_X: 777 + m_Y: 135 + m_Width: 63 + m_Height: 64 + m_FreeGlyphRects: + - m_X: 40 + m_Y: 25 + m_Width: 33 + m_Height: 4 + - m_X: 106 + m_Y: 29 + m_Width: 56 + m_Height: 32 + - m_X: 0 + m_Y: 99 + m_Width: 40 + m_Height: 24 + - m_X: 255 + m_Y: 61 + m_Width: 7 + m_Height: 8 + - m_X: 99 + m_Y: 79 + m_Width: 7 + m_Height: 66 + - m_X: 64 + m_Y: 123 + m_Width: 42 + m_Height: 22 + - m_X: 44 + m_Y: 200 + m_Width: 20 + m_Height: 2 + - m_X: 413 + m_Y: 65 + m_Width: 9 + m_Height: 10 + - m_X: 614 + m_Y: 61 + m_Width: 56 + m_Height: 7 + - m_X: 461 + m_Y: 75 + m_Width: 32 + m_Height: 4 + - m_X: 326 + m_Y: 69 + m_Width: 25 + m_Height: 85 + - m_X: 313 + m_Y: 141 + m_Width: 38 + m_Height: 13 + - m_X: 413 + m_Y: 148 + m_Width: 48 + m_Height: 6 + - m_X: 435 + m_Y: 148 + m_Width: 26 + m_Height: 875 + - m_X: 377 + m_Y: 222 + m_Width: 646 + m_Height: 801 + - m_X: 226 + m_Y: 145 + m_Width: 29 + m_Height: 54 + - m_X: 287 + m_Y: 223 + m_Width: 736 + m_Height: 800 + - m_X: 287 + m_Y: 199 + m_Width: 26 + m_Height: 824 + - m_X: 104 + m_Y: 202 + m_Width: 6 + m_Height: 15 + - m_X: 0 + m_Y: 266 + m_Width: 44 + m_Height: 3 + - m_X: 224 + m_Y: 213 + m_Width: 2 + m_Height: 810 + - m_X: 224 + m_Y: 285 + m_Width: 799 + m_Height: 738 + - m_X: 167 + m_Y: 217 + m_Width: 14 + m_Height: 806 + - m_X: 102 + m_Y: 269 + m_Width: 2 + m_Height: 17 + - m_X: 163 + m_Y: 296 + m_Width: 860 + m_Height: 727 + - m_X: 163 + m_Y: 286 + m_Width: 18 + m_Height: 737 + - m_X: 0 + m_Y: 437 + m_Width: 1023 + m_Height: 586 + - m_X: 86 + m_Y: 355 + m_Width: 937 + m_Height: 668 + - m_X: 86 + m_Y: 353 + m_Width: 16 + m_Height: 670 + - m_X: 669 + m_Y: 61 + m_Width: 1 + m_Height: 13 + - m_X: 715 + m_Y: 74 + m_Width: 3 + m_Height: 949 + - m_X: 781 + m_Y: 67 + m_Width: 58 + m_Height: 2 + - m_X: 435 + m_Y: 163 + m_Width: 128 + m_Height: 860 + - m_X: 563 + m_Y: 79 + m_Width: 6 + m_Height: 33 + - m_X: 980 + m_Y: 0 + m_Width: 43 + m_Height: 1023 + - m_X: 964 + m_Y: 84 + m_Width: 59 + m_Height: 939 + - m_X: 435 + m_Y: 199 + m_Width: 588 + m_Height: 824 + - m_X: 435 + m_Y: 198 + m_Width: 188 + m_Height: 825 + - m_X: 667 + m_Y: 112 + m_Width: 2 + m_Height: 911 + - m_X: 715 + m_Y: 138 + m_Width: 62 + m_Height: 885 + - m_X: 839 + m_Y: 86 + m_Width: 62 + m_Height: 49 + - m_X: 840 + m_Y: 86 + m_Width: 61 + m_Height: 937 + - m_X: 840 + m_Y: 148 + m_Width: 183 + m_Height: 875 + - m_X: 667 + m_Y: 141 + m_Width: 110 + m_Height: 882 + 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: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: + - m_FirstAdjustmentRecord: + m_GlyphIndex: 51 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 3 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.6875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.96875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 76 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -4.96875 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.34375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 57 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.34375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -3.34375 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 68 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 72 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 82 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 85 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + - m_FirstAdjustmentRecord: + m_GlyphIndex: 58 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -1.625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 88 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 56c59f4ecd2348d41abca4cc46a07e11 + pointSizeSamplingMode: 0 + pointSize: 90 + padding: 9 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 7 + characterSequence: + 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 &21268714557401158 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ARIAL Atlas 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: 28601538341639112} + 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: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _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 &28601538341639112 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ARIAL Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + 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: 1048576 + _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0a121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212120706040100000000000000000000000002070a0c0d13131313131313130d0c0a070200000000000000000000000002060a0c0d13131313131313130d0c0a070200000000000000000000000002070a0c0d13131313131313130d0d0b070200000000000000000000000000030606080808080808080808080707060300000000000000000104060708080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080706040000000000000000000000000000000000000000000000000000000000000000000000010200000306070707080808080808080808080808080808080808080808080808080808080808080808080808080808080808080705020000000000000000000000000000030606080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080807070501000000000000000000000000000407090a0b0b0b0b0a0a0a090908070706040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306060808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080807060401000000000000000000000000000000000000000000000000000305060706040100000000000000000000000000000000000000000000000000000000000000000000000000030506090b0d0f10111211100e0b07070501000000000000000000000000000000000000000000000000000000000306060808080808080808080808080808080808080808080808080808080606030000000000000000000000000000000000000000000000000000000000000306070706060300000000000000000000000000000000000000000000000000000000000000000000000000000000010407071313131313131311100e0b060000000000000000000000000000010406131313131313131311110e0b060100000000000000000000000000000000000000000000000000040607090c0e10111112121111100e0c0907060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0e101113131313131313130a0a08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416171f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1f1413110d0801000000000000000000070d1316191a20202020202020201a1917130e0700000000000000000000070d1216191920202020202020201a1917130e0800000000000000000000070e1317191a20202020202020201a1917130e0801000000000000000000060b0f121315151515151515151514141312100b060604030608080d11131415151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151312100c07000000000000000000000000000000000000000000000000000000020507080a0c0e0f060c10121314141415151515151515151515151515151515151515151515151515151515151515151515151515151515151514120e090300000000000000000000060b0f121315151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151413110d0802000000000000000000050b1013161718181717171716161515141312100c070d0b090706040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151413100d0701000000000000000000000000000000000000000000060b0f12131413110d0801000000000000000000000000000000000000000000000000000000000000000105060b0f121315181a1c1d1e1e1e1d1b181413110d0802000000000000000000000000000000000000000000000000060b0f121315151515151515151515151515151515151515151515151515151513120f0b06000000000000000000000000000000000000000000020507080b060c1012131413120f0b060a070604000000000000000000060606060606060600000000000000000000000000000001080d111314202020202020201e1d1b17120b040000000000000000000001070d111320202020202020201e1d1b17120c0400000000000000000000000000000000000000000003070c10131416181b1d1d1e1f1f1e1e1d1b19161312100c07030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b11171b1d1e2020202020202020171614100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c2023242b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b21201d19130c04000000000000010a12191e2325262d2d2d2d2d2d2d2d2626231f19120a01000000000000010a12191e2325262d2d2d2d2d2d2d2d2726231f19120a02000000000000010a12191f2326262d2d2d2d2d2d2d2d2726231f19120a02000000000000020a11171c1f202121212121212121212121201f1c171413110f121515191d20212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121201f1c18120b03000000000000000000000000000000000000000000020608090e12141517191a1c1d171c1f20212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121211e1a140d0500000000000000020a11171c1f20212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121201e19130d0500000000000000080f161c2022232424242424242323222221201f1c181c1a18161413100d0705020000000000000000000000000000000000000306070808080605030000000000000000000000020a11171c1f202121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212120201d18120c04000000000000000000000000000000000000020a11171b1f2021201d19130c040000000000000000000000000000000000000000000000000000000205080d1114171b1f20222427292a2b2b2b2a282521201d19130f0a040000000000000000000000000000000000000000020a11171c1f20212121212121212121212121212121212121212121212121212121201f1c17110a02000000000000000000000000000000000003090e121415181b171c1f2020201f1c171a171413100c070100000306080913131313131313120706040100000000000000000000040c13191d202d2d2d2d2d2d2d2d2b2a27231d160e050000000000000000040c13181d202d2d2d2d2d2d2d2d2b2a27231d160e06000000000000000000000000000000000000060c1012181d1f20232528292a2b2c2c2b2a29272523201f1c1812100b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e161d22272a2b2d2d2d2d2d2d2d2d2423201c17100800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a22282d3031383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838383838382d2c29241e160d0400000000000a131c242a2f3233393939393939393933322f2a241c130a0000000000000a131c232a2f3233393939393939393933322f2a241c140a0000000000000a131c242a2f3233393939393939393934332f2b241c140a0100000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2d2b282320201d1b1f212224292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2c28231c150c0300000000000000000000000000000000000105090f1214151a1e2021232527282a23282c2d2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2a251f170f050000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2a251e170e05000000000008111921272c2f30313131313130302f2f2e2e2d2c28232827252320201d1814120e09030000000000000000000000000003060c10121315151513120f0b060000000000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2c29241d160d04000000000000000000000000000000050b0b141b22272b2d2d2c29241e160d0400000000000000000000000000000000000000000000000105080e1114191e2022272b2d2f313335373738383734322e2d2a251e1b150d08020000000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2b28221c140b020000000000000000000000000000060b0f141a1e2122252723282c2d2d2d2b28222623201f1d1812100b0a0f131516202020202020201f1413110d080100000000000000040d161e24292c39393939393939393736332e2820170e04000000000000040d161d24292c39393939393939393837332e2820180e04000000000000000000000000000000060b11171c1f24292c2d2f323436373838383837363432302d2c28231f1c17110c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1720272e333637393939393939393931302d28211a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a242c33393c3d454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545453a39352f281f160c0100000007121c252e353b3f404646464646464646403f3b352e261c12070000000007121c252e353b3e404646464646464646403f3b362e261c12080000000007121c262e353b3f404646464646464646403f3b362e261c1208000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3a3a38342e2d2c29262b2e2f2f35393a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a38342e271e150b00000000000000000000000000000002080d11151a1f2122252a2d2e30323435362e34383a3a3a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a36312921170d03000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a3936302920170d02000000050f19232b33383c3d3e3e3e3e3d3d3d3c3c3b3a3a38342e353432302d2c2924211e1a14100b05000000000000000000060b0f12171c1f20212121201f1b17110a020000000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a39352f281f160c01000000000000000000000000040a0f161c1d262d3337393a39352f281f160c04070707040100000000000000000000000000000002080d1114191e20252a2d2d3337393c3e40424344454443413e3a3936302b272019130c04000000000000000000000000000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3938332d261d140a000000000000000000000000020a11171c1f262a2d2e31342e34383a3a3938332d33302d2c29241d1c16161b1f22232d2d2d2d2d2d2d2c21201d19130c040000000000010c1620282f3539464646464646464644433f39322920160b0000000000010c161f282f3539464646464646464644433f39322a20160c01000000000000000000000000020a11171c23282c2f35383a3c3f414344444545444443413f3c3a38342e2b28231c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000710202932393f434446464646464646463d3c39332c231a10050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222c363e44494a525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252524745413a31281e13080000020d19242e3740474b4d53535353535353534d4b4740382e24190e020000020d19232e3740464b4c53535353535353534d4b4740382e24190e020000020e19242e3840474b4d53535353535353534d4c4740382e24190e02000006111c262f383f4446484848484848484848474746443f3f3a393532373b3c4041454748484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484644403930271c120700000000000000000000000001070d13191d20262b2e2f30363a3b3d3f414243443f444647474748484848484848484848484848484848484848484848484848484848484848484848484848484848484846423b33291f140900000006111c262f383f444648484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484746413a32291e13080000000b16212b353d44484a4b4b4a4a4a4a49494848474644404342403e3c3a39352f2d2b261f1c160f0a040000000000020a11171b1f23282c2d2e2e2e2d2b27221b140b020000000006111c262f383f4446484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484745403931281d12070000000000000000000000070f161b21272c2f383f44464745413a31281e1311131413110d0801000000000000000000000000040c13191d20252a2d3036393b3f4446484b4d4f50515151504e4b4746413a373229241e160e07000000000000000000000000000006111c262f383f444648484848484848484848484848484848484848484848484848484846443f382f261c110600000000000000000000060b141c22282b31363a3b3e41443f44464746443f42403d3a38352f2c272120272b2e2f39393939393939392d2c29241e160d040000000008131e28323a41455353535353535353514f4b443b32281d12060000000007131d28313a40455353535353535353514f4b443c32281d12060000000000000000000000070b141c22282e34383a404547494b4e50505152525151504e4c494644403a38342e28231c150c0700000000000000000000000000000000000000000000000000000000000000000000000000040f1922323b444a4f5153535353535353534a49443e352c21170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e485055575e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e54514c433a2f24190d010007131e2a35404952575960606060606060605957524a40352a1f1307000006121e2a35404951575960606060606060605a58524a40362a1f1307000007131f2a35404a52575960606060606060605a58524a40362b1f130700000b17222d38424a5053545454545454545454545453504a4c4745403c4347484d4c5154545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545453514a42392e23180c0000000000000000000000040c13181e24292d31373a3b3f4246484a4c4d4f50514a5053545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454534d453b31251a0e0200000b17222d38424a5053545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454524c443a3025190d010004101c27333d474f5456575757575757565655555453514a504f4d4b494745403b3a37312c28211b160b06000000030b141b22272b2e34383a3b3b3b3937332d261d140a000000000b17222d38424a50535454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545453514b43392f24180d010000000000000000020a101921272c33383e4149505354524c433a2f24191d2021201d19130c04000000000000000000010a0e161e24292d3036393b41464749505355575a5c5d5e5e5e5d5b5854524c47433c35302820191008000000000000000000000000000b17222d38424a505354545454545454545454545454545454545454545454545454545453504a42382d22170b000000000000000000090f181d262d33383b4246484b4e504a50535353504a4f4d4a4745403938332d2b32383b3c46464646464646453a39352f281f160c010000010d19242f3a444c525f606060606060605e5b564d44392e23170b000000010d18242f3a434b515f606060606060605e5c564e44392e23170b000000000000000000000910191d262d33383f44464b515356585b5c5d5e5f5f5e5d5c5a585653514a46443f38342e271e1910060000000000000000000000000000000000000000000000000000000000000000000000000a16212b34444d555b5e606060606060606057554f473e33281c1002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202d3944505a61646b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b6b605d554c4135291d1104000a16232f3b47525b63666c6c6c6c6c6c6c6c66635c52473b2f23170a00000a16232f3b46515b63666c6c6c6c6c6c6c6c66635c52473b2f23170a00000a17232f3b47525c63666c6c6c6c6c6c6c6c67645c52473b2f23170b00030f1c28333f4a545b606161616161616161616161605c545853514b484e535559555d606161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161605c544a4034281c1004000000000000000000070d161d24293035393c4347484c4d525456585a5b5d5e545c606061616161616161616161616161616161616161616161616161616161616161616161616161616161616161615e574d42362a1e120500030f1c28333f4a545b606161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161615e564c41362a1e1105000713202c38444f5960636464646464636362626161605c545d5b5a585653514b4846423c38332c272117110a02030c151d262d3337393f444648484846443f382f261b11060000030f1c28333f4a545b6061616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161605d554b4035291d100400000000000000000a141c222b32383d44484f535b60605d564c41352924292c2d2c29241e160d0400000000000000000a131c20283035393b4146474c5254535b60626466686a6a6b6b6a6765615e56544e45413a322b221a12080000000000000000000000030f1c28333f4a545b60616161616161616161616161616161616161616161616161616161605b544a3f33281c0f030000000000000109121b212a2f383f44464d5355585a5d545c6060605b545c595653514b48443d39343d43474953535353535353524745413a31281e1308000004111d2935414c565d6c6c6c6c6c6c6c6c6a675f564b3f33271b0e02000004111d2935404b555d6c6c6c6c6c6c6c6c6b6760564b3f33271b0e00000000000000000009121b222b2f383f444a5053555d60626567696a6b6b6b6b6a69676563605c5453504a444039302b2217110a02000000000000000000000000000000000000000000000000000000000000000000030f1b27323d46555f676a6c6c6c6c6c6c6c6c6461594f44392d1f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303c4955616c70787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878786d675d5145392c201306000c1925323f4b57636d737979797979797979736e63574b3f3226190c00000c1925323e4b57636d737979797979797979736e63584b3f3226190c00000c1926323f4b57636e737979797979797979736e64584c3f3326190d0006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6d6d666965605d5554585f62666a676d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d665c5144382c1f120600000000000000000910191f282f353a4146474e535558575e6163656768696a6b666d6d6d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e695e53463a2d2114070006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d685e5246392d201307000916222f3c4854606b70717171717070706f6f6e6d6d666b6a68676563605d5555534d48443e383227221b140b0b151e272f383f44464a505354545453504941382d22170b000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d675d5145392c2013060000000000000008121c262e343d43484f545961656c6d685d52453d322f35393a39352f2820160c0100000000000007121c252e323a4146474d5254565e6165656c6f717375767778777674716d68626058524c443d342c241a12080000000000000000000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6c665b5044382b1f120600000000000009131b242d333c424a5053575f6164676a6b666d6d6c666a696663605d55554f49453e464e5456606060606060605f54524c433a2f24190d01000713202c3945525d6876797979797979797771675b4f43362a1d100400000613202c3945515d6776797979797979797772675c4f43372a1d11000000000000000009121b242d343d424a50545c6063676d6f7274767777787877777674726f6d6664605c54514a423d3427221b140b02000000000000000000000000000000000000000000000000000000000000000007131f2c38434e586771777979797979797979706c6155493b3025190e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707e848585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585858585847a6d6054473a2d211407000d1a2633404d596673808686868686868686807366594d4033261a0d00000d192633404c5966737f86868686868686868073665a4d4033271a0d00000d1a2633404d5966738086868686868686868073675a4d4034271a0d000613202d394653606c787b7b7b7b7b7b7b7b7b7a7a797876726d676260626a6f7376797a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b786d6053463a2d2013070000000000000009131b222b313a40454c5254585f626568696e7072747576777879797a7a7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e6154483b2e211508000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7a6d6154473a2e211407000a1723303d4a5663707d7e7e7d7d7d7d7c7c7b7b7a797877767573716f6d6765615f57554f48433d332d261d15121c27303941495053545c60616161605b53493f33271b0f03000613202d394653606c797b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b796d6053473a2d201407000000000000020e19242e3840464f545960636b70787a6d60584e43383a41454745413a32281e13080000000000020d19242e3740444c5254565e6165686e7175797b7e80828384848483817e7a756f6a605d564e463e362c241a11070000000000000000000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b786c605346392d201306000000000008111b252d363f464e545b6064696e7174777879797a7979777573706d676360595550474e5860626c6c6c6c6c6c6c6c605d564c4135291d1104000714212d3a4754606d7a8686868686868684776a5e5144372b1e110400000714202d3a4753606d798686868686868684776b5e5144382b1e110000000000000007101b242d363f464e545b60666d7075797c7e818383848585848483817f7c7975716d66605c544e463f332d261d140a00000000000000000000000000000000000000000000000000000000000000000915222e3b4854606a778386868686868686867e7064564d42362a1b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191877a6d6054473a2d211407000d1a2633404d596673808c9393939393938c807366594d4033261a0d00000d192633404c5966737f8c9393939393938d8073665a4d4033271a0d00000d1a2633404d596673808c9393939393938d8073675a4d4034271a0d000714212e3a4754616d7a87878787878787878787878685827f79726d6a6f767c8083858787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787877b6e6255483b2f22150800000000000008121b252d343d434b51565d61656a6e7275787b7d7f80828384858586878787878787878787878787878787878787878787878787878787878787878787878787878787878787878786796c5f5346392c2013000714212e3a4754616d7a87878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878175685c4f4235291c0f00101c2936434f5c697682898a8a8a8a8a89898888878685848382807e7c7a76726e69636159544f443f382f271f18232e39424a535b6064666d6e6e6e6c655b5044372b1f1205000714212e3a4754616d7a878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787877e7164574b3e3124180b00000000000007131f2a36404a525960636b70767d8382756a60544744484c5254524c443a2f24190b020000000007131e2a35404952565d6165686e72767a7e8285888a8d8f90919191908e8b86827c746d68605850483e362c23190f0500000000000000000714212e3a4754616d7a8787878787878787878787878787878787878787878787878787877a6d6154473a2e21140700000000040d1a232d373f4850585f666c70767b7e81838485868686858482807d7975706b64615a5354606a6f79797979797979786d685d5245392c201306000714212d3a4754606d7a8793939393939184776a5e5144372b1e110400000714202d3a4753606d7a8693939393939184776b5e5144382b1e11000000000000020b19222d363f48505860666c72797d8286898b8e8f9091929291908f8d8b8985827e78726d66605851443f382f261b110600000000000000000000000000000000000000000000000000000000000004111d2935404b55626f7c89959393939393938f8275695e5246382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a979e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e93877a6d6054473a2d211407000d1a2633404d596673808c999f9f9f9f998c807366594d4033261a0d00000d192633404c5966737f8c999f9f9f9f998d8073665a4d4033271a0d00000d1a2633404d596673808c999f9f9f9f9a8d8073675a4d4034271a0d000714212e3a4754616d7a879494949494949494949a93918f8b857f75757c82888c90929894949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494887b6e6255483b2f221508000000000007101a242d373f474f555d60686d72777b7f828587898b8d8e9091919298939494949494949494949494949494949494949494949494949494949494949494949494949494949494949286796c5f5346392c2013000714212e3a4754616d7a879494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494948f8275685c4f4235291c0f000713202d3a4653606d787c8084888c909595959494989291908e8d8b8986837f7b76706b6360595049413931271e2834404a545c656c7177797b7b7b796c605346392d201306000714212e3a4754616d7a8794949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494948a7e7164574b3e3124180b0000000000000a17232f3b47525c636b6f767d838a90897c6f62594f4f54565d605d564c4135291d140a000000000a16232f3b47525b63686d71767b7f83868b8e92979596989b9d9e9e9d9a99928f88817a6f6a615a50483e352b21170c03000000000000000714212e3a4754616d7a8794949494949494949494949494949494949494949494949494877a6d6154473a2e211407000000010c161f2b353f49515a626a6e787d82888b8d90919298939892918f8c8985827d77716c625f58626f7c86868686868686867a6d6054473a2d211407000714212d3a4754606d7a87939f9f9f9d9184776a5e5144372b1e110400000714202d3a4753606d7a86939f9f9f9e9184776b5e5144382b1e110000000000000a141d2b343f48505a626a6f787e858a8e9298989a9c9d9e9e9e9e9d9c9a9898928f8a847f786f6a635b504941382d22170e0400000000000000000000000000000000000000000000000000000000000613202c3945515d6774818e9aa79f9f9f9f9f92867b6e6153493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a979d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d93877a6d6054473a2d211407000d1a2633404d596673808c99a6acaca6998c807366594d4033261a0d00000d192633404c5966737f8c99a6acaca6998d8073665a4d4033271a0d00000d1a2633404d596673808c99a6acaca69a8d8073675a4d4034271a0d000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a49f9e9c97928b8281898f94999d9fa3aaa1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a195887b6e6255483b2f22150800000000040e19222c363f49515960676d737a7f83888b8f929796989a9b9c9d9e9fa2aaa0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a19f9286796c5f5346392c2013000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a19b8f8275685c4f4235291c0f0006121f2b3844505c666d6f73777b7f83888c9095999e9f9e9d9b9a989993908c88837d766f6b605b534b43393026303844515c666d777e83868787867a6d6053473a2d201407000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1978a7e7164574b3e3124180b0000000000000d1926323f4b58636e737c828990959c8f82766b6054596063686d685d52453d2f261b11060000000c1925323f4b57636d737a7e83868b8e8c8a88878788898b8e91969a9fa2a39f9b938e847c716c615a50473d33291e150b000000000000000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a094877a6d6154473a2e21140700000007131d28313d47515b626c717c838a8f94979a9d9e9fa2aaa29f9d9c9998928e89837e766f6a606674818e93939393998d8073685d5245392c201306000714212d3a4754606d7a8793a0acaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0acaa9e9184776b5e5144382b1e11000000000006111b262f3c46505a626c717c838b91979b9fa3aaa7a9a9a8a7a8a8a9a9a7aaa29f9b96918b837c726d605b53493f332720160c02000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a85929facacacacafa3998c7f72655b5044372b1f130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090877a6d6054473a2d211407000d1a2633404d596673808c99a6b3b3a6998c807366594d4033261a0d00000d192633404c5966737f8c99a6b2b3a6998d8073665a4d4033271a0d00000d1a2633404d596673808c99a6b3b3a69a8d8073675a4d4034271a0d000714212e3a4754616d7a8794a0adaeaeaeaeaeb6afacaba9a29f948f8e939c9fa6a9acaeb4aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea195887b6e6255483b2f221508000000000a15202b343e48515b626b6f797f858b9095989b9ea1a9a5a7a8a9aaabacaeb4adadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeac9f9286796c5f5346392c2013000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea89b8f8275685c4f4235291c0f0003101c28343f4a545c6063676a6f73777b7f83888c91969b9fa2aaaba49f9c9895908a837c726c655d554b42382e38424f59606d78818a90929993867a6d6053473a2d201407000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea4978a7e7164574b3e3124180b0000000000010d1a2734404d5a677380898f949d9f9f94897d706360626b70777a6d60594f41382d22170b0000000d1a2633404d59667380878b8a8784827f7d7c7b7b7c7c7f8184898d92989fa2a59e9691867e716c61594f453b30271c12070000000000000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeada094877a6d6154473a2e2114070000010d18242f3a434f59626d727e8690959c9fa6a7aaaba7a4a2a2a1a2a3aaa29f9b95908a837c726d6d7985929f9f9f9f92867b6e61564c4135291d1104000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000000000b17222d38414e58626c717e8790959ea1a9acaaa9a29f9c9b9b9b9b9c9ea2a9a9aba8a19e9590877f746c655b50443e32281e130800000000000000000000000000000000000000000000000000000006121f2b37434e5865717e8b98a2aeaba9abb0ab9e9184786c6053463a3024190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d83848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848483796d6054473a2d211407000d1a2633404d596673808c99a6acaca6998c807366594d4033261a0d00000d192633404c5966737f8c99a6acaca6998d8073665a4d4033271a0d00000d1a2633404d596673808c99a6acaca69a8d8073675a4d4034271a0d000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a7a8aaacada69e9c9b9ea5abb0b4aeaca9a7a6a7a8aaacaeb4b6b9bbc0bcb4aeaba7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a7a8aaacaeb4b7bbbabaaea195887b6e6255483b2f221508000000030f1b27323c46505a626d727d848c92989da0a7a8abadb3b1b4aeacabaaa9a8a7a7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a7abadb2b9ac9f9286796c5f5346392c2013000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6aaabb1b9bababababeb6afaca89b8f8275685c4f4235291c0f00000b17232e38424a505356585f6266696e72777b8084898e92989da0a8aca9a79f9d9590877f776d675d544a3f343f4a54616b74818e939d9fa393867a6d6053473a2d201407000714212e3a4754616d7a8794a0a6a6a6a7a7a8a9acaeb4b6b8bcb7afaaa8a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a7a8a9aaacafb5b9bbc0bab1a4978a7e7164574b3e3124180b0000000000000a1723303d4a5663707d89949fa6aba69d9083766c6a6f767d8382766b6053493f33271c120700000a1723303d4a5663707d83807e7b787572706f6e6e6f707275787c80868d92989ea6a19892877e706b60574d42392e23180c0300000000000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6aaa094877a6d6154473a2e211407000004111d2935414b55606b727f8b9298a0a7abada8a19e9a979695959596999b9fa2a09d9490867f786f7c8898a2aea99d908376695e52433a2f24190d01000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000000030f1b27333f4953606a717e8b92999fa7ada7a09d989792908f8e8e8f909297989c9fa6aca7a099938c80776c605a50443a3024190d0200000000000000000000000000000000000000000000000000000814212e3a47535f6a7683909daaa69f9c9fa6aca096897d7063564c4135291d1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4855616b70777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777776d675d5145392c201306000d1a2633404d596673808c99a0a0a0a0998c807366594d4033261a0d00000d192633404c5966737f8c99a0a0a0a0998d8073665a4d4033271a0d00000d1a2633404d596673808c99a0a0a0a09a8d8073675a4d4034271a0d000714212e3a4754616d7a8794999999999999999a9a9b9ea0a8abaaa8a8aaafb4aeaaa39f9c9a999a9b9d9fa3aba9acafb5b4aaa29f9a99999999999999999999999999999999999999999a9a9b9d9fa3aaaab0b8bbaea195887b6e6255483b2f22150800000006131f2b37434e58616c727f8791969fa2aaacb1aeaba9a6a4aaa39f9e9d9c9b9b9a9a9a99999999999999999999999999999999999999999999999999999999999999999a9ea1a8b2ac9f9286796c5f5346392c2013000714212e3a4754616d7a87949999999999999999999999999999999999999999999999999999999999999999999d9fa7b1bcc8c0bab1aca49f9c998f8275685c4f4235291c0f000006111c2630383f4446494e5355575f61666a6e73777c81868b91969c9fa6ababa79f99928c82796d665c50443f44505c66707d8a939da5aca093867a6d6053473a2d201407000714212e3a4754616d7a8794999a9a9a9a9b9b9d9fa2aaaaacb1afa59e9b999999999999999999999999999999999999999a9a9b9c9e9fa3abacafb5bdb1a4978a7e7164574b3e3124180b0000000000000916232f3c4855616b7683909ca6a69f9c948a7d70757c828990897d70655b5044392e23180c00000916222f3c4854606b707774716e69686663626161626365656c6f747a80868f949fa3a39992877d70695e544a40342820150a00000000000714212e3a4754616d7a87949999999999999999999999999999999999999999999da094877a6d6154473a2e21140700000613202c3945515d67707d87939fa2aab1a8a19e96918d8a898888898a8c8f92989d9f9f99928c827a7e8b97aab3a6998c807366574d4231281e130800000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000005121f2b3744505b656f7c87929fa3abaaa29f95918c888583828181828385878b90949ea0a8aba49f928d80736c61564c4135291e14080000000000000000000000000000000000000000000000000004101c2834404a54626e7b88959fab9f948f949fa7a89b8e8175685d5246392d20160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202c38444f5961636a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a605d554b4135291d1104000d1a2633404d596673808c9393939393938c807366594d4033261a0d00000d192633404c5966737f8c9393939393938d8073665a4d4033271a0d00000d1a2633404d596673808c9393939393938d8073675a4d4034271a0d000714212e3a4754616d7a878c8c8c8c8c8c8c8c8d8d8f91969c9fa6b0b5b6b1aaa29f98928f8d8d8d8f909299999d9fa4ababa298928d8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8d8d8e8f9092989c9ea6aeb6aea195887b6e6255483b2f2215080000000815222e3b4754606a717e889299a1a8aeacaaaaa29f9c999795989291908f8e8e8d8d8d8d8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8e9196a1adac9f9286796c5f5346392c2013000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c90959fabb8c0bbafa8a09a938f8c8c8275685c4f4235291c0f0000000a141e262e34383a3c4347484d5355575f62666b6f747a7f848a90949c9fa6acaba39f948f82786d605b51454653606d7884919ea5acaaa093867a6d6053473a2d201407000714212e3a4754616d7a878d8d8d8d8d8d8e8f909298989da0a7ac9e938e8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8d8d8d8e8f9192999b9fa4abb5b1a4978a7e7164574b3e3124180b0000000000000714202c38444f5963707d89949f9c948f89827c7b82898f949d9083786c60544a4034281c1004000714202c38444f5960636a6764615e5759575554545556535b6062686d737b828b9299a1a39992857b6e665c51443c31261b0f05000000000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c919594877a6d6154473a2e2114070003101c28343f4a54606d79849199a4aeb1a79f96918a84807e7c7b7b7c7d7f82858a90959ea19f948f84828f9ca9b6ac96897c706356493d3023160c0100000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e11000000000613202d394653606c78839099a3aea9a298928b847f7b78767574757576787b7e838a91969fa6afa49c928a7e71685d52463b3025190e0200000000000000000000000000000000000000000000000006121f2c3844515c6673808d9aa7ab9c8f838f95a0ac9f92867a6d6154473d32271b0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e474f55575d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d54514b433a2f24180d01000d1a2633404d596673808686868686868686807366594d4033261a0d00000d192633404c5966737f86868686868686868073665a4d4033271a0d00000d1a2633404d5966738086868686868686868073675a4d4034271a0d000714202d3a4753606d7980808080808080808080818284888f949fa6b0b1a7a098928c8682818081828486898c9093999da09f92858080808080808080808080808080808080808080808081828386898f949da4aeaea195887b6e6255483b2f22150800000713202c38444f59626f7c86929aa3abaaa7a09d9998928f8d8b898786848382828181808080808080808080808080808080808080808080808080808080808080808080808184919eabac9f9286796c5f5346392c2013000714202d3a4753606d79808080808080808080808080808080808080808080808080808080808080808080808083909daab6b5afa59d9591878280807e7164574b3e3124180b000000020c141c23282b2d31373a3c4246484e5355596063686d72787d838990949da0a8aea69e948e81756d62574d4b5564707d8a96a0a7a09d9993867a6d6053473a2d201407000714202d3a4753606d798080808080808081828385888c90959b9f9b8e81808080808080808080808080808080808080808080818284868a8e9399a3abb5a4978a7e7164574b3e3124180b00000000000004101c27333d4854606b76828f949089827c757f878f939c9fa0958a7e71665c5144382c1f12060004101c27333d474f54565d5a5754524d4c4a4948484949495053565e61696e767f879297a0a1979083786d60584e43372b21160b000000000714202d3a4753606d798080808080808080808080808080808080808080808080839194877a6d6154473a2e2114070006121f2b3844505c66737f8c96a1abb2a99f9590847d7874716f6f6e6f707275797d838a91979f9f96918f949eaaafa49a877a6e6154473b2e2114080000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000004101d2935404b5564717d8a95a0abada29792867f78726e69696868686869696e72767d8490949fa7aea49e92857a6d61564c41362a1e11050000000000000000000000000000000000000000000000000713202d3a4653606d7985929eaba3998a7d83909daaa3988b7f7265584e43382b1d1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212c353e44484a515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151514745413a31281d130700000613202d394653606c787979797979797979786c605346392d20130600000613202d394653606c777979797979797979786c605346392d20130600000613202d394653606c787979797979797979796c605346392d2013060006131f2c3945515d676d737373737373737373737475777c828f949faba8a09591867f7a767473747577797c7f83868b90959b9892857f7973737373737373737373737373737373737373747577797d828d929da8aea195887b6e6255483b2f22150800000916222f3c4854606b76828f99a3aca69e9c95918c888582807e7c7a7978777675747473737373737373737373737373737373737373737373737373737373737373797e82879196a1adac9f9286796c5f5346392c20130006131f2c3945515d676d73737373737373737373737373737373737373737373737373737373737373737379808d959fabb3aba39f938e837c757373716c6155493d3023170a00000000020a11171c1f20262b2e31363a3c4247484f54565d60656c70767d838a91969fa2aaa69e938b7f72695e52515c6775828f9ba69f95908d8c867a6d6053473a2d2014070006131f2c3945515d676d73737373737374747576797c7f83898f939a92878079737373737373737373737373737373737373747576777a7d81879299a3afa4978a7e7164574b3e3124180b000000000000000b16212c38444f59636f7d8989837d766f707d8a949ea5aba79e9184796d6053463a2d20130700000b16212b353d44484a504d4a4746423f3d3c3b3b3c3d3f44464c52575e616d727c859196a09f958c80736a5f53473e33281c100400000006131f2c3945515d676d7373737373737373737373737373737373737373737376828f94877a6d6154473a2e211407000713202d3a4653606d7984919ea8b2ada19790837a706c6664636262626366676d71777e8590949ea19e9c9ea6b0ac9f9386796d6053463a2d2013070000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000006131f2c3845515d6776828f9ca7b1a89f92857c726c66615f575c5b5b5c575e61656b707a829095a0aaada2978d8174685e5246392d201407000000000000000000000000000000000000000000000005121e2a36424d5764717d8a97a1ac9f928679808c99a8aa9d9083776a6054473a2f24180d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a232c33383c3d444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444443a39352f281f160c01000006121f2b3844505b666c6d6d6d6d6d6d6d6d6c665b5044382b1f1206000005121f2b3744505b656c6d6d6d6d6d6d6d6d6c665b5044382b1f1206000006121f2b3844505b666c6d6d6d6d6d6d6d6d6c665b5044382b1f12060004101d2935404b555d606666666666666666666767686a6f78828f9caaa09691837b726d6867666768676d6f72767a7f83888e9297928c857f79726d6766666666666666666666666666676768666d7075808d9aa6aea195887b6e6255483b2f22150800000a1723303d4a5663707d89949fa8a09e948f89847f7c797673716f6e6c656a696868676767666666666666666666666666666666666666666666666666666c717a80858b909399a1a8b2ac9f9286796c5f5346392c20130004101d2935404b555d606666666666666666666666666666666666666666666666666666666666666c707b828d929da7b1a9a299928b81796f6b666664615a5045392d211508000000000000060b1012131a1f21262a2d31373a3d44484c52535b60636b70767d848c92989fa6a59f92867b6e615853606d7986929f9f948f83808080796d6053463a2d2013070004101d2935404b555d60666666676767676868666d6f72777c82878f94928d847e78706b6666666666666666666666666667676869676d70757d87929faca4978a7e7164574b3e3124180b0000000000000005101c27333d4854606b74807d76706b626b7683909ca6a69f9c948b7f7265584c3f3225190c0000050f1a232b33383c3d44413e3b3a3630302f2e2e2f2d33373a41464d535b626a6f7b849195a09f92877c6f62594f44382c20160a00000004101d2935404b555d606666666666666666666666666666666666666666666a76839094877a6d6154473a2e21140700091623303c4956636f7c8997a1adb4aa9e91857a6d68605b545655555657555c60646c717a828f949ea7a9aab0b8ab9f928578665c5044382b1f12060000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000714202d3a4753606d7986929facaca0968a7e716a605b54534d4f4e4e4f4d52545961686d79839098a3aea99f92867a6e6154473b2e23180c00000000000000000000000000000000000000000000000714202d3a46525e6975828f9ca9ac9c8f82767c8896a1aca095897c6f62554b4035291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a21282c2f30373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737373737372d2c29241d160d04000000030f1c28333f4a545b606060606060606060605b544a3f33281c0f030000030f1b27333f49535b606060606060606060605b544a3f33281c0f030000030f1c28333f4a545b606060606060606060605b544a3f33281c0f0300000c18242f39434b51535959595959595959595a5a585f666f7c8996a29891847a6e69605d565a5a555c606366686e72777c81868e9297928c857f79726d67605d56595959595959595a5a5b545c60636d7a8794a0ada195887b6e6255483b2f2215080005111d2a36414c566774818e9aa69f969189827c77736f6c6666646261605b535c5b5b5a5a5a5a5959595959595959595959595959595959595959595a636d737e858d92989c9fa4aba5a8ac9f9286796c5f5346392c201300000c18242f39434b515359595959595959595959595959595959595959595959595959595961676d747e8590949da4aea8a19792877f746d67605959575550483e34281d1105000000000000000003060a0f12151a1e21262b2e32383a41454950535960636b70787f868f949fa3a2988e81756a605663707c8998a2988f82797373736d665c5145382c1f130600000c18242f39434b5153595a5a5a5a5a5a5b545c6062656a6f757c828a9296918a837d76706b64605c545959595959595a5a5a5b555d60636b75828f9ca8a4978a7e7164574b3e3124180b000000000000060b0f16212c38444f59646e74706b636059636f7c89949f9d949089827c6f6256493c2f23160900000008111a21272c2f303734312e2d2a25242221212222272b30363b4246515860696e7a839196a0999082766b6155483d32271b0f000000000c18242f39434b5153595959595959595959595959595a5b5c5b595959576a77849194877a6d6154473a2e211407000c1926333f4c5966727f8c99a9b2aea2988b7e71685e56504a494848494a4b51535a61686d79828f95a0abb5bbb7ab9e9184786b544a3f34281c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e11000000091623303c4956636f7c8999a3a6a49d9184776c6158504a4642424142424246484f565d676e7b86929fabaea3998c7f7265554b4034281c1004000000000000000000000000000000000000000000030f1b27333f4953616e7b87939faca49a8b7f727884919eaba79a8e8174675d5145392c20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810161c2023242a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a21201d18130c0400000000000b17222d38424a5053535353535353535353504a42382d22170b000000000b17222d3841495053535353535353535353504a42382d22170b000000000b17222d38424a5053535353535353535353504a42382d22170b00000007121d2731394045474d4d4d4d4d4d4d4d4d4d4e4e54606d7a86999f92867b6e685f57524c4d4e4b515356565e61656a6f757b81878f9497928c857f79726d68625f585553504a4d4d4e4d52545c616e7a8794a1b5ab94877b6e6154483b2e211508000713202d3946525e687884919e9f9490847d756f6b6662605b545856545350494f4f4e4e4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a54616c737f8a92979fa2aaa29f9b989c9e9f9286796c5f5346392c2013000007121d2731394045474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4c51575e616b7079818a92979fa6aea7a09691857d726d605d554f4d4b49453e362c22170c0000000000000000000000000306090e12151a1e21272c2f35383f44464f545961666d727b828c9299a19e93897c6f625866727f8c999f92867b6e666666605c544b4034281c1004000007121d2731394045474d4d4d4d4d4d4d4e4a5053555860626a6f767e86929e959089837d77716d66625f575653514b4d4d4d4e4d52565d6875828f9ba8a3978a7d7064574a3d3124170a00000000020a11171c1f2027323d47525c64676360595454606b76828f959089837d766f6a6054473b2e22150800000000080f161c2022232a272421201e1a1716151516171b1f252a31363f464e575f686e7a8491979f948a7d7063584e43382b1c110600000007121d2731394045474d4d4d4d4d4d4d4d50545c6064676869686663605e6978859293877a6d6054473a2d211407000e1b2835414e5b6874818e9ba7b4ac9f92857a6d60564c443f3c3c3b3c3d40454750565e676d79839099a4afbbb7aa9d9184776a5e51442e23170b000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000b1825313e4b5864717e8b979b9997968c7f73665a50443f383631353530363a3e444c555f6973808d99a4afab9c908376675c5145382c1f130600000000000000000000000000000000000000000005121f2b3744505b65737f8c99a4ac9f93877b6e74808d9aa8ac9f92857a6d6053473c31261b0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416171e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1e1413110d070100000000000006111c262f383f4446464646464646464646443f382f261c11060000000006111b262f383f4446464646464646464646443f382f261c11060000000006111c262f383f4446464646464646464646443f382f261c1106000000010b151f272f35393a404040404040404040404145515d67798692958b7e71695f564d45414041404546494c5254585f62696e747c828b929897928c857f7a746f6a6662605c545a5a5a565e61666d73808c99a6afa399877a6d6054473a2d211407000714212e3a4754616d7a8796a09590827a706b6360595553504a4b494746443f4342414140404040404040404040404040404040404040404044505c66717e8a919ea1a79f9d98928f8b8f949f9285796c5f5246392c1f130000010b151f272f35393a40404040404040404040404040404040404145474c52555d60696e757d848e939fa2a9afa69f9590847c706b625b514b43403e3d39342c241a10060000000000000000000000000000000205090e12161b1e24292d33373d44484f545c60696e787f879297a09c8f82766a606875818e9b9a8d8073685e545953514b42392e23180c000000010b151f272f35393a40404040404041413f4446494e54585f626c75828f9ba09d949089837d79736e696662605c545a5a5a5b575e61686d7a85929fabab96897c706356493d3023160a000000020b141c22282b2d2e2e35404a52585a56554f484f59626f7c888a837d76706b6260584e43372b1f13060000000000050b101416171d1a171414110e09090808060b0f13191f252a343d454d565e686e7b8591989d9083766a605447382e23170c000000010b151f272f35393a40404040404049515a61666d707375757473706d676e7b879793867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b5a99d908376675d51443a332d2f2f2f2f34383e444c555d676f7c87939facb9b7aa9d9084776a5d5144372a1e06000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000c1926333f4c5966727f8c908f8d8b89877d7063564a3e332d38393939393735323a434d57616e7a87939facac9f9286796d6053463a2d2013070000000000000000000000000000000000000000000613202d394653606c7884919eabab9d908376696f7c8996a1aca2988b7e7165584e43372b1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111070604010000000000000000000a141d262d3338393a3a3a3a3a3a3a3a3938332d261d140a0000000000000a141d262d3337393a3a3a3a3a3a3a3a3938332d261d140a0000000000000a141d262d3338393a3a3a3a3a3a3a3a3938332d261d140a0000000000030d151d24292c2d333333333333333333343a4753606d7a86999083786c60574d443b352f2e34383a3c4146474e53575e616a6e767e8690949e97918c85817b77736f6d666867666769686e72787f87939facac9f9286796c605346392d201306000915222f3c4855626f7c8895999083796d686059544f4946443f3e3c3b3937332d35353434343333333333333333333333333333333333333a4653606d7884919ea3a49d95908a85827e828f9c9285786c5f5245392c1f12000000030d151d24292c2d3333333333353d4448494d4c4b4b4b4b4c4c5254565e61676d737b818a91969da5adaea59e948f837b6f6a6059514540393131302d28221a12080000000000000000000000000000000000000002060a0f13191b22272b32383e424a50575e666c727d8591969f94897c6f626a7783909d95887b6e62564d4d4645403930271d120700000000030d151d24292c2d333333343434342e34383a3d43484e545a64717e8a999e979e9c95908a85807b77736f6d66686766676769696e727a828f98a2aea399887b6f6255483c2f2215090000000a141d262d3338393b3b3b3b40474c4d4a48443d4754606a73807d77706b636059544e463d32271b0f03000000000000000407090a110e0b0807050200000000000003080d141a222b333b444d565e696f7c86929f95897c6f62544a3f34281c1003000000030d151d24292c2d333333323d47515b636c71797d808282817f7d7a76727d8a979886796c605346392d20130600101d293643505c6976838f9ca9b5a89c8f827569554b4034282322222323292c323a434b55606a74818e9ba9b3b6a99d9083766a5d5043372a1d10040000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000d1a2633404d59667380868482807e7c7a706b6054483d4042444546464544423f3b3c46525e6876828f9ca9aea398897c6f6256493c2f231609000000000000000000000000000000000000000004111d2935414c5663707d8996a0aca4998b7f72656c7884919eabaa9d9083766a5f5347392e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d2d2d2d2d2d2d2d2d2d2b28221c140b02000000000000020b141b22272b2d2d2d2d2d2d2d2d2d2d2b28221c140b02000000000000020b141c22282b2d2d2d2d2d2d2d2d2d2d2b28221c140b02000000000000030b12181d1f202626262626262626262e3b4754616e7a87958a7d70655b50453c32292423282c2d3036393c43474d52585f626c717b838c92999e98928d88847f7c79767574737475777a7f848c9399a4afaa9d908377655b5044372b1f1205000a1623303d495663707c899692877c6f675d564f48433d3938332d2f2e2d2b272228282727272726262626262626262626262626262626303d495663707d8996a1a89d928d837d797574818e9b9285786b5f5245382c1f1200000000030b12181d1f2026262627323d474f54565a585857575859565d6064686e737a80868e939ea1a8afafa49c938e827a6e695f584f473f352f272423211d171008000000000000000000000000000000000000000000000001080d11171b1f272c30383f444d545b606b707b8491969b8f827569677885929d9084776a5f5344403a38342e271e150b000000000000030b12181d1f202627272727272723282c2d32383c434754616d7a8693918b91969f9d97918d88837f7c7977757473737476777b7f848f949faaac9f92867a6d6053473a2d201407000006111c262f383f4446484848484848484848484848484e58636e73706c636159544f47433d342b20150a00000000000000000000000004010000000000000000000000000003091019212a323b444d57606a717e8a929a8e8174665c5044382c1f120600000000030b12181d1f2026262c38434f59636d727e848a8d8e8f8e8c8986837f808d9a928679655b5044372b1f1205000f1c2935424f5c6875828f9ba8b5a99c908376675c51453b342e2d2b2626242228303a434e58626f7c8997a1adb6a99c908376695d5043362a1d10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000714202d3a4753606d7979777573716f6d6860594f474a4d4f5152535352514f4c4846424c5666727f8c99a5b4aa988b7e7165584b3e3225180b00000000000000000000000000000000000000000713202c3945525d6875818e9ba8ac9f93877b6e616573808d99a7ab9f95887c6f62554b4034281c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070808080808080707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f202020202020202020201f1c17110a020000000000000000020a11171b1f202020202020202020201f1c17110a020000000000000000020a11171c1f202020202020202020201f1c17110a02000000000000000001070c1013141a1a1a1a1a1a1a1a23303c4956636f7c899184776b6153493f332a2019181c1f20252a2d32373b42464e535a62696e787f8791969d9f9a95908c888583818080818284878b91959fa4abb2a89a8d81746753493f33271b0f0300091623303c4956636f7c89968e82756a5f554c443d38322d2b28222321201f1b171c1b1b1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a25323f4b5865727e8b98a9a1968d8078716d6775828f9c9184786b5e5145382b1e12000000000001070c1013141a1a202c38444f5960636665646464656668686d71757a80858c92989ea5adb2aba39f928d81796d685e574e463d3529241d151715110c06000000000000000000000000000000000000000000000000000000060b0f161b1e262e343b424a505960696e7a84919693877b6e6d7986979a8d807467584e43322d2c28231d150c030000000000000001070c1013141a1a1a1a1a1a1a171c1f20272c323946525d68778390847e848c92989f9e9a95908c89868381808080818284878c91979fa6b0ac9d908377675d5145382c1f130600000b17222d38424a50535454545454545454545454545454545c636664615a54545454534d453b31251a0e020000000000000000000000000000000000000000000000000000050e171f272f353a41464e58616c74808d949285796d6053463a2d201307000000000001070c1013141a222f3b4854606b727f8a91979a9b9c9b9999928f8b8d929f9285786c5f493f33271b0f03000e1a2734414d5a6774808d9aabb5ac9f9285796d60564d44403b3a373133312f2d2b313c4754606a7885919eabb6a99c8f8376695c504336291d10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000613202c3945515d676d6c6568666463615e564f5154575a5c5e5f5f5f5f5d5b5855534d4a5764707d8a97a3b0a6998d8073665a4d4033271a0d00000000000000000000000000000000000000000714212d3a4754606d7a86929facab9c908376695e626f7c8895a0aca79a8d8074675c5145382c1f1409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c1013131515151515151413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213131313131313131313120f0b06000000000000000000000000060b0f1213131313131313131313120f0b06000000000000000000000000060b0f1213131313131313131313120f0b06000000000000000000000000000406070d0d0d0d0d0d0d1825323e4b5865717e8b8b7f7265594f41382d21180e0c101313191e20262b30363c434750575f666d737c848e939ea1a09d999892908e8d8d8d8f9196989da0a7afb5aca1968a7d7063574a3d2d22170b00000915222f3c4855626f7c88998a7d7164584e433a322c27201f1c17161413120f0b060e0e0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1925323f4c5865727f8b98a59e9184786d6660667783909d9184776a5e5144372b1e1100000000000000000406070d15222f3b4854606b6f7372717171717374777a7e82868c92979fa2aaafb1a9a199928b80776d675d564d453c342b2318120b0a080500000000000000000000000000000000000000000000000000000000000000030b0c151c23282f383f444f575f686e7b8491988d80746e7a8794978a7d7164574a3e31241f1c18120b0300000000000000000000000406070d0d0d0d0d0d060c1012131b202935414c566774818e877a7980868e939a9f9f9d999892908e8d8d8d8e8f9196989ea1a9b0afa49a8d807366554b4035291d100400030f1c28333f4a545b60616161616161616161616161616161616161616161616161615e574d42362a1e120500000000000000000000000000000000000000000000000000020b172029313940454c5254585a606d78829097897c6f6356493c3023160900000000000000000406101d2935404b55636f7d89919ea1a9a8a8a7aba39f9c989a9d9e9184776b5e51442d22170b00000b1825313e4b5864717e8b99a3afaea2988b7e71685e56514a484642413f3d3b39383337434e586875828f9ba8b5a99c8f8376695c504336291d10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000004101d2935404b555d60605b535a5856545254555d606367696b6c6c6c6c6a6865615f575556626f7c8995a2afa89b8e8175685b4e4235281b0f0200000000000000000000000000000000000006131f2b37434e5865727f8b98a3aea3998b7e7265565f6a7783909dabab9e9285796d6053463b31261a0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050b1012181c1f2021212121212121201d19130c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060607070707070707070606030000000000000000000000000000000003050607070707070707070606030000000000000000000000000000000003060607070707070707070606030000000000000000000000000000000000000000000000000c1926333f4c5966727f8c867a6d6154473e2f261b0f06000406080d11151b1f252a31373f454d545c606a6f79818a91979fa4aaa29f9c9b9a999a9c9ea0a8aaacb1bbafa59e9184786c605346392d20130600000714202d3a4753606d798693877b6e6154483c3128201b13120f0b060806050300000201010100000000000000000000000000000b1824313e4b5764717e8a97aa9a8e8174665c606d7986929c908376695d5043362a1d100000000000000000000000091623303c4956636f7d807f7e7e7e7e7f8184868a8f92999fa2a9aeb4afa7a09792877e736c655c554c443b332a2219110701000000000000000000000000000000000000000000000000000000000000000000000000030a11171d262d333d454d565e696f7c86929285796e7b889598887b6e6255483b2f2215100c0700000000000000000000000000000000000000010101000003060a0f1924303f4c5965727f8c897d70737b818790949da0a7a39f9d9b9a999a9a9c9ea0a8abadb2b3a99f93877b6e6155483b2f24180c000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e695e53463a2d211407000000000000000000000000000000000000000000000000000a141d29323b434b51565e616468666d6e7b85928c7f7266594c3f3326190c00000000000000000006131f2c3845515d6776828f9ca3adb2b1b0b1b5aeaca9a5a7a99c8f8376695c504336291d0600000714212e3a4754616d7a86929facb4aa9e91847a6e68605c5455534d4e4c4a4846443f3e404d5a6673808d99a6b3a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e11000000010d18242f39434b51535350494d4b4d53596063676d70737577787979787775726e69636159626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000815222e3b4754606a7783909daaac9f92867a6d61545865727f8c99a3ada2978a7e7164574d42362a1c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c1d23282c2d2e2e2e2e2e2e2e2d2a251e170e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a848276685d5246392c1d140a000000000001050a0f141a20262b333b424a505860676d747d848d93999fa6aca9a8a7a6a7a8aaacb2b7b8b5aea69e938b7e71665b5044382b1f1206000006131f2c3945515d67778491867a6d6053473a2d20160e0a060300000000000000000000000000000000000000000000000000000916222f3c4955626f7c8898a29a8d8174675a63707c89989b8e8275685b4f4235281c0f00000000000000000000000714212e3a4754616d7a858b8b8a8a8b8c8e9093999b9fa3abadb3b3ada59e9590857d716c605b534b433a32292118100800000000000000000000000000000000000000000000000000000000000000000000000000000000060b141c2228333c444d575f6a717e8b938b7e717c88959285796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000081724313e4a5764717d8a8c7f72696e757c838a90959d9fa7aaa8a7a6a6a7a9aaacb2b8b8b1a9a1978e8175695f53463a2d1d120700000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e6154483b2e21150800000000000000000000000000000000000000000000000006111b262f3b444c555d60686d717577797b7b7f8c8e8175685b4e4235281b0f0000000000000000000714202d3a4753606d7a86929facaaa8a5a3a4a7abaeb3b2b4a89b8e8175685b4e4235281b0f02000713202d3946525e6875828f9aa4afada19690837a726d6664615f575b59575553504a4b484b5865727e8b98a5b1a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000007121d28313940454746443f4450575f626b6f757a7d8082848586868584827f7b76706b61616e7a8794a1adaa9d9084776a5d5144372a1e0600000000000000000000000000000000000004101d2935404b55626f7c8895a0acaa9c8f8275685e5254616e7b86929faca99c8f8276695f5346382e23170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a111a21282d2e34383a3b3b3b3b3b3b3a3936302920170c0200000000000000000003060608080808080808080808080807070706040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945525d68707d7f7265564c4135291a0b02000000000000000002090e151a212930383f444e555d606b707a80878f949c9fa4abacaeb4b1b2b2b1b2adaba39f948f81756c62544a3f33281c0f03000004101d2935404b556774818e877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929f9c9083766b666c75818e9b9a8d8074675a4d4134271a0e00000000000000000000000713202d3946525e6873808d96979798999b9d9fa4abacafb5b7afa9a29f938e837b706b625a50494139302820170f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117212a323b454e58626c75828f9083777c8995908477665c5044382b1f120600000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d898e817467616a6f767d838a90959b9fa2aaabacb2b1b2b1b4aeaca79f9792857a6d61574d42362a1e0b0100000714212e3a4754616d7a87878787878787878787878787878787878787878787878786796c5f5346392c20130000000000000000000000000000000000000000000000000b17222d38414c565e676d737a7e82848687888c91908376695d5043362a1d100000000000000000000815222e3b4855616e7b8899a3a69e9c9897979b9fa2aaaeb3a6998d8073665a4d4033271a0d000005111d2a36414c56626f7c87939fa7b1a8a09590857e7974716e696a67666462605b545855535764717d8a97a4b0a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000000010c161f282f35393a394149505a62696e757c81868a8d8f9192929292908e8b88827d766e696d7a8793a0adab9e9185786b5e52452d22170b00000000000000000000000000000000000006131f2c3845515d6774818d9aa7aea2988a7e7164564c525e6875828f9ca9ac9f93877b6e61544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141c232c3339394045464848484848484746413a32291e130800000000000000060b0f121315151515151515151515151514141313100c070e0c0b0907060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c56606b70796d6053463a30241907000000000000000000000003090f171e262e343d434b515961686d747c82898f93999c9fa2aaa4a5a5a4a8a19e99928d82796d605a5042382d22170b000000000c18242f3d4a5764707d8a887b6f6255483c2f24180c000000000000000000000000000000000000000000000000000000000006121f2b3844505c6675828f9b9f94897d7473757e88939f988b7e7265584b3f3225180c000000000000000000000005111d2a36414c56606d79849198a2aaa6a7aaacafb5b9b8b0aba59e97928b81796e69605950443f382f271e160d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111d2935414c565d666d6e7b8692887c7c89968f827568544a3f34281c100300000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d898f8276695860626c70787e83898e92989b9ea1a8a4a5a5aaa29f9c9590857c6f685e52453b31261a0e0000000714212e3a4754616d7a87949494949494949494949494949494949494949494949286796c5f5346392c20130000000000000000000000000000000000000000000000030f1b27333f49535e686e7980868b8e91929995999d9184776a5e5144372b1e110000000000000000000916222f3c4955626f7c8895a39b948f8b8a8b8e92989ca4aeab988b7e7165584b3e3225180b0000010d1925303a4754606a74818e95a0a8b1a7a097928b85817e7b78767472706e6c666765625f5863707d8a96a3b0a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000000040d161d24292c333f49535b606d717b82898e92989a9c9e9f9f9f9f9d9b98948f8a827b716d7a8693a0adab9f9285786c5f493f33271b0f0300000000000000000000000000000000000714202d3a4753606d7985929fabab9f9285796d6053474d5664717e8a97a2ada49a8d8073665c5044382c1f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121c262e353e44494b515354545454545454524c443a3025190d0100000000020a11171c1f202121212121212121212121212121201f1c181c1b1918161413110d0808060503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a434f5960666d665c514538281e130800000000000000000000000000060c141c2328313a40454f565d606a6f767c82878c8f929896989898979696918e8680786d675d51483f2f261c1106000000000714202d3a4753606d7a868b7e7165554b4035291d10040000000000000000000000000000000000000000000000000000000003101c28343f4a5464707d8a96a19f9287817f8288939aa399897c6f6256493c2f2316090000000000000000000000010d1925303a45515d676f7c869298a0a8acb1b1b2b3adaba69f9c938e857e756d675f574f473f332d261d150c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18222c3945525d686d796d73808d8d807d8a968d8073675a4d402e23170b0000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a918477665b545961666c71767c81858a8e9196969798989798928f8a837b6f6a5f564c41332a1f14090000000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a19f9286796c5f5346392c2013000000000000000000000000000000000000000000000005121f2b3744505b656e7a838d92989b9e9fa3aba59e9184786b5e5145382b1e120000000000000000000815222e3b4855616e7b88949b918c827e7d7e81858d929ca8a399887c6f6255493c2f22160900000008131e2b37434e58606d798390969fa7ada9a29e97928e8a888583817f7d7b797674716e6a6864707d8996a3b0a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e11000000000000040c161f2b343d44505b656c747e868f949b9fa3aaa8aaa9a7a7a7a8a8a69f9c948f867e72798693a0acac9f928679655b5044372b1f12050000000000000000000000000000000005121e2b37424d5764717e8b97a2ada99b8e8174675d51454753606d7985929fabac9e9184796d6053463b3025190e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e1b242e3840474f55545c60616161616161615e564c41362a1d1105000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2e2e2d2d2c2823292826242321201d19181513120f0b06060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313d474f545c605c544b4034281c10040000000000000000000000000000020a11171f282f353e434c52585f626b6f757b7f8385888a8b8b8c8b8a8884817b746d665d554b41362d1d140a00000000000613202c3945515d6774818e8175675d5145382c1f160b00000000000000000000000000000000000000000000000000000000000b17232e3a4653606d7984919ea399928e8c8e939aa49f92867a6d6053473a2d20140700000000000000000000000008131e2935404b55606a707d8691969da0a7a4a5a9a29f9b949089817b716c605d554d453d3527221b140b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2935414c56606d7a7f736d7a8692857f8b988b7e7265584b3f322518060000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a9286796c60534f545b60646a6f74797d818487898b8c8b8a8986827d766e695f584e443a3021180e030000000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeac9f9286796c5f5346392c201300000000000000000000000000000000000000000000000613202d394653606c778290959fa2aaaaacafb5ab9e9185786b5e5245382b1f120000000000000000000814212e3b4754616e7a8799978c7f757270717479808d99a69f9286796d6053463a2d201307000000020f1b27323d45515d676e7b8490959fa2a9ada9a19e9a979792908e8c8a888583817e7b787571707d8996a3b0a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000000000007121d28313d47515b606c77808b92989ea6acabaaa29f9c9b9a9a9b9da0a7a69f9892887f788693a0acafa39986796c605346392d201306000000000000000000000000000000000714212d3a46535f6976838f9ca9ada197897d7063554b4045515c6774818e9aa8ada1978a7d7064564d42362a1b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c16202d36404a52596164666d6e6e6e6e6e6e6d685e5246392d2013070000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3b3b3a3a3a38342e363433312f2d2c29242522201f1b171413110d0706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2b353d424b5153514b42392e23180c00000000000000000000000000040a0f161c2022232429313a41454e53596063696e7276797b7d7e7f7f7e7d7b78746e69605c544b433a2f241b0b02000000000004101d2935404b55636f7c8985796d6053473d32271c10000000000000000000000000000000000000000000000000000000000006121f2c3844505c66717e8b96a0a39f9b999b9fa4aa9c8f8376675d5145392c201306000000000000000000000000020d18242f3a434e58616b707c848b90959697989797928e89837d756e69615a514b433b332b2317110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303846525d68738082766874818e908490968a7d7063574a3d3024170a0000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b99877a6d6054474a5053586062676d7075787a7d7e7f7e7d7c7976706c615f574e463c32281e0f06000000000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a79f9286796c5f5346392c20130000000000000000000000000000000000000000000004111d2935404b5564717e8b949fa7aeaca9a7a5a4a39e9185786b5e5245382b1f120000000000000000000713202d3a4653606d7986939285786c65646468727f8c99a59d908377665c5145382c1f1306000000000a15202935404b555e696e7b838c92979ea1a9ababa7a9a29f9d9a99979892908d8b8885817e7a7d8996a3b0a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000000010d18242f39434f59626d74808d929fa2aaada69f9c9892908e8d8d8e9195999ea1a29a938b7f8b98a5b2b5a09386796d6053463a2d20130700000000000000000000000000000003101c28343f4a54616e7b87939facab9e9184786c60534639404b55636f7c8996a0aca99c8f8275695e5246382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323f48525c636c7076797b7b7b7b7b7b7a6d6154473a2e211407000006111c262f383f444648484848484848484848484847474645404442413f3e3c3a39352f312f2d2b272221201d181312100c0604010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d19232b303940454645403930271d12070000000000000000000000040a0f161b21272c2f30362e2d2f353c43474f54575e6165666d6e7071727271706e6967615f57514a423a31281d1209000000000000010d18242f394854606b77838b7e7164594f44382c1c12070000000000000000000000000000000000000000000000000000000003101c28343f4a54606d7884919ea4aca7a6a8acaea3988c7f7265554b4035291d11040000000000000000000000000007131d28313d464f59616a6f787e83878a8b8b8b8885817c76706b615e57504540393129211911060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d17232e38424e58616d7a8584776a707d8a95909595887b6e6255483b2f2215080000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c94877b6e6154483f44464e54555d606468686e70717272716f6d6764615a534d453c342a20160c00000000000714212e3a4754616d7a8794999999999999999999999999999999999999999b9f9286796c5f5346392c2013000000000000000000000000000000000000000000000613202c3945515d6776838f9ca6aba39f9d9a9897979e9185786b5e5245382b1f1200000000000000000006131f2c3845515c67788491908376665b5b666e7b85929eaa9a8d807467544b4034281c100400000000040d18242f3a434d575e696e787f858d92979b9ea1a9a5a7a9a9a7a5aaa29f9d9a9897928e8a8683909da9b5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e080000000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e11000000000004101d2935404b55606b727f8c929da4aea9a19e94908a86838180818284878c91979fa49f9386939facb9aca09386796d6053463a2d20130700000000000000000000000000000006121f2b3844505c6673808d9aa4afa79a8d8073665b504438394854606b7784919dabac9f92867b6e6153493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a44505a636e737d83868787878787878175685b4f4235281c0f00000b17222d38424a5053545454545454545454545454545453514b504f4e4c4b49474541403e3b3937332d2d2c2924201f1c1713110d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000711191e272e34383a38342e271e150b0000000000000000000002080d151b21272c33383c3d433b3a373132373d44484d5254545c6062636565656463625f5755534d44403930281f160c000000000000000007121d2c38444f5964717e8b83776b605448392e23180c00000000000000000000000000000000000000000000000000000000000c17232e3844505c66707d89929da6afb2b5b2a89f92867a6d6154473a2f24180d0100000000000000000000000000010c161f2b343e474f585f666d71777a7d7e7f7e7c79746f6b636059524d453e352f271f180f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f28343f4a545f6a74818d84776a6d7985929da097867a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d95887b6e6255483b383d43474b515357565e61636465656463605c55555047423c332a22190e0500000000000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8e939286796c5f5346392c2013000000000000000000000000000000000000000000000714202d3a4753606d7a86929fa59e9992908d8b8a8a929185786b5e5245382b1f1200000000000000000004101c2834404b556976828f908377695f656c78828f97a2a298897d7063564a3d2e23180c00000000000007131d28313b454d575e666d727a80858a8e929797999a9c9e9fa3aba4a6a8a7a9a19e9b989290959fabb5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaa9e9184776b5e51442f24190d0100000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e1100000000000613202c3945515d676f7d87939fa4aea7a097928a837d797674747475777b7f858d939aa39a939aa4afbbada093867a6d6053473a2d2014070000000000000000000000000000000713202d3a4653606d7984919eacaca095887c6f62544a3f3338434f5966737f8c99a4afa3998c7f73655b5044372b1f13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56626d73808a90939a949494948e8275685b4f4235281c0f00030f1c28333f4a545b606161616161616161616161616160605c545d5c5b59575654524c4d4b4846443f3d3a39352f2d2c2823201d18130e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c151d23282c2d2c28231d150c03000000000000000000040c131920262b32383d44484a504846423c332b32383b4246484a50535557585859585755534d4846423b342e271e160d040000000000000000010f1b27323d4653606d7984897d7063544a4034281c10040000000000000000000000000000000000000000000000000000000006111c28343f4a54606b74808d949ea5abaca8a0968d8074685e5246392d1d1307000000000000000000000000000000040d19222c353e464e545c6065686e707172716f6d66636059544f46423b3329241d150d0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a44505c666f7c878f8376696676828f9c9e928578675d5145392c1f13060000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e95887b6f6255483c2f3237394045474a4c525456585958575653514b49443e37312a211910070000000000000714202d3a4753606d79808080808080808080808080808080808080808080818e9286796c5f5346392c2013000000000000000000000000000000000000000000000815222f3b4855626e7b8899a39d938e8783807f7e7e869184786b5e5145382b1e12000000000000000000000c18232e404d596673808c92877b6e696e77808d949fa99f9285796d6053473a2d201407000000000000010c161f29333b454d545c60686d73797d8185878a8c8e8f91929996989a9c9ea1a8a5aaa39f9d9fa7b1b5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adab9e9185786b564c4135291d110400000714202d3a4753606d7a8693a0adaa9e9184776b5e5144382b1e110000000005121e2a36424d57606d79849199a4afa8a09590857d76706d6768676768696e727980889298a39fa4acb6c0ada093867a6d6053473a2d201407000000000000000000000000000005111e2a36414c5663707d8a96a1adac9d9184776a5f5442382d323d4854616e7b87939facab9e9184786c6053463a3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e68717e8b929c9fa4a1a1a19b8e8275685b4f4235281c0f0006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6d6d6d666b6a6967666462605d565a58555350494a4745413c3a38342e2c29241d1a150e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f201f1c18120b03000000000000000000040e161e242932373d43484f54565d55534d453c31272c30363a3b3f4446484a4b4c4c4b4a4847423c3a363128231c150c04000000000000000000000b161f2c3844515c66727f8c8276665c5144382c1f120600000000000000000000000000000000000000000000000000000000000c17232e38424f59606d78828e939c9f9f9d969184796d60564c41362a1e0c010000000000000000000000000000000007101a232c343c424a5153565e616364656462605c54544f48443d3630292018120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000081118242f3a434e58606d7883908e8174676673808c999d9083776a554b4035291d1004000000000000000000000000000000000000000000000000000000000004101c2834404a546a76839094887b6e6155483b2e272b2f35383a3d4146474a4b4c4b4a494745403939332b261f180f070000000000000006131f2c3945515d676d7373737373737373737373737373737373737373737d899286796c5f5346392c201300000000000000000000000000000000000000000000091623303c4956636f7c89969d928d817b767472717c889184776b5e5144382b1e1100000000000000000000071623303d495663707c899790837b787b828d929da6a99c8f8275675c5145382c1f130600000000000000070d172129333b424a51565e61666d7075787b7d7f8183848687898b8d8f919696999c9fa2a9a9afb7b5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adac9f928679685d5245392c20130700000714212d3a4754606d7a8793a0adaa9e9184776b5e5144382b1e11000000000714202d3a46525e6973808c96a0abaaa09690837b706c64605c555a5a565e61676d747e869299a3afb6beb9ada093867a6d6053473a2d20140700000000000000000000000000000714202d3946525e6875828f9ba9afa49a8c7f7366584e432f262d3a46525e6976828f9caaaca096897d7063564c4135291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a85929fa4acafb6aea89b8e8275685b4f4235281c0f000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7a7a79797877757472716f6d6869676462605b535654514b4946443f3a39352f2b2620180f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131313100c0700000000000000000000020c16202830353c43474f5459606369615f574d42372b20252a2d2e34383a3b3d3e3f3f3e3d3b3a37312d2a261f18120b03000000000000000000000004101c2834404a54606d7a8581796d6053463a2d201307000000000000000000000000000000000000000000000000000000000006111c26303d45515c666d79818a8f9292908c847b6e675d51443a3025190d00000000000000000000000000000000000008111a222a30394044464c5254575858585553504a48433d38322a251f170e070100000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b0e0b0a08101a232935404b555f6a727f8c958b7e726564717e8a979b8e8275685b4f422f24180c00000000000000000000000000000000000000000000000000000000000006121f2c3844515c6678859199877a6d6154473a2e211d24292c2d3036393b3d3e3f3f3e3c3a38342f2d28221a150e06000000000000000004101d2935404b555d606666666666666666666666666666666666666666707d8a9286796c5f5346392c2013000000000000000000000000000000000000000000000916232f3c4956626f7c8995998d80756e696766727f8c9184776a5e5144372b1e11000000000000000000000713202d3a4653606d79859295908785878f939da4ada1978a7d7164554b4034291c100400000000000007101920272b2e303940444c52545c606468696e7072747678797b7c7e80828487898c8f92979b9ea5afb5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adaea398877a6d6054473a2d21140600000714212e3a4754616d7a8794a0adaa9d9184776a5e5144372b1e1100000004111d2935414c56616e7b86929fa8aea29891847a6e69615a53514b4d4e4d52555d606c717d87929fa7b1bcb9ada093867a6d6053473a2d20140700000000000000000000000000000814212e3b4754616e7a86929facac9f93877b6e6154483c32212a36424d5764717e8b98a2aea89b8e8175685e5246392d20160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5866737f8c98a2aba9a6a6a6a69b8e8275685b4f4235281c0f000714212e3a4754616d7a87878787878787878787878787878685848382817f7e7c7a787673716e6c656663605d555653504a4745403a37312a21180e030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607060400000000000000000000000008131e28323a41454e545960636b70766e695f53463c31261b1e2023282b2d2f3032323231302f2e2b26211e1a140c0700000000000000000000000000000c18232e3945515d676e7b756d665c5144382c1f12060000000000000000000000000000000000000000000000000000000000000a151e2834404b545c676d757d828585837f796e695f554b4132291e1308000000000000000000000000000000000000000810181e272e34383b4146474a4b4c4b4946443f3c3b38322b231a140d050000000000000000000000000000000000000000000000000000000000000000000000000000000000070c101313181b18171518222b353d45515d676f7c879295887b6e61636f7c89969a8d8073675a4d4034271a070000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939386796c605346392d2013181d1f20252a2d2e3031323231302d2c29231d1c170e0903000000000000000000000c18242f39434b51535959595959595959595959595959595959595964717e8b9285796c5f5246392c1f13000000000000000000000000000000000000000000000815222f3b4855626e7b889a92867a6d615e606b7783909083776a5d5044372a1d110000000000000000000006131f2c3845515c6674818d9a9a9391939a9ea6aea89e9185796d6053463a2f23180c000000000000040f19222b32373b3c404547484a4a515357575e6164666769666d6e70717375787a7c7f8285898e939ea9b5a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adb4aa95897c6f6256493c2e23170c01000814212e3b4754616e7a8794a1adaa9d9184776a5e5144372b1e110000000613202c3945525d6874808d98a3aea99f92867c6e685e5750464540414142464b515a616b727f8c959fabb8b9ada093867a6d6053473a2d2014070000000000000000000000000007131f2c38444f5966727f8c99a3afab9c908376695e53463a2d2125303b4753606d7985929facac9f92867a6d6154473d32271b0f01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b47535f6a7784919ea79f9d99999999998e8275685b4f4235281c0f000714212e3a4754616d7a8794949494949494949494949493989291908f8e8c8a89878482807e7b797673706d676663605c5453514b47423c332a201509000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a444c52585f626b6f767d837b6e61584e43372b201614171c1f202224252526252422211e1a15120e090300000000000000000000000000000007121c2935414c555e696e69605c544a4034281c1004000000000000000000000000000000000000000000000000000000000000030c18232e39424b555c606b7076787977726d675f574d433a2f20170d020000000000000000000000000000000000000000060c151c23282c3036393b3d3e3f3e3c4347484948433d352b1e140a00000000000000000000000000000000000000000000000000000000000000000000000000000000060b12181c1f202528252421212a343d47515b606d79839199908377695f626e7b8895988b7f7265584c3f3225190c0000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8899918578665b5044382b1f120c101314191e2021232526252423201f1c1812100b0500000000000000000000000007121d2731394045474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d5966737f8c9285796c5f5246392c1f13000000000000000000000000000000000000000000000714202d3a4753606d7a8693918578685e5c666f7c89958f8275695c4f4236291c0f0000000000000000000004101c2834404b54626f7c88949e9f9e9fa4acb0aca1968c7f72665c5144382c1d12070000000000000a15202b343d4347494b51535557595a575550535457595b545c606163656769686d707275797c818e9ba7b4a99c8f8276695c4f4336291c10030000000714212d3a4754606d7a8793a0adb1a4988b7e7165544a3f34281c120c070715222f3c4855626f7b8895a2aeaa9d9084776a5d5144372a1e110000000714212d3a4754606d7a86929faaada1978c7f726a5f564d453e38342e30363940455059606c7883909da7b1bcada093867a6d6053473a2d201407000000000000000000000000000915222f3b4854606b7784919dabaea3998b7e7265574d42362a1e1f2c3945515d6774818e9ba8aea3988b7f7265584e43382c1d1307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8896a09d95908d8c8c8c8c8c8175685b4f4235281c0f000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a0aaa29f9e9d9c9a99979596918f8d8b888583807d7a77736f6d6664605d55534e453c31261a0e01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d606a6f757c82898e81756a5f53473d32271b0f0b101213151718191918171514120e0905020000000000000000000000000000000000000d19242f3a434d575e615e57514a42392e23180c000000000000000000000000000000000000000000000000000000000000000007121d273039434b51596163696c6c6a66605d554d453b31281d0e0500000000000000000000000000000000000000000000030b12181c1f252a2d2e31363c42474e535556544f473d30261c110600000000000000000000000000000000000000000000000000000000000000000000000000020a11171d23282c2d313431302d2a333c464f59626d75818e95978b7f726557616e7b8794978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a9790837669544a3f33281c0f030406080e1114141718191817161413100c07010000000000000000000000000000010b151f272f35393a40404040404040404040404040404040424d576874818e9285786c5f5245392c1f12000000000000000000000000000000000000000000000613202c3945515d6777849192867a6d66666d7882909a8e8174675b4e4134281b0e00000000000000000000000c18232e3947535f6a75828f98a2abacafb5afa49a9184796d60544a4034281c0b010000000000030f1b27323d464e5456555d606264656764615a50484a4c4e4a50535456585a565d606366666d707c8996a3afa89c8f8275695c4f4236291c0f030000000714212d3a4754606d7a8793a0adb4a79b8e8174665c5044382d241d1816151823303d4a5663707d8996a3b0a99d9083766a5d5043372a1d10000004111d2935414b5565717e8b98a2aeab9e9185796d60574e443b332c2823252a2f353e44505b66707d8995a0acb8ada093867a6d6053473a2d20140700000000000000000000000004111d2935414c55636f7c8996a0acac9f92867a6d6154473b31251a1d2935404b5563707c8996a0acaa9d9084776a6054483a2f24180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b989d928d838080808080807e7164574a3e3124170b000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeadb4aeacabaaa8a7a5a4a8a19e9c9a9798928f8d898683807c7975716d67625f574e42372b1d130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d686d757c82898f9493877c6f62584e43372b1d1307030607080a0b0c0c0b0a0808060200000000000000000000000000000000000000000008131e28313b454d5254524d44403930271c120700000000000000000000000000000000000000000000000000000000000000040a0b151e27313940454f55575c5f5f5d5953514b433b33291f160c00000000000000000000000000000000000000000000000000070c1017202930363b42464d53585f626360594f42382e23170b000000000000000000000000000000000000000000000000000000000000000000000000060b141c22282e34383a3e413e3d39333c454e58606b727f8c939e92857a6d6054616e7b879495887c6f6255493c2f2216090000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c998e8174685b4e412d22170b00000000020507080a0b0c0c0b09070604000000000000000000000000000000000000030d151d24292c2d33333333333333333333333333332f3846535f697784919285786b5f5245382c1f120000000000000000000000000000000000000000000004111d2935404b556774818e998e8078737378808d94998c7f7266594c3f3326190c000000000000000000000007121d2b37434e58616e7b86929fa3abacaba39f93887d70675d5142392e23180c00000000000006131f2b37434e58606269676d6f707274706c6155493d3f413f444648494b4d4c525456545c636f7c8996a2afa89c8f8275695c4f4236291c0f030000000714212d3a4754606d7a8793a0adb8ab9e9285796d60544a3f352f29242222232834404b5465727f8b98a5b2a99c8f8376695c504336291d1000000613202c3945515d6776838f9caab2a8998c8073675c51453c3229211c18191d2429333f4a54606b7783909daab7ada093867a6d6053473a2d2014070000000000000000000000000613202c3945515d6774818e9ba8b2aa9b8f8275685d524639291f1418242f394653606c7884919eaaaca095897c6f62554b4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2934404b556875828e9b948d8076737373737373716c6155493c3023170a000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6aaacb1b9bab8b7b6b5b4adaeb2adaba9a6aaa29f9c999992908d8985827e7a756e6a5f53473a2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a81878f949c9f9a8f82756a6054473a2f24180d0100000000000000000000000000000000000000000000000000000000000000000000010c161f29333b42464746423b342e271e150b00000000000000000000000000000000000000000000000000000000000003090e151b1d262d3338393e44484a4f5252504c47454039312921170d04000000000000000000000000000000000000000000000000000008141f29323b41464d53575f616a6f6f6b60544a3f34281d120700000000000000000000000000000000000000000000000000000000000000000000080f181d262d33394045464b4e4b49453e454d575f6a707d87929f968c7f72675d55616e7b889498877a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000005111d2a36414c566875828f998c7f7266594c3f33261906000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f20262626262626262626262626222d38424d57616e7b88959184786b5e5145382b1e1200000000000000000000000000000000000000000000010d18242f3d4a5763707d8a97928e838080848d929d9a8a7d7063574a3d3024170a0000000000000000000000000f1b26313c47535f69717e8b92999e9f9e99928c7f736b60554b4030271c12070000000000000815222e3b4754606a6f76787a7b7d7f817e7064564c41352e34383a3b3d3e40414547494a5763707d8a96a3b0a89b8f8275685c4f4235291c0f020000000714212d3a4754606d7a8793a0adb9ada1978a7d70665b50454039352f2f2e2e343c45515c6675818e9ba8b4a89b8e8275685b4f4235281c0f00000714212d3a4754606d7a86929facaca196887b6f62554b40332a2017100c0e1218222d38424f5966737f8c99a9b3ada093867a6d6053473a2d2014070000000000000000000000000714212d3a4754606d7a86929facaea2988a7d7164564c413529170d121f2b3744505b6573808c99a6b0a79a8e8174675d5145392c20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c677784919c9082786c66666666666664615a5045392d211408000714212e3a4754616d7a879499999999999999999da0a7b1bcbfbaafaaa8a1a1a3a5a7a9abadaeaba9aba39f9d9997928e8a86817c6e62554b4035291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7984919a9ea6ac9e93897c6f62554b4035291d11040000000000000000000000000000000000000000000000000000000000000000000000040d17202930363a3b3a363028231c150c030000000000000000000000000000000000000000000000000000000000050d141a20272b2f383f44464b504645404546443f3a39352f281f170f060000000000000000000000000000000000000000000000000000020e1925303b444d52575e61696e757b7d6f665c5044392e23180c01000000000000000000000000000000000000000000000000000000000000000109121a212a2f383f444b5153585b585650454f575f696f7c8692999a9184796d605555626f7b8895928579685e5246392d20130700000000000000000000000000000000000000000000000000000000000713202d3946525e68778491978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000001070c1013141a1a1a1a1a1a1a1a1a1a192328333f4a545e6973808d999084776a5d5144372a1e1100000000000000000000000000000000000000000000000713202d3a4653606d7984919e95908d8d91959d9f93877a6d6154473a2e2114070000000000000000000000010a15202b37424d57626c727f878e9192918e877f736d63594f43392f1e150b000000000000000916232f3c4956626f7c828586888a8c8d8276685e52463a30282b2d2e30322f35393a3e4b5764717e8a97a4b1a89b8e8275685b4f4235281c0f020000000714212d3a4754606d7a8793a0adbeb3a99d9083786c605a514b45403d3c3b3c40454d57606d7985929eabb3a69a8d8073675a4d4034271a0d00000a1724303d4a5763707d8a99a3aeab9e9184786a5f5343392e21180e05000107111c262f3d4855626f7c8897a2adada093867a6d6053473a2d201407000000000000000000000006121f2b37434e5865717e8b98a2aeab9f9285796d6053473a302419070f1b27333f4953616e7b88949fabac9f92857a6d6054473c31261b0f01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a869296897d70665b5959595959575550483e33281c1105000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c9195a0acb8b4aea59e9b949496989a9c9fa2a9a6a8abadacaaa9a29f9b98928e8174675d5145392c2014090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b66717e8a95a0aca79f9c8f8276675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000050e171f252a2d2e2d2a251f18120b030000000000000000000000000000000000000000000000000000000000050f171f252a32373e424a5053585c53514b42392e332d2c29241d160d0600000000000000000000000000000000000000000000000000000005111e2a36414d565e61696e747b818684786d60544b4034281d12070000000000000000000000000000000000000000000000000000000000000009131b242c333c424a50555c60646764615a515960696e7b8591989f93887d70675c5156626f7c89959184776a564c4135291d110500000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a879697877b6e6154483b2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000406070d0d0d0d0d0d0d0d0b16212b353d44505b666e7b86929c8f8376695c504336291d10000000000000000000000000000000000000000000000006131f2c3845515c66727f8c96a09d99999da0a79d908376685e5246392d20130700000000000000000000040c12181e26313c45505a626d727c81858684817c726d635b51473d31271d0c03000000000000000814212e3b4754616e7a87919795979892867a6d61564c4136312d2c2924292c2d3038424d576673808c99a6b3a79b8e8174685b4e4135281b0e020000000714212d3a4754606d7a8793a0adbab8aca0958c7f726c605d55514b4a4948494b51575f69727e8b97a1adb1a7988b7e7165584b3e3225180b00000d1a2633404d596673808c99abb5a89b8e817568584e4330271d0f06000000000a14202d394653606c7985929fabada093867a6d6053473a2d20140700000000000000000000000815212e3a47535f6a7683909daab2a89b8e8174675c514538281e13080b17222d3846535f697683909caaaea2988b7e7165584e43372b1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b88999184786c60544a4d4d4d4d4a49453e362c22170c00000714202d3a4753606d798080808080808080808083919daab3aaa29f938e8787898b8d90929796999c9ea1a9a7aaacabaaa29f92857a6d6053473c31261a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54606c7883909da09d959089827a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000050d141a1e2021201e1a140c07000000000000000000000000000000000000000000000000000000000000030d17212931363c43474f545b606469605c544b40342820201d18120c04000000000000000000000000000000000000000000000000000000000714202d3946525e686e747b81878e938b7e71665c5145392f24180c00000000000000000000000000000000000000000000000000000000000009131b252d363e454e545b60676d7174716c615c606b6f7b8491979f958d80746b60554b5663707d89968f8276695c4f433025190d0100000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96928578695e53463a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c27333d47505a606c78828f989b8e8175685b4e4235281b0f000000000000000000000000000000000000000000000004101c2834404b54606d7984919aa4a6a6aaaca1978b7f7265564c41362a1e1105000000000000000000040d161d24292f353a4146515b626a6f75787978746e6a625b514940352c1f150b00000000000000000714202d3946525e687784919da9a3a3998c7f73685d5246423c3a38342f35393a3c424a535e6976828f9ca9b3a69a8d8073675a4d4034271a0d010000000714212d3a4754606d7a8793a0adb7afaaa79f93887e746d67605d5556555555555c60696e7b85929fa9b3aca095887b6e6155483b2e22150800020f1c2935424f5c6875828f9ba8b2a5998c7f7266594c3f3126150b000000000006121f2b3844505b667683909ca9ada093867a6d6053473a2d2014070000000000000000000004101c2834404b54626f7c88959fabada196897d7063554b403429160c0206111b2a36424d5765717e8b98a2aeaa9d9083766a5f5347392f23180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a978e8174655b5042404040403e3c39332c241a1005000006131f2c3945515d676d7373737373737373737a85929faca9a198928b817a7b7d7f818385878a8c8f9197979a9da0a8a8aba2988b7e7164574d42372b1c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3844505b66717e8a9595908a837d766d675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000000002090e11141414110e09020000000000000000000000000000000000000000000000000000000000000009141f29333b42464e545961666c71766d665c51453a302419100d070100000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a80868e92999e9184796d60554b4035291d10040000000000000000000000000000000000000000000000000000000007101b252d373f4850575f666c71797e817e716b666d737d859196a1979083796d60594f4b5864717e8b978d8174675a4e4134271b08000000000000000000000000000000000000000000000000000000000003101c28343f4a546673808c998f827569574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f59626c73808d949f998c807366594d4033261a0d0000000000000000000000000000000000000000000000000c18232e3945515d67707d88939fa2a9aaa29a91857a6d6054473a3025190d010000000000000000010c161f282f353a41454c52565e616162686b6c6b67625f58514940372e231a0d03000000000000000005111e2a36414d5666737f8c9aa4afab9e92857a6d605c534d4847454044404547494e545c616e7b87929facb5ab988c7f7265594c3f3226190c000000000714212d3a4754606d7a8793a0adafa59e9b9e9a938b8179726d67656362616264676d727b849197a2adb3a99d908477695f53463a2d2114070004101c2834404a546a7784909daab0a3978a7d7064574a3d3124170a0000000000030f1c28333f4a546774818e9aa7ada093867a6d6053473a2d2014070000000000000000000006131f2c3845515c6674808d9aa7b1ab9e9184786c605346392f23180600000e1a26313b4754606d7a86929facab9f95887c6f62554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b988b7e716553493f2f33333331302d28221a120800000004101d2935404b555d60666666666666666773808d98a2a9a19792867e756e6e70727476787b7d7f8285878a8d9196979b9ea19c908376695f5346382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28333f4a54606c7883908a837d76706b605d554b4035291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000020507080705020000000000000000000000000000000000000000000000000000000000000000020e1a25313b454d535860626b70787e83786d60564c4135291f1409000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818d92999fa3a1968b7f72675d5145392c1f1306000000000000000000000000000000000000000000000000000000030d19232d373f49515a616a6e787e858b8e8a7d7273797f879297a19891857b6e675c51474c5966737f8c988c7f7265594c3f3226190c000000000000000000000000000000000000000000000000000000000006121f2b3844505c6676828f998c807366594d4031251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4854606b717e8b929ca6978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000007121d2935404b55616b727f8b92979a9a9892887e70675d514539291e130800000000000000000007121d28313940454c52565e61686e6e695f5e5f5e5b55534e463f37312a21180e030000000000000000020e1925303b4854616e7b87939fabada1978e81756e615e575553514b514b5153565860666d75818e99a3afaea3998a7d7063574a3d3024170a000000000714212d3a4754606d7a8793a0adaa9e938e939e9f938e847f797572706f6e6f7174797f869196a0a9b3ada2978c7f7265574d42362a1e12050006121f2c3844515c667885929fabafa295887c6f6255493c2f2216090000000000000b17222d404d596673808c99a6ada093867a6d6053473a2d201407000000000000000000000713202d3a4653606d7985929eabb1a79a8d8073665b5044382b1f120700000914202c3945515d6775818e9ba8b1a79a8d8074675c5145382c1f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1a2734404d5a6773808d99887c6f6255493c2d2626262423211c17100800000000000c18242f39434b5153595959595959606d7985929faaa19791857c716c616163656769696e707375787b7e8184878b8e92979994887b6e61544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3844505b65707e847e78706c636059514b433a2f24180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d575e616a6f767d838b8c7f72685d52453b31261a0e010000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b87929fabada89e9185796d6053473a2d2014070000000000000000000000000000000000000000000000000000010b151f2b353f49515b626c717c838b91979a92857f80848c9299a19892867c6f695e554b404e5a6774818d978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929a8a7d7063574a3d302417090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d87929fa4a196887b6e6155483b2e221508000000000000000000000000000000000000000000000000000d18242f39434f59636d727e858b8d8d8b867e716c61554b413529170d020000000000000000010d18242f39434b51565d60686d737a7b6e61594f514e4847474847423c332a1f15090000000000000000000814212d3a46535e6975818e99a3afa99e938c80756e696462605c555e555d6063656a6f78808d939eabb5ac9f92867a6d6053473a2d201407000000000714212d3a4754606d7a8793a0ada89b8e818e95a09d96918b85827e7d7c7b7c7e81858c9298a0a8b2b0a69e92857a6d6054473b31261a0e02000713202d3a4653606d798697a2adaea194877b6e6154483b2e211508000000000000061925323f4c5865727f8b98a5ada093867a6d6053473a2d20140700000000000000000005121e2a36424d5764717e8a97a1adaca095887c6f62544a3f33281c0f03000004111d2935414c5563707d8996a1adab9f9285796d6053473c31261a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e93867a6d6053473a2d201a1a171714110c0500000000000007121d2731394045474d4d4d4d4d5764717e8a97a2a29891857b6f6a625a5456585a575e61636669696e7174777b7e8185888c908c8073665b5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c27333f4953606c7779716c65615a544f45403a31281d130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e696e757c828a909592857a6d60574d42362a1e13080000000000000000000000000000000000000000000000000000000000000714212d3a46535f6974818e99a3a19e96918b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000007121d27313d47515b626d727e8690959ea1a197928b8d91969fa29992867d706a60574d43414c566976828f95887c6f6255493c2f22160900000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c889893867a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a95a0a99e918478695f53473a2d2114080000000000000000000000000000000000000000000000000007121d28313e47515b636c717a7e81817f7a716c625a50433a2f24180500000000000000000004101d2935404b555d60686d737a808582766b605448454c525455534d453c31261a0b02000000000000000005121e2a36424d57626f7c87929fa6afa59c928c817b75716f6d676b6a6b676d6f72777c838d929ca5afb0a69b8f8275675d5145392c201306000000000714212d3a4754606d7a8793a0ada094877a839096a0a19e97928f8b898888888a8d92979fa2aab2afa69e948b7e72675d514539291f140900000714212d3a4754606d7a8793a9b3ada094877a6d6154473a2e2114070000000000000b1825323e4b5865717e8b98a4ada093867a6d6053473a2d2014070000000000000000000714212d3a46535e6976828f9ca9b3ac9d9084776a5f5342382d22170b000000010d19242f3a4653606c7884919eabada2978a7e7164574d42372b1c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101d293643505c6976838f918478675d5145382c1f130d0b0a08050000000000000000010b151f272f35393a404040424d576875828e9ba69f92867c6f69605850484a4c4e4d52545759575e616467696e7175787c7f838684796c605346392d20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3844505b656c6d66605b535048443d352f281f160c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b81878f949da0978d8073695f53463a2f24190d01000000000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86929e97918b847e786d6053463a2d20130700000000000000000000000000000000000000000000000000000c18232f39434f59626d727f8a92989fa7ada9a19e98999ea1a19892877d706b60584e453b46525d6878859197877a6d6054473a2d2114070000000000000000000000000000000000000000000000000000000009101c28343f4a5465727f8c98908377685e5246392d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4855616b7783909da1978c7f7266574d42372b1e120600000000000000000000000000000000000000000000000000010c161f2c353f49515a62686d717474726e68625a50483e31281d13070000000000000000000613202c3945515d676d727a80858d92897c6f63594f51565e61615f574d42372b1d140a0000000000000000020e1a25313b47535f6a73808d949fa7aea49c938e86827e7c7a78787778797a7c7f838890959ca4aeb3a99f94897d7063554b4035291d1104000000000714212d3a4754606d7a8793a0ada093867a7a8490959ea5a29f9b9896959495979a9ea1a9aeb1aba59d948f82776c60554b413529180d0300000714212e3a4754616d7a8794a0adada093867a6d6053473a2d2014070000000000000b1824313e4b5764717e8a97a4ada093867a6d6053473a2d2014070000000000000000030f1c28333f4a54616e7b87939facafa49a8c7f7266584e432f261c11060000000008131f2b3844505b6673808d99a7b1a99c8f8276695f5346382e23170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111e2a3744515d6a7784908f837669554b4035291d100400000000000000000000000000030d151d24292c2d33333a46535e697884919e9f948b7e716a5f574e463e3d3f414246484a4c4d535457575e6164656c6f73767a7e7b6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b27333f49535b60605c545049413e383329241d160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b86929a9fa6a99f92867b6e61564c4135291d11040000000000000000000000000000000000000000000000000000000000020e1a26313b46535f6974818e928c847f79716d665c5044382b1f12060000000000000000000000000000000000000000000000000004101c2934404b55606b727f8b919fa2aab1b9b3adaba5a6a8a09792867d706b61594f463c3a4754616d7a8797918578675d5145392c20130600000000000000000000000000000000000000000000000000000009121b202c3844505c6675828f9a8d807367564c42392e23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202c38444f5964717e8a969e92857a6d6054473c31261a0e020000000000000000000000000000000000000000000000000000040d1a232e373f4850565d6065676765615e5650483e362c1f160c010000000000000000000714202d3a4753606d797f858c92989c9083766b61555d60686d6e695f53473e2f261c1106000000000000000009141f2b37434e58606d788290959ea5aca59e99928f8b8886858484848586898c90959d9fa7aeb0a9a2978f82766b6055433a2f24180d01000000000714212d3a4754606d7a8793a0a8a093867a6e7b838e939ea0a8a8a5a3a2a1a2a4a7abadadaba79f9d938e82796d655b50433a2f2418060000000714212d3a4754606d7a8793aab4ada093867a6d6053473a2d2014070000000000000b1825313e4b5864717e8b97a4ada093867a6d6053473a2d201407000000000000000006121f2b3844505b6673808c99a4afac9f93877b6e6154483c3221140a0000000000030f1c28333f4a54626e7b88959fabac9f93877b6e61544a3f34281c100300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b546b7885918e8174685b4e412f24180c000000000000000000000000000000030b12181d1f20262e3b4854616e7b8796a19c8f82766c62584e453c34303230363a3b3d404246484b4d5254535b606266686d716e695e52463a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d384149505353504a443f382f2c272118130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a74808d97a2ada9a2998e8175685d5245392c20130700000000000000000000000000000000000000000000000000000000000009141f2a36424d57616e7b87857f79726d66605c544a3f34281c10030000000000000000000000000000000000000000000000000006131f2c3845515c676f7d87929fa3aeb4bcc2beb9b4aea59e9691857c706b61594f473d343c4956636f7c899690837669554c4135291d1104000000000000000000000000000000000000000000000000000006111b242d323a4653606d798592998a7d70635c544a4034281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e4653606c788491948b7e71675d5145392a1f15090000000000000000000000000000000000000000000000000000000008111c252e363f444c5254585a5a5854524c443e362d241a0d04000000000000000000020f1c2935424f5c6875828c92979fa29f948a7d706560676d737a7b6e61594f42382d22170b0100000000000000030f1a26313c44515c666d7a838e939ea1a8aba39f9c97999392919191929896989d9fa7abb1aca69f9792857b6e61594f4431281d130700000000000714212d3a4754606d7a87939b9b9b93867a6d6e79818a91969c9fa2aaa7a8a8a8a8a6a9a29f9b95908981796d675d53493f31281d13070000000613202d394653606c798698a2aeada093877a6d6054473a2d2114070000000000000b1825323e4b5865717e8b98a4ada093867a6d6053473a2d20140700000000000000000613202d394653606c7884919eabb4aa9c908376695e53463a2d2114020000000000000b17222d3847535f6a7683909daaafa49a8d8073665c5044382c1f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c667986928d8073665a4d4033271a070000000000000000000000000000000001070c10131623303d495663707c8996a297897c6f635a50463c332a2529252a2d2e3031363a3b3e42464849505355565e6164615e564d42362a1e110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f444646443f38332d261d1c160d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e58616d7a85929fa29f97928c847a6d6054473a2d211407000000000000000000000000000000000000000000000000000000000000030e1a26313b46535e69707d7a726d67605c54504a42382e23170b0000000000000000000000000000000000000000000000000003101c28343f4a54606d79849199a3afbabfc6bfbab1aaa39f938e847b6f6a60594f473e35323f4c5965727f8c988e8174675b4e412f24190d0100000000000000000000000000000000000000000000000000010c18222d363f444c56636f7c899892867a756d665c5144382c1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161f2b3844505b66717e8b8f82756c62554c413529180e0300000000000000000000000000000000000000000000000000000000000a131c242d323a4145474b4e4e4c4746413b322d241b120800000000000000000000000a1623303d495663707d89949fa9aea69d9083786c6d727a808582766b61544a3f33281d120700000000000000000a15202834404a545d686d79818a91969da0a7a9a8aba49f9e9e9d9e9fa2aaa5aaabacaba7a09d9490857c6f695e53473d331f160c0100000000000714212d3a4754606d7a878e8e8e8e8e867a6d676d757d848a8f9298989a9b9c9b9b9a9897928e89837d746d675d554b41382d1f160c0100000006121f2b3844505b667985929facaea194877b6e6154483b2e2115080000000000000c1926323f4c5965727f8c98a5ada093867a6d6053473a2d2014070000000000000005111d2935414c5663707d8996a1acaea3988b7e7165574d42362a1e120500000000000006111c2b37424e5765727e8b98a3aeac9e9185796d6053463b30251a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986998c7f7366594c403326190d00000000000000000000000000000000000000040b1724313e4a5764717d8a979e9285796c6053463f3b3a3631363535352e34383a3c3e42464847464446494c52545754524d443b3025190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3337393a38342e27221b140b0b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a26313c46525e68727f8c9698928c857f796d685d5245392c2013070000000000000000000000000000000000000000000000000000000000000009141f2a36424d57616b706d67605d55514b443f3830261c11060000000000000000000000000000000000000000000000000006121f2c3844505c66727f8c96a0abb5c0c1bcb4aea79f98928b81796e6960584f473e352a36414c566875828e998c7f7266594c3f33261908000000000000000000000000000000000000000000000000000005111d29343f4850565e66737f8c9991837f82786d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7984857a6e615a50433a2f241906000000000000000000000000000000000000000000000000000000000000010a121b20282f35393a3e41413f3b39363029201b12090000000000000000000000000916222f3b4854606b76828f9ca6a29f97928a7d71797f858c928a7d70665b5044392f23180c0000000000000000030c18232e39424c565d676d757e848b9095999d9fa3aba5a7a8a8a8a8a8a7a6a5a8a19e9a95908a837b6f6a60574d42352c210d040000000000000714202d3a4753606d7981828282828281796d60606b70787d8286898b8d8e8f8f8e8d8b8885817c76706b605c554b433a2f261b0d0400000000030f1c28333f4a546b7784919eaaafa295887c6f6255493c2f2216060000000000010d1a2734404d5a6773808d9aa6ada093867a6d6053473a2d201407000000000000000713202d3946525e6875828e9ba8b2ac9f92867a6d6054473b31251a0e02000000000000000e1a26313c4754606d7a86929facada1978a7d7064574d42362a1b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87948c7f7266594c3f3326190c00000000000000000000000000000000000000000b1825313e4b5864717e8b979d918477685e55504a484642434242414242404546494b4d525454524d453c4146474b4746423b32291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b22272b2d2d2b28231c17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202935414c56606d7984918d86807a726d675d564c4135291d110400000000000000000000000000000000000000000000000000000000000000030e1a25313b454f596163605d55514b454039342e261e140a00000000000000000000000000000000000000000000000000000713202d3a4653606d7984919ea8b2bdbcb8afaaa29f9590867f756d675f574e463d352c2d3946525e68788591978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000915212e3a45505a62686d7683909c95918c897d7063564a3d30231706000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3845515c66727f7d70685e52483f31281e13080000000000000000000000000000000000000000000000000000000000000000090d161e24292c2d323434322e2d2a251e170e09000000000000000000000000000713202c38444f59636f7c89949f98928c857f7a7e848c92979d9083786c60554b4034291c1004000000000000000007121c27303a434c555d606c71797e83888c90929997999a9b9b9c9b9b9b99989696918d89837e776e6960584e453b31231a0f0000000000000006131f2c3945515d676d757575757575756d675c5961666c7075797c7f8081828281807e7c7974706b636059514b433a31281d140a0000000000000b17222d424f5c6975828f9ca8b0a3978a7d7064574a3d2e23170b000000000005111d2935414c566875828f9ba8ada093867a6d6053473a2d201407000000000000000714212e3a4754616d7a86929facb3a99b8f8275685d524539291f140900000000000000000915202c3945525d6875828e9ba9b3a99c8f8275695e5246382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88948c7f7265594c3f3226190c00000000000000000000000000000000000000000a1724313d4a5764707d8a979f92867a6d67605b5454534d504f4f4e4f4f4b51535558575e61615e574d4138393a3e3b3a36302920170d02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f20201f1c17110b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d1925303a44515c66707d86807a736d68605c554c443a2f24190d01000000000000000000000000000000000000000000000000000000000000000009141f29333e474f555754514b454039342e28231c140c020000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a1acbab8b1aba59e98928b837c726d605d554d453c342c212e3a4754616d7a879599887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000b1724313d4a56626c717a8087929fa09d988d8073665a4d402e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2834404b54626d72706b60564c41362d1f160c01000000000000000000000000000000000000000000000000000000000000000000040c13191d20212527272521201e19140d05000000000000000000000000000004101c27323d4854606b76828f928d85807a75818b91969ea1a0958b7e71675c5145382c1f13060000000000000000000b151e28313a434b515a61676d71777c7f8386888a8c8d8e8e8f8f8e8e8d8b898784807c77716c655e574e463d33291f11080000000000000004101d2935404b555d6068686868686868605c554f545b6064676d7072747575757573726f6c66636059544f45403930281f160b02000000000000061a2734414d5a6774808d9aa7b2a5998c7f7266544a3f34281c1003000000000713202d3946525e687784919daaada093867a6d6053473a2d20140700000000000006131f2b37434e5865727f8b99a3aeada2978a7d7064564c413529170d03000000000000000004111d2935414c5663707d8a97a1adac9f92867b6e6153493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88958b7e7265584b3f3225180c00000000000000000000000000000000000000000815222f3b4855626e7b8897a1998f8279716c6664615e575c5c5b5b5b5c545c60626567696e6e695e53493f332e312e2d2a251f170e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131312100b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2834404a54616b707b746e68605d56514b433a32281e1308000000000000000000000000000000000000000000000000000000000000000000030d17212c353e44484a4745413a352f28231d17110a020000000000000000000000000000000000000000000000000000000d192633404c5966737f8c99a8b2b1aba79f9d938f867f786f6a625b514b433b332b22202d3946525e687784909286796d6053463a2d20130700000000000000000000000000000000000000000000000000000b1825323e4b5865717e868d9299a3aca99c8f837669544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3942515b62656360594f443b30241b0d04000000000000000000000000000000000000000000000000000000000000000000000001080d111314181b1b191414110d0802000000000000000000000000000000000b16212c38434f59626f7c8986807a736d707d89949fa8ada79e9184796d6053473a2d201407000000000000000000030c161f283139404550555c60656a6f7376797c7e7f81818282828281807f7d7a7874706b64605b534d453d342b21170d0000000000000000000c18242f39434b51535b5b5b5b5b5b5b53514b434a5053555c6063656768696868676562605b54544f48443d342e271e160d04000000000000000b1825313e4b5864717e8b97a8b2a89b8f8275665c5044382b1f1409000000040d16212e3a4754616d7a86939facada093867a6d6053473a2d2014070000000000000815222e3b4754606a7783909dabb4ab9f9285796d6053463a2f241907000000000000000000010d1924303a4653606d7985919eabafa3998c7f73655b5044372b1f130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c89968b7e7165584b3e3225180b00000000000000000000000000000000000000000613202d394653606c7885919e9e948f837d7874706e696a69696868686969666d6f7174777b7b6e655b5044372b2421201e19140d050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18232e39424f5961696e69615e56524c454039312820160c0100000000000000000000000000000000000000000000000000000000000000000000050f1a232c33383c3d3a39352f29241d18120b0600000000000000000000000000000000000000000000000000000000020e1b2835414e5b6874818e9ba7aba79f9d959089827b726c665f585145403a312a21191d2a36414c5665727f8b918477675c5145382c1f130600000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d989fa3abb5ab9e918478665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303f4951565856544f473d32291e12090000000000000000000000000000000000000000000000000000000000000000000000000000010407070b0e0e0c08070501000000000000000000000000000000000000050f1b27323d4754606a717e7a736d68606b76828f9ca6a29f97928c7f7265594c3f3226190c00000000000000000000040d161f282f353e434b5153585f6266666d6f7172747575757575747372706e6867636059535049413b332b22190f0500000000000000000007121d2731394045474f4f4f4f4f4f4f474540393f44464b515356585a5b5c5c5b5a585553504a48443d383328231d150c0400000000000000000815212e3b4854616e7b8796a1acab9f9285796d6053463c31261a110904060d161f2a36424d5764717d8a9aa4afada093867a6d6053473a2d201407000000000004101d2935404b55626f7c8995a0acb2a89a8e8174675c514538281e13080000000000000000000008131f2c3844505c6673808d9aa7b1ab9e9184786c6053463a3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a968a7e7164574b3e3124180b000000000000000000000000000000000000000005121f2b3744505b6573808d98a29e95918a84817d7b79777675757475757678797c7e81848783796c605346392d201414110e09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c27303e474f575e615e57524c45413a342f271f160d0400000000000000000000000000000000000000000000000000000000000000000000000008111a21282c2f302d2c29241d18120c07000000000000000000000000000000000000000000000000000000000000030f1c2936424f5c6975828f9ca29f9b95908a837c756e69605b544e463f352f281f180f1925303a4754616d7a868f827568554b4034281c100400000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98aaafb5b9ac9f9286796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2d373f464a4b4948443d352b20170d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b37434e58626c716d68615d59626f7c89949f98928d857f796d6054473a2d2114070000000000000000000000040d161d242931394045474e5355545c6062646667686869686868666563615e5656544f46443f382f292119100700000000000000000000010b151f272f35393a424242424242423a38342f333839404547494c4d4e4f4f4e4d4b4946443f3838322c272118120b030000000000000000000714212d3a46535e697884919eabada297897d7063574d42372b231a141112171f28313a46525e6975828f9bacb6ada093867a6d6053473a2d20140700000000000613202c3945515d6774818e9aa7b1ada196897c7063554b4034281c10040000000000000000000003101c28343f4a54626f7c8895a0acaca096897d7063564c41362a1d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a978a7d7164574a3e3124170b0000000000000000000000000000000000000000030f1b27333f4953616e7b86929fa5a09d96918d8a878584838282818282838486888b8e91867c6f655b5044372b1f12070502000000000000000000000000000104070713131313131313130c0c0a060200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000307090a131313131313131313120807050100000000000000000000000000000000000000000000000000000000000106090b0c131313131313131313130807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2c353e454d5254524d46413b352f29231d150d0400000000000000000000000000000000000000000000000000000000000000000000000000000810161c20232421201d18130c070100000000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e9797928e89837d786f6b615e57504a423c3429241d160d0813202d3946525d6875818c807366594d402e23180c0000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8999a3aeaeaca8a399877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c1b252d343a3d3f3d3b38322b23190e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f1b27323d46505a6265615e565254606a75828f928d86807a736d675d5145392c201306000000000000000000000000040c12181f272f34383c4347494b51535557595a5b5b5c5c5b5b5a585654524c4948443d37332d261d170f07000000000000000000000000030d151d24292c2d353535353535352d2c2923282b2f34383a3d3f4142424242403f3c3938332d2c27211c160c07000000000000000000000005121e2a36424d576774808d9aa8b1a99b8e8175695f53463f362a25201d1f2228313a434e58616e7b86929facb9ada093867a6d6053473a2d20140700000000000714202d3a4753606d7a85929fabb7ab9e9184786c605346392e23180c0000000000000000000000000c17232e3847535f6a7783909dabb2a89b8e8175685e5246392d20160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b968a7d7063574a3d3024170a0000000000000000000000000000000000000000000b17222d3846525e68727f8b939da4a8a19e9a979892918f8f8e8e8e8f909193999893877e716a6053493f33271b0f030000000000000000000000000001080d1113142020202020202020191816120d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b101316162020202020202020201f1414110d08020000000000000000000000000000000000000000000000000000070d121618192020202020202020201f1514120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c1a232c333b42464746423b363029241e18120b0300000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416171413110d0701000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e898a8985817c76706c656059534d443f382f2a2218130c0405111d2935414c56626f7c897e7164574a3e312417070000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929faaa39f9b9895897c6f6256493c2f23160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e3132302f2c27211911070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16202b343f4850565854524c464e58626f7c8786807a736d68605d554b4135291d11040000000000000000000000000001070d151d23292c32373b3c404546494b4c4e4e4f4f4f4f4e4d4c4a4746413d3b38322b27221b140b050000000000000000000000000000030b12181d1f2028282828282828201f1c181c1f23292c2d3032343536353534322f2d2b28221c1b16100b05000000000000000000000000020e1a25313c4956626f7c8995a0acac9f92877b6e615b51483f36302c292b2d333b434c565f6a74808d99a3aebbada093867a6d6053473a2d2014070000000006121e2b37424d5764717e8b98a2aeb1a7998d8073655b5044372b1d120700000000000000000000000006111c2b37434e5865727f8b99a3afac9f92867a6d6154473d32271b0f0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c96897d7063564a3d3023170a00000000000000000000000000000000000000000006111b2a36414d56626d74818d929ea2a9aba7aaa29f9d9c9c9b9b9b9c9c9e9f9f918b7f726c61584e41382d22170b00000000000000000000000000040c13191d202d2d2d2d2d2d2d2d2d2625221e18120a010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b2022232d2d2d2d2d2d2d2d2d2c21201e19140d050000000000000000000000000000000000000000000000010911181e2225262d2d2d2d2d2d2d2d2d2c22211e1a140e0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a202930363a3b3a36302a251e19130c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a070604010000000000000000000000000000000000000000000000000000000000000000000000000a1723303c4955616c717d7e7c7974706b64605b534f46423b332d261d1810070100010d1924303a4754606a76837c6f6255483c2f22150900000000000000000000000000000000000000000000000000000006131f2c3845515c677783909d9f98928f8b89877d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181d2224252322201b160f0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222d363f454a4b4746413d47535f6a717e7b736d68605d56514b433a2f24180d01000000000000000000000000000000030b12181c1f262b2e2e34383a3c3e3f41424242424241403f3d3b3936302f2c271f1b17110a020000000000000000000000000000000001070c1013141c1c1c1c1c1c1c1413100c0f12181c1f2023252728292928272522201f1c1711100b040000000000000000000000000000000915222e3b4754606a7784919da8afa3998f82756d625a5046423b393538393f444d555d686f7c87929fabb5bfada093867a6d6053473a2d201407000000000814212e3a47535f697683909caab4aca095887b6f6253493f33271b0b00000000000000000000000000000f1b26313c4754616d7a86929facaea3998c7f7265594f43382c1d130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c96897c6f6356493c30231609000000000000000000000000000000000000000000000e1925303b44515b606c78808a92979fa3aaacaeacaaa9a8a8a7a8a8a69f99928b7f736d625a50463d2f261b1106000000000000000000000000040d161e24292c39393939393939393933322f2a231c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111921272c2f30393939393939393939382e2d2a251e170e050000000000000000000000000000000000000000000009131b23292e3132393939393939393939392e2d2b261f180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080e171f252a2d2e2d2a251f19140d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212d3945505a616b70716f6d66636059535049413d363128221c140b060000000008131e2b38434e5863707d786d6053463a2d20130700000000000000000000000000000000000000000000000000000004101c2834404b556673808d98928c86827f7c7a706c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d12151818161613100b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101b242d343a3d3e3a393637434e58626c716e69615e56524c45413a31281d1307000000000000000000000000000000000001070c10151b1f2123282c2d2f3133343535363535353332302e2d2a2522201b160f0b060000000000000000000000000000000000000000000406070f0f0f0f0f0f0f0706040003070c10131416191a1b1c1c1b1a181613120f0b0600000000000000000000000000000000000006131f2b37434e5865717e8b96a0acab9e948b7f726c625a524d47454044464a50575e676d7a849199a3afbdb9ada093867a6d6053473a2d20140700000003101c28343f4a54626e7b88949fabb5ab9d9083776a5f5341382d22170b00000000000000000000000000000a15202d3946525e6875828f9ca9b3ab9d9184776b6054483a2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d95887c6f6255493c2f2216090000000000000000000000000000000000000000000008141f29323f44505b666c747e858e92989c9fa2aaa4a5a5a5a9a29f9b9490877f736d635b51483e342b1d140a000000000000000000000000010c1620282f35394646464646464646463f3e3a352e251c12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b32383b3d464646464646464646453b3936302920170b02000000000000000000000000000000000000000006101b252d353a3e3f464646464646464646463b3a37312a21180e03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d141a1e2021201e1a140d08020000000000000000000000000000000000000000000000000000000000000000000000000001040607090a0a0b0b0b0b0a0a090807060400000000000000000000000000000000000000000000000000000000000000000000000005111c28333e48505960636462605c54544f46443f382f2a251f17110a020000000000020f1b27323d4855616b706d665c5145382c1f1306000000000000000000000000000000000000000000000000000000000c18232e3c4956636f7c899286807a75726f6d6861594f44392d2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c0a09070400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292e31322e2d2a313c46505a6264615e56524c45413a352f281f160c010000000000000000000000000000000000000000040a0f1315181c1f202224262728282929282827252321201e191613100b03000000000000000000000000000000000000000000000000000002020202020202000000000000000406070a0c0e0f0f0f0f0d0c090606030000000000000000000000000000000000000000030f1b27323d4653606d7984919ea6b0a69f92877e716c615e5753514b5053545b60696e79829096a0abb5bab9ada093867a6d6053473a2d20140700000006121f2c3844505c6673808d9aa6b0afa4998c7f7265584e432f261b1106000000000000000000000000000005111d2a36414c5664707d8a97a1adaca095897c6f63554b4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b2835424e5b6875818e95887b6e6255483b2f22150800000000000000000000000000000000000000000000020d172028333f4a545b606c717a81868c90929897989899989797928e89837c726d635b51493f362c22190b0200000000000000000000000008131e28323a41455353535353535353534c4b463f372e23180d02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d444849535353535353535353524746413b32291d140a00000000000000000000000000000000000000030d18222d373f464a4c535353535353535353524846423c332a1f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e11141414110e09020000000000000000000000000000000000000000000000000000000000000000000000030608080d11131416161718181818171716151312100c0708070501000000000000000000000000000000000000000000000000000000000000000c17222c363e474f5456575653514b48443d37332d261d1a140b0600000000000000000a16202c38444f596163605c544b4034281c1004000000000000000000000000000000000000000000000000000000000713202d394653606c7884857c736d686562615e564f473e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d2124252120202a343e4850565854524d46413a353029241d160d0400000000000000000000000000000000000000000000000306070c1013131618191b1b1c1c1c1c1b1a19171414110d080703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151f2c3844515c66717e8b949ea9afa39992877e756e6963605d555b6062666c717b8390949fa8a7a9afb7ada093867a6d6053473a2d2014070000000713202d3a4653606d7985919eabb8ac9f93877b6e6154483c3121140a000000000000000000000000000000010d1925303a4653606d7985929eabb1a79b8e8174675d5145392c20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f94877b6e6154483b2e2115080000000000000000000000000000000000000000000000050e17222d38424a505a61686e747a7f8385888a8b8c8c8b8a8885817d786f6a625b514940372d241a1007000000000000000000000000010d19242f3a444c525f6060606060606060595751493f352a1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000003101b27323d474f54566060606060606060605f54524c443b2f261b11060000000000000000000000000000000000010b151f2a343f495157596060606060606060605f55534d453c31261a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080705020000000000000000000000000000000000000000000000000000000000000000000001040a0f121515191d20212223242425252424232221201f1c18171414110d0805010000000000000000000000000000000000000000000000000000000005101a242c353d4448494b494645403938322b27221b140b090300000000000000000004101c28333e474f555753514b42392e23180c000000000000000000000000000000000000000000000000000000000006121f2b3844505b66737f7e716a615d565654524c443e352c21170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11151718141318222d363e45494b4746423b363029241e18130c0400000000000000000000000000000000000000000000000000000000040607090b0c0e0f0f0f0f0f0e0d0c0a080705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a54626c75828f97a1aaaba399928b817b74706d676a666c6f72787e8590959fa49f9a9da5afada093867a6d6053473a2d201407000005111e2a36424d5664707d8a97a1adb4aa9c8f8276695e52463a2d2014020000000000000000000000000000000008131f2c3845515c6674808d9aa7b1ac9f92857a6d6054473c32261b0f01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b556a77839094877a6d6154473a2e21140700000000000000000000000000000000000000000000000006111c262f383f4450565e61686d7276797c7d7e7f7f7e7d7b7975706c655f58514940372e251b12080000000000000000000000000004111d2935414c565d6c6c6c6c6c6c6c6c6c66635b51463a2f22160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f5960636c6c6c6c6c6c6c6c6c6b615e564c41382d22170d030000000000000000000000000000000007121d27313c46515b62656c6c6c6c6c6c6c6c6c6c615f574d42372b1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d10151b1f212224292c2d2f30303132313131302f2e2d2c28232421201e1914110d080200000000000000000000000000000000000000000000000000000008121a232b33383c3d3e3c3a38342e2c271f1b17110a020000000000000000000000000b16212c353e44484a4645403930271d12070000000000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7a776c6058524c494746413a322c231a1005000000000000000000000000000000000000000000000000000000000000000000000000000000000306060808080808080808080807070603000000000000000001040607080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080807060400000000000000000000000000000000000000000000000105090b0b0707101b242d34393d3e3b3a36302a251e19130d07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3942505a616e7a859298a2ababa39f938e86817d7a787778797b7f848b9297a0a49a938e939da9ada093867a6d6053473a2d20140700000714202d3a46525e6975828f9ca9b3aea3988b7e7165574d42362a1e12050000000000000000000000000000000004101c2834404b54626f7c8995a0acaea2988b7e7165584e43372b1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c677885919a867a6d6053473a2d201407000000000000000000000000000000000000000000000000000a141d262d333e444c52565e6165666d6f7071727272716e6c6563605b534e463f372e251c130900000000000000000000000000000713202c3945525d68767979797979797979726d63574b3e3225180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b70797979797979797979786e685e53493f33271f150b010000000000000000000000000000040e18232f39434e58626d72797979797979797979796e695f53463a2d21140700000000000000000306060808080808080808080807060603000000000000000001040607080808080807060400000000000000000001040607080808080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000060b12181d20262b2e2f2f35393a3c3d3d3e3e3e3e3d3d3c3b3a38342e312e2d2a25201d19130d0802000000000000000000000000000000000000000000000000000008111921272c2f30312f2d2c28231d1b160f0b06000000000000000000000000000005101a232c33383c3d3a38342e271e150b000000000000000000000000000000000000000000000000000000000000000b17222d3845525d686d6c655b5046413c3a39353028201a1108000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f121315151515151515151514141312100b060604030608080d11131415151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151312100c070000000000000000000000000000000000000000000000000000000009121b22292d30312e2d2a251f19130d08020000000000000000000000000000000000000000000000000000000000000000000003050607070706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004070a0a131313131313130c0c0a060200000000000000000000000000000000000000000000000000000007121c27303e46525e686f7d869299a1a9afa59e98928e898685848485888c91969fa2a39f9388818e9aa7ada093867a6d6053473a2d20140700030f1b27333f4953616e7b86929facb2ac9f92867a6d6054473b30251a0e0200000000000000000000000000000000000c18232e394754606a7784919dabb4aa9d9083766a5f5347392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986939386796c605346392d20130600000000000000000000000000000000000000000000000000020b141c2228323b41464c5254545c606264656566656462605b53535049413c342d251c130a0100000000000000000000000000000714212d3a4754606d7a86868686868686867f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c878686868686868686857a6e655b50443c31271d120700000000000000000000000000020c16202934404b555f6a727f868686868686868686867b6e6155483b2e221508000000000000060b0f1213151515151515151515141413120f0b060603020608080d11131415151515141313100c07090703030606080d1113141515151414110e080200000000000000000000000000000000000000000000000000000000000000000000000000020a11171d24292c32373b3c4041454749494a4b4b4b4b4a4a4948464440403d3b3936302d2a251e19130c050000000000000000000000000000000000000000000000000000070f161c2022232423201f1c1812100b03000000000000000000000000000000000008111a21282c2f302d2c28231d150c030000000000000000000000000000000000000000000000000000000000000006111c2935414c565d60605b53493f35302e2d29251e160e080000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f202121212121212121212121201f1c171413110f121515191d20212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121201f1c18120b030000000000000000000000000000000000000000000000000000000911171d21242521201e19140d08020000000000000000000000000000000000000000000000000000000000010407070a060b0f121314141313100c070c0906060300000000000000000000000000000000000000000000000000000000000000000000000000000000050b1014161720202020202020191816120d070000000000000000000000000000000000000000000000000000000b151e2a36414c56606b707d8791969fa6acaaa29f9a9a939191919298999ea0a8a199928b7f7d8996a3ada093867a6d6053473a2d2014070005121f2b3744505b65727f8c99a3a5a5a99b8e8275685d524539291f140900000000000000000000000000000000000007121d2b37434e5866727f8c99a3a5a59f95887c6f62554b4034291c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b889a928578655b5044372b1f12050000000000000000000000000000000000000000000000000000020a1117202930363a4146474a5053555758595958575553504946443f382f2a221b130a010000000000000000000000000000000714212d3a4754606d7a879393939393938c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b73808c949393939393978f82776c60584e43392f24180f0500000000000000000000000008131e28323a45515c676f7c8692939393939393938b7e71695f53463a2d21140700000000020a11171c1f202121212121212121212121201f1c171312100f121415191d20212121212121201f1c181615130f0f121317191d202121212121201e19140d050000000000000000000000000000000000000000000000000000000000000000000000040b141b22272f35393c4347484d4c5154555657575858575756555453514a4d4a4746413b3936302a251e170e060000000000000000000000000000000000000000000000000000050b1013161618161313100c070000000000000000000000000000000000000000000810161c202324201f1c18120b030000000000000000000000000000000000000000000000000000000000000000000d1924303a444c525453504941382d2421201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2d2b282320201d1b1f212224292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2c28231c150c03000000000000000000000000000000000000000000000000000000060c111517181414110e0902000000000000000000000000000000000000000000000000000000000004080d111314171a171b1f202021201f1c181b191613120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000810171c2023242d2d2d2d2d2d2d2625221e18120a0100000000000000000000000000000000000000000000000000030c1925303b444f59606b707d848f949da0a8acacaca49f9e9d9e9fa3aaaba39f9691877e727d8996a3a8a093867a6d6053473a2d201407000613202d394653606c7884919898989898978a7d7064564c413529170d02000000000000000000000000000000000000000f1b27323d4754616e7b869298989898988d8074675c5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c1524313e4b5764717e8a979185786b5e493f33271b0f0300000000000000000000000000000000000000000000000000000000060e171e252a3035393a3f4446494a4b4c4c4b4a4846443f3937332d261d18100901000000000000000000000000000000000714212d3a4754606d7a87939f9f9f9f998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f59606c78828f97a19f9fa99e948b7f726a5f554b40352921170b0200000000000000000000060f1925303a444f59606d79839098a39f9f9fa1968e81756c62574d42372b1e1205000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2d2d2b2822201f1c1a1f212224292c2d2e2e2e2e2e2d2c282323221f1b1c1f202424292c2d2e2e2e2e2d2a251e170e05000000000000000000000000000000000000000000000000000000000000000000040d161d262d33394045474e535559555d606263636465646464636261605c545a5754524c4746413a3630292017110a0200000000000000000000000000000000000000000000000000000407090a0b09070604000000000000000000000000000000000000000000000000050b101416171313100c07000000000000000000000000000000000000000000000000000000000000000000000008131e28323a41454746443f382f261b1413110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3a3a38342e2d2c29262b2e2f2f35393a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a38342e271e150b000000000000000000000000000000000000000000000000000000000005080a0b080705020000000000000000000000000000000000000000000000000000000000070c1013191d2021242722272b2d2d2d2d2c2823282622201f1c17110f0a0300000000000000000000000000000000000000000000000000000000000000000008111a21282c2f303939393939393933322f2a231c130a000000000000000000000000000000000000000000000000000008141e29323d474f59606b6f7a828a91959b9fa2aaa6a7a8a8a8a6a8a19e99928d847d71707d89969b9b9b93867a6d6053473a2d201407000a1623303d495663707c898b8b8b8b8b8b8b85796d6053463a2f24190d01000000000000000000000000000000000000000a15202d3a46525e6976828b8b8b8b8b8b8b857a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b151e2b37424e576774808d9a9184776a5e51442d22170b000000000000000000000000000000000000000000000000000000000000050d14191e25292d2e34383a3c3d3e3f3f3f3e3b3937332d2b27221b140b060000000000000000000000000000000000000714212d3a4754606d7a8793a0acaca5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000003101b27323d44505b666e7a85929aa4afb0a69f92867c6f675d51453e33291d140a000000000000000000020c18212935414c56606b74808d95a0aab4afa49991847a6d605a50453c31261a0e020000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3a3938332d2d2c28262b2e2f2f35393a3b3b3b3b3b3a38342e2f2e2c27282b2d312f35393a3b3b3b3b3936302920170d0200000000000000000000000000000000000000000000000000000000000000040d161f282f383f444b5153585f626669676d6f70707171717170706f6e6d66696764615e5654524c46413a3228231c140c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a07060400000000000000000000000000000000000000000000000000000000000000000000000000020c1620283035393a3937332d261d140a0705010000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f4446484848484848484848474746443f3f3a393532373b3c4041454748484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484848484644403930271c1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b12181c1f24292c2d30332d3337393a3a3a38342e35322f2d2b28221c1a150f0a0300000000000000000000000000000000000000000000000000000000000005101a232c33383c3d464646464646463f3e3a352e251c120700000000000000000000000000000000000000000000000000020d17202b343d474f5960686e767d84898e9298989a9a9b9c9b9a9896918d86807a6f6b707d898e8e8e8e8e867a6d6053473a2d201407000916232f3c4956626f7d7f7f7f7f7f7f7f7f7d70665c514538281e1308000000000000000000000000000000000000000005111e2a36424d56626f7c7f7f7f7f7f7f7f7f7b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d27303947535f6a7783909d9083766a5d5043372a1d060000000000000000000000000000000000000000000000000000000000000002080d13191d2023282c2d2f3132323332312f2d2b27221f1b17110a02000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b162128333f4a545e68707d88939fa6b0aea3999183796d605a50453b2f261c110600000000000000000a141e2a333b46525e68707d88939fa7b1b1a79f93877d6f685d52483e332a1f140900000006111c262f383f4446484848484848484848474746443f3e3a383431373a3b404145474848484847464540403c3b38323338393d414145474848484746413b32291e1408000000000000000000000000000000000000000000000000000000000000010c161f28313a414950555d60666a6f7376787a7c7c7d7e7e7e7e7d7d7c7b79777673706e6865615e56524c443e342e261e140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e161e24292c2d2d2b27221b140b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a5053545454545454545454545453504a4c4745403c4347484d4c5154545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545453514a42392e23180c00000000000000000206080813131313131313100f0d0a0500000000000000000000000000000000000000000000000000000000000000000000000000020a11171d23282c2f35393a3d40423f4446474746454043423f3c3938332d2b26201a150b0600000000000000000000000000000000000000000000000000000000000b17212c353e44484a535353535353534c4b463f372e23180d0200000000000000000000000000000000000000000000000000050e19222c353d464f565e616b70787d8185888b8d8e8f8f8e8d8b8884807b746d68626f7c81828282828281796d6053463a2d201307000915222e3b4854606a6f7272727272727272706b61544b403428160c010000000000000000000000000000000000000000020e1925303b47535f6a6f72727272727272726e695e52463a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f39424d57626e7b88959c8f8275695c4f4236291c0f03000000000000000000000000000000000000000000000000000000000000000002080d1113171c1f202224252626252422201f1b17120f0b060000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b17222d38424d56606b73808d949fa9b3aba0958e81746c61574d42382d22170d0400000000000006111c26303b45505a616d7a84919aa4afb4aa9f958c80736b60564c41362d21180e030000000b17222d38424a5053545454545454545454545453504a4b46443f3c4347484c4c5154545454545453514b4d4948433d3f44464a4e4c525454545454524c443b3025190e02000000000000000000000000000000000000000000000000000000000007131d28313a434c535b60676d72777c8082848788898a8a8b8b8a8a898887868482807d7a76726d68615e5650443f3830261d140a000000000000000000000000000306060808080808080808080808080808080808080808080808080808080606030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d2021201f1b17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b606161616161616161616161605c545853514b484e535559555d606161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161605c544a4034281c1004000000000003090e121415202020202020201d1c1916100a0300000000000000000000000000000000000000000000000000000000000000000000050b141b22272e34383a4145474a4d4f495053535453514b504e4c4946443f3837312b262017110a02000000000000000000000000000000000000000000000000000004101c28333e474f555760606060606060595751493f352a1e1204000000000000000000000000000000000000000000000000000007101a232c343d444c525961666c7075797c7e8081828281807e7b78736e69605d5f6a6f757575757575756d665c5144382c1f12060007131f2c38434e58606265656565656565656361594f42392e2318040000000000000000000000000000000000000000000009141f2b37434e585f626565656565656565615e564d42362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38414a545f6973808d9a9a8e8174675b4e4134281b0e01000000000000000000000000000000000000000000000000000000000000000000000105060c101213161718191918171513120f0b060300000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3b444f59606d78829097a2adb1a89d928a7e70695e544a3f33281f160c0100000000040d17232e38424d57626c75818f96a1acb6aea2989083786d60594f443a2f241b0f06000000030f1c28333f4a545b606161616161616161616160605b545753504a474e535559555d606161616161605c555a56544e474a5053575b565d60616161615e564c41362a1e110500000000000000000000000000000000000000000000000000000000010d18242f3a434c555d656c72797f84888c8f9196959696979897979796959992918f8d8a87837f7a736d68615a504a42382f261c110600000000000000000000060b0f121315151515151515151515151515151515151515151515151515151513120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11131413120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6d6d666965605d5554585f62666a676d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d665c5144382c1f120600000000060e151a1e21222d2d2d2d2d2d2d292926211c150d040000000000000000000000000000000000000000000000000000000000000000050e171d262d33394045464c5254575a5c535b606060605c555d5b595553504a47433c373128221c140b03000000000000000000000000000000000000000000000000000714202c38444f5961636c6c6c6c6c6c6c66635b51463a2f21160a00000000000000000000000000000000000000000000000000000008111a222b323b41464f545b6063666d6f71737475757573716f6a66615e5752585f6268686868686868605c544a4034281c100400030f1b27323d464e5456585858585858585857554f473e30271d120700000000000000000000000000000000000000000000020f1b26323c464e5355585858585858585854524d443b3025190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49535c666e7b86929f998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000030607090a0b0c0c0c0b0806050300000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d29323d44505c666e7b85929ea4aeafa59f92857b6e665b50443d31281e1308000000010c161f28343f4a545f69717e8b939ea9b2afa59f92867b6e665c50473d32281e12090000000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6d6c666864605c5454585f62666a676d6e6e6e6e6e6d676a6762605853545b6064676b686d6e6e6e6e685e5246392d2014070000000000000000000000000000000000000000000000000000000004111d2935404b555d676d777f858c9196999c9ea1a8a3a3a4a4a4a4a3a3aba39f9e9c9a9a93908b86807a716c605c544a42382d22170b0300000000000000020a11171c1f20212121212121212121212121212121212121212121212121212121201f1c17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000104070706050300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787b7b7b7b7b7b7b7b7b7a7a797876726d676260626a6f7376797a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b786d6053463a2d201307000000060f1820262b2e2f393939393939393635322d261f160d03000000000000000000000000000000000000000000000000000000000000050e1720292f383f444b5153565d606366686a656c6d6d6d676b6a686562605b54534e47433c332d261d150d030000000000000000000000000000000000000000000000000a16232f3c4855616b7079797979797979726d63574b3d32271b0f01000000000000000000000000000000000000000000000000000000081019202930363e424a5053545c60626567676869686765625f5854534d454e53555b5b5b5b5b5b5b53514a42392e23180c0000000a16212b343d4348494c4c4c4c4c4c4c4c4a48443e352c1e150b0000000000000000000000000000000000000000000000000a15202a343c4347494c4c4c4c4c4c4c4c4746423b32291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b656d78828f99a3978a7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b172028343f4a545e69707d8a929da7b1ada2978f82786c60584e433a2f24190f06000007131d28313a44505c666e7b86929fa5afb2a89e938b7e71695f544a3f352b20160c00000000000613202d394653606c787b7b7b7b7b7b7b7b7b7a7a797875716d666160626a6e7376797a7b7b7b7b7a797876736f6a625f61666c707477797a7b7b7b7a6e6154473b2e211408000000000000000000000000000000000000000000000000000000040e19222c3945515d676d79828b91979ea0a8a9abadb2afb0afafb0b0b0b0b5afacaaa9aca49f9c98928d857e746d665c544a3f332820150a000000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2b28221c140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87878787878787878787878685827f79726d6a6f767c8083858787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787878787877b6e6255483b2f2215080000030e18212a31373a3b4646464646464643423e3831281f150a0000000000000000000000000000000000000000000000000000000000050e172029323a414950545c6064686d7073757778797a7a7979787675726f6c66625f58534e443f382f271f150d030000000000000000000000000000000000000000000005111d2a36414c5663707d868686868686867f7266584e43382c1d120700000000000000000000000000000000000000000000000000000000070e171e252a2f383f44464a505355585a5b5c5c5b5a5855534e4846423c4347484f4f4f4f4f4f4f4644403930271c1207000000040f19222b32383b3c3f3f3f3f3f3f3f3f3d3c38332c231a0c03000000000000000000000000000000000000000000000000040e18222a32373b3c3f3f3f3f3f3f3f3f3b3a36302920170d02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c78818e949fa996897c6f6356493c30231609000000000000000000000000000000000000000003060608080808080808080707060400000000000000000000000000000000000104060708080808080706040100000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e17232e38424d57616b74808d959fa9b3a99f948c7f736a60554c41352921180c03050e18242f3a434e58606d78839098a2aeb5aba1968e81756c61574d42382e23190d0400000000000714212e3a4754616d7a87878787878787878787878684827e78716c6a6f767b7f8385878787878787868583807c766f6a6c70787d818486878787878276695d5043362a1d100000000000000000000000000000000000000000000000000000000a15202d3944505a606d79838f949ea1a9acafacaaa8a5a4a3a3a2a3a3a4a5a7a9abacb2b6afacaaa29f98928a81786d665b50443c31261a0f0300000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3938332d261d140a0000000000000000000104070713131313131313131313131313131313131313131313131313131211100e0d0a08070502000000000000000000000000000000000000000000000000000000000000000000000407090a131313131313130f0e0c09040000000000000000000000000714212e3a4754616d7a879494949494949494949a93918f8b857f75757c82888c90929894949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494949494887b6e6255483b2f22150800000915202a333c42474853535353535353504e49423a31261c1005000000000000000000000000000000000000000000000000000000020b172029323b444c535b60666d71767a7d8082848586868786868583817f7c79736f6a625f58504a423931271f150b010000000000000000000000000000000000000000000713202d3946525e6875828f93939393939184776a605448392f24180c0000000000000000000000000000000000000000000000000000000000050d14191d262d3338393f4446494b4d4e4f4f4e4d4b4847433c3a3631373a3c424242424242423a38342e271e150b000000000007101921272c2e2f3232323232323232302f2c28211a1108000000000000000000000000000000000000000000000000000007101820262b2e2f32323232323232322e2d2a251f170e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a84919ea5a197877a6d6154473a2e211407000000000000000000000000000000000000060b0f12131515151515151514141312100c070706030000000000000000030608070d10131414151515151413110d08010000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303b454f59606d78839097a2adb0a69f92877c6f675d51453e33291e150a0b17202935404b55606a737f8c959faab4afa39991847a6d605a50453b30261c11070000000000000714212e3a4754616d7a879494949494949494949993918f8a847e75757c82888c90929894949494949792908d89837c72747d848a8e9192999494908376695d5043362a1d100000000000000000000000000000000000000000000000000000030f1b27323c4955616c75818e959ea6adababa49f9d9b9997979696969797989a9c9ea1a8a7abadb2aeaaa29f938e81786c60584e43372b2015090000000006111c262f383f444648484848484848484848484848484848484848484848484848484846443f382f261c110600000000000001080d111314202020202020202020202020202020202020202020202020201f1f1e1d1b19171514120e0906040100000000000000000000000000000000000000000000000000000000040b10131616202020202020201c1b19150f0902000000000000000000000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a49f9e9c97928b8281898f94999d9fa3aaa1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a195887b6e6255483b2f22150800020e1a26313c454e5355606060606060605c5a544c42382d21160a0000000000000000000000000000000000000000000000000000000a141d29333b444d565e656c71797e82868a8d8f9092939993999292908e8c8885807c756e6a605b544b433931271d12070000000000000000000000000000000000000000000714212e3a4754616d7a86929f9f9f9fa096897c6f62554b4035291d1004000000000000000000000000000000000000000000000000000000000002080b141c22282b2e34383a3c3e4041424242403e3c3a37312d2a262b2e2f353535353535352d2c28231c150c03000000000000070f161b1f222325252525252525252423201c16100800000000000000000000000000000000000000000000000000000000070e151b1f2122252525252525252521201e19140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d67707d89939e9e928578685e5246392d20130700000000000000000000000000000000020a11171c1f20212121212121212121201f1c18171312100c0600000002050a0f131516181d2020212121212121201d19130c0400000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e29333e45515c666e7b85929fa4aeafa39991847a6d605a50453b30261c11141d29323b45515d676f7c87929fa7b1b0a69f92877d6f685d52483e33291e150a000000000000000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a49f9e9b96918a8281878f94999d9fa2aaa1a1a1a9a29f9d9a9490877f818a91959a9e9fa3ab9c908376695d5043362a1d10000000000000000000000000000000000000000000000000000006131f2b37434e5864707d8a939ea7aca79f9d9993908e8c8a8a8989898a8a8c8d8f9196979a9ea1a8abadaea59d938c7f736a5f53473c31261a0e020000000b17222d38424a505354545454545454545454545454545454545454545454545454545453504a42382d22170b0000000000040c13191d202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a2928262421211e1a1413100d070100000000000000000000000000000000000000000000000000070f161b2022232d2d2d2d2d2d2d282825201b140c030000000000000000000714212e3a4754616d7a8794a0adaeaeaeaeaeb6afacaba9a29f948f8e939c9fa6a9acaeb4aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaea195887b6e6255483b2f2215080006121e2b37424e575f6c6c6c6c6c6c6c6c69665e54493e3226190d010000000000000000000000000000000000000000000000000006111b262f3b454d565e686d777e848a8f9299999b9d9e9fa4a0a39f9e9d9b9897918d87827c726c665d554b43392f24180d030000000000000000000000000000000000000006131f2b37434e5865727f8c99a3aeacb2a89a8e8174675d5145392c1f140900000000000000000000000000000000000000000000000000000000000000020a11171c1f23282c2d2f32343435363534322f2e2b26211e1b1f212228282828282828201f1c18120b030000000000000000040a0f1315161919191919191919171614100b05000000000000000000000000000000000000000000000000000000000000040a0f13151619191919191919191414110e09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55616b75818e979c8f837669564c41362a1d1105000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2d2c282324201f1c17110b06090e11151b1f222324292c2d2e2e2e2e2e2d2c29241e160d04000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17212834404b545f69717e8a929da7b1aba0968e81756c61574d42382e23171b262f3b44505a606d79849199a3afb3aa9f948c80736b60564c41362d21180c03000000000000000714212e3a4754616d7a8794a0adaeaeaeaeaeb5afacaba8a19e938f8e939a9ea6a9acaeb4aeaeaeb3adaba9a69f99928c8e939da0a8aaacafa99c908376695d5043362a1d1000000000000000000000000000000000000000000000000000000815222e3b4754606a7783909da5a8a09e95908b8684817f7e7d7c7c7d7d7e7f818284878a8d91969a9fa2a9ada59f92867c6e62574e42372b1e12060000030f1c28333f4a545b60616161616161616161616161616161616161616161616161616161605b544a3f33281c0f03000000040d161e24292c3939393939393939393939393939393939393939393939393939393837363533312e2d2a2520201d18120f0a040000000000000000000000000000000000000000000007111921272c2f30393939393939393534312c251e150c0200000000000000000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a7a8aaacada69e9c9b9ea5abb0b4aeaca9a7a6a7a8aaacaeb4b6b9bbc0bcb4aeaba7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a7a8aaacaeb4b7bbbabaaea195887b6e6255483b2f221508000814212e3a47535f6a76797979797979797670665a4e4235291c0f03000000000000000000000000000000000000000000000000000b17222d38414d575e686e7a828b91969c9fa3aba8aaa9a7a6a5a6a6a8a9a8a9a19e9a938f877f786d675d554b4035291f150b010000000000000000000000000000000000000815222e3b4754606a7783909dabb5bfb8ab9f9285796d6053473b31251a0e000000000000000000000000000000000000000000000000000000000000000000060b0f12171c1f2022252728292928272522211f1b15120f1215151c1c1c1c1c1c1c1312100c07000000000000000000000000030709090c0c0c0c0c0c0c0c0a09070400000000000000000000000000000000000000000000000000000000000000000000030608090c0c0c0c0c0c0c0c08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f39434f59616d7a85929a8d8073675a4d403025190d010000000000000000000000000000000a141d262d3338393b3b3b3b3b3b3b3b3a3a38342e302d2c28231c1711141a1e20272b2e2f2f35393a3b3b3b3b3b3a39352f281f160c010000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050f18232e39424d57616c74808d95a0aab2a89e938a7e71695f544a3f342820222d38414d56616c74818e96a0abb5aea2989083786d60594f433a2f241b0f0600000000000000000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a7a8aaacaca59e9b9b9fa4acb0aeaca9a7a6a6a6a6a7a8abadaba39f989b9ea5acacaaa8a9a99c908376695d5043362a1d1000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a0a69f96918a837f7b7775727170706f707071727476787b7e8084898d92979ea1a9a3998f82766a5f53473a2e211408000006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6c665b5044382b1f12060000010c1620282f353946464646464646464646464646464646464646464646464646464645444341403d3b3a36312d2c29241d1b150e090300000000000000000000000000000000000000040f19232b32383b3d4646464646464642413d3730271e140900000000000000000714212e3a4754616d7a8794999999999999999a9a9b9ea0a8abaaa8a8aaafb4aeaaa39f9c9a999a9b9d9fa3aba9acafb5b4aaa29f9a99999999999999999999999999999999999999999a9a9b9d9fa3aaaab0b8bbaea195887b6e6255483b2f221508000815222f3b4855626e7b868686868686868276695c504336291d1003000000000000000000000000000000000000000000000000030f1b27333f49535e696e7a838f949ea1a8acaca9a29f9c9a9999999a9b9d9fa3abaca49f99928c82796d675d51453e31271d1207000000000000000000000000000000000004101c2834404b55626f7c8895a0acb9b7b9aea2988a7e7164574d42362a1b11060000000000000000000000000000000000000000000000000000000000000000000003060c10121316181a1b1c1c1b1a181515120f0a05030608090f0f0f0f0f0f0f07060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313d46525e68717e8b948a7d7164574a3e3124170800000000000000000000000000000006111c262f383f4446484848484848484747464440413d3a38342e27221b1f252a2d32373b3c4040454747484848484745413a31281e13080000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303b45505a606d79839098a2aeafa59f92867b6e665c50443d322827333f49535e68707e8a939da8b2afa59f92857b6e665c50473d31281e12090000000000000000000714212e3a4754616d7a8794999999999999999a9a9b9ea0a8abaaa8a8acafafaba39f9c9a999999999a9c9ea1a9acaca5a7a9aba49f9d9b9d9f9c908376695d5043362a1d1000000000000000000000000000000000000000000000000000000d192633404c5966737f8c99a59e948f847e77726e69686664646363636464656769696e7174787c80858b91969fa39f94887b6e6255483b2f24190d01000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b786c605346392d201306000008131e28323a41455353535353535353535353535353535353535353535353535353525251504e4c4a4846423e3a39352f2b26201a140b060000000000000000000000000000000000000b16212b353d444849535353535353534f4d48423930251b0f04000000000000000714212e3a4754616d7a878c8c8c8c8c8c8c8c8d8d8f91969c9fa6b0b5b6b1aaa29f98928f8d8d8d8f909299999d9fa4ababa298928d8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8d8d8e8f9092989c9ea6aeb6aea195887b6e6255483b2f221508000815222f3b4855626e7b8893939393938f8376695c504336291d100300000000000000000000000000000000000000000000000005121f2b3744505b656e7b8491959fa6adaaa39f9b97928f8d8d8c8c8d8e9092999da0a7aba39f948f82796d605a5043392f24180c000000000000000000000000000000000006131f2c3845515c6774818d9aa7b1acaaacb2aa9c8f8276695e5346382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000030607090b0d0e0f0f0f0d0b0908060300000000000002020202020202000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2a36414c56626c76828f877b6e6154473b2e2114080000000000000000000000000000000b17222d38424a505354545454545454545453514a4d4a46443f38332d262a30363a3d4347494c4b5153545454545454524c433a2f24190d0100000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e29333e45515c676e7b86929fa5afaea2989083786d60594f443a30303944505b656e7a85929ea5afb2a89e938a7e71695e544a3f342b1f160c000000000000000000000714212e3a4754616d7a878c8c8c8c8c8c8c8c8d8d8f91969c9fa6b0b4b6afa59d99928f8d8c8c8c8d8d8f92979ea1a8b2afa59e9993908f90939a908376695d5043362a1d1000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9b9e938f8279716c65615e565957575656565757595a575e6164656c6f74797f848d9299a29a8d807367564c4135291d1104000714212e3a4754616d7a8787878787878787878787878787878787878787878787878787877a6d6154473a2e21140700010d19242f3a444c525f6060606060606060606060606060606060606060606060605f5f5e5d5c5b595754534d4b4745403937312a261f17110a0200000000000000000000000000000004101b27323d474f5456606060606060605b59534b42372c201509000000000000000714202d3a4753606d7980808080808080808080818284888f949fa6b0b1a7a098928c8682818081828486898c9093999da09f92858080808080808080808080808080808080808080808081828386898f949da4aeaea195887b6e6255483b2f221508000815222f3b4855626e7b88959f9f9f9c8f8376695c504336291d1003000000000000000000000000000000000000000000000005111e2a36424d56606c77828f96a0a8b0a79f98928e89858281807f7f808184868b91959fa4aca69f948e81746c61554b4035291d1004000000000000000000000000000000000713202d3a4653606d7985929faba8a09ea0a8ac9f93877b6e6153493f33271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050707110b0706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d1925303a44505a616e7b868477695e52463a2d2014070000000000000000000000000000030f1c28333f4a545b60616161616161616161605c545a5753504a443f382f363b4246474e545659555d606161616161605d564c4135291d110400000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c040404040404040404030302000000000000000000000000000000000000000000000000000000000000000000000000000000030c18212934404b555f69717e8a939da7b1aa9f958d80736b60564c413539424e58606c77828f97a1adb5aba0968e81746c61574d42382e22190d04000000000000000000000714202d3a4753606d7980808080808080808080818284888f949fa6b0aca49f928e86828080808080808285899196a1a9a59e938f878382838893908376695d5043362a1d100000000000000000000000000000000000000000000000000000111d2a3744505d6a7783909d978f81786d67615a54524d4c4b4a49494a4a4b4c4e4d5254535b6063676d7279808792979e918477685d5245392c201307000714212e3a4754616d7a8794949494949494949494949494949494949494949494949494877a6d6154473a2e2114070004111d2935414c565d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69686664615e575753514b47433c363127221b140b0400000000000000000000000000000713202c38444f5960636c6c6c6c6c6c6c68655d53483d3125190c0000000000000006131f2c3945515d676d737373737373737373737475777c828f949faba8a09591867f7a767473747577797c7f83868b90959b9892857f7973737373737373737373737373737373737373747577797d828d929da8aea195887b6e6255483b2f221508000815222f3b4855626e7b8895a1aca99c8f8376695c504336291d100300000000000000000000000000000000000000000000000714202d3a46525e69727f8b949fa8b0a69e959086817c7976747372737375777a7e838c939aa4afa69e938a7e71675d5145392c1f140800000000000000000000000000000005121e2a36424d5764717e8a97a2aca0969196a0aca49a8c7f73655b5044372b1f1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1113141e181413100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e29323f47535f69737f807367564d42362a1e1105000000000000000000000000000006121f2b3844505b666c6e6e6e6e6e6e6e6e6d6d66696763605c545049413b42464d52545860626669676d6e6e6e6e6e6d685d5245392c20130600000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f33261911111111111111111110100f0e0d0c0a08070502000000000000000000000000000000000000000000000000000000000000000000060f18232f39434d57616c74818e95a0aab1a79f93877d70685d52463f404b545f6a727f8b949fa9b3afa3999184796d605a50453b30261c1007000000000000000000000006131f2c3945515d676d737373737373737373737475777c828f949faba49a938b817a7674737373737475787d849197a29e938e817b7775767d87908376695d5043362a1d100000000000000000000000000000000000000000000000000000111e2b3844515e6b7784919e92857a6d665d55504746423f3e3d3d3c3d3d3e3f41424647495053555d60676d737d85929993867a6d6054473a2d211407000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a094877a6d6154473a2e211407000713202c3945525d687679797979797979797979797979797979797979797979797979797877767473706e696864605d55534e46423b332d261d160d05000000000000000000000000000916222f3b4854606b7079797979797979756f65594d4134281b0e0000000000000004101d2935404b555d606666666666666666666767686a6f78828f9caaa09691837b726d6867666768676d6f72767a7f83888e9297928c857f79726d6766666666666666666666666666676768666d7075808d9aa6aea195887b6e6255483b2f221508000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000004101c2834404b55616e7b86929fa6b0a79e938f837b746f6c65676666666768686d72798088939fa5afa59e9184796d6053473b3025190e0200000000000000000000000000000714202d3a46525e6976828f9ca9a89e9184919ea7ac9e9184786c6053463a2f24190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c13191d20212a25201f1d18120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202b37424d57606d787b6e6255483b3025190e0200000000000000000000000000000613202d394653606c797b7b7b7b7b7b7b7a7a79787674706d66605b534c454d53575e61666a6f7376787a7a7b7b7b7b7a6d6054473a2d21140700000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f33261e1e1e1e1e1e1e1e1e1d1d1d1c1b1a19171414110e0907050100000000000000000000000000000000000000000000000000000000000007121d27313c45505a606d79839198a2aeafa49991847a6d615b514645515c666f7c86929fa6b0b0a69f92877c6f675d51483e33291e140a00000000000000000000000004101d2935404b555d606666666666666666666767686a6f78828f9ca69f93887e746d68676666666667656c707b85929f968e81776e69686b75828f8376695d5043362a1d100000000000000000000000000000000000000000000000000000111e2b3844515e6b778491998b7e71685e544b433e3a3630313130303031313230363a3b3f44464b51555d606b707d86929a897d7063564a3d3023170a000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeada094877a6d6154473a2e211407000714212d3a4754606d7a8686868686868686868686868686868686868686868686868685858483817f7d7b7874716d67625f58534d443f382f281f170e050000000000000000000000000a1623303d495663707c868686868686868175685b4f4235281c0f00000000000000000c18242f39434b51535959595959595959595a5a585f666f7c8996a29891847a6e69605d565a5a555c606366686e72777c81868e9297928c857f79726d67605d56595959595959595a5a5b545c60636d7a8794a0ada195887b6e6255483b2f221508000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000006131f2c3845515c6773808c98a2aeab9f958f81786e6a62605b535a59595a565d60666d737f8b939eabada1968b7e7265564d41362a1e110500000000000000000000000000000815212e3b4854616e7b87939faca0968a7d8a95a0aca196897d7063554c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e161e252a2d2e37322d2c29241d1a14100b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e1a26313c44515c666d6e6a5f53473a2e1f14090000000000000000000000000000000714212e3a4754616d7a878787878787878787868583807d79716c655e5651575f61696e73787c7f82858687878787877f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332a2a2a2a2a2a2a2a2a2a2a2a29292827252321201e1a1413110d080200000000000000000000000000000000000000000000000000000000010b151f2a333e45515d676f7c86929fa5afaba1968f82756d62584e4f59606d79839098a3aeb3a99f948c7f736a60554b41362c21170c02000000000000000000000000000c18242f39434b51535959595959595959595a5a585f666f7c89969f948c7f726c615e565959595a535b606973808d999184796d655e596774818d8376695d5043362a1d100000000000000000000000000000000000000000000000000000111e2a3744515d6a77849092867a6d60564c423a312d2a252424232323242426252a2d2d33373940454b5159606b73808d988b7e7265584b3f3225180c000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6aaa094877a6d6154473a2e211407000714212d3a4754606d7a879393939393939393939393939393939393939393939a93929291908f8e8c8a8785817e7a746f6a615f575049413a312920170d0400000000000000000000000a1623303d495663707c8993939393938e8275685b4f4235281c0f000000000000000007121d2731394045474d4d4d4d4d4d4d4d4d4d4e4e54606d7a86999f92867b6e685f57524c4d4e4b515356565e61656a6f757b81878f9497928c857f79726d68625f585553504a4d4d4e4d52545c616e7a8794a1b5ab94877b6e6154483b2e211508000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d1003000000000000000000000000000000000000000000000713202d3a4653606d7985929eaaaea3999083786d665f575350494d4c4c4d4c52545c606d75818e99a4afa89d908377685e5246392d201407000000000000000000000000000713202c38444f5966737f8c99a4aa9d91847784919daaa89b8e8174675d5145392c20150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c1620283036393a443e3a38352f2a251f1c16100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151f2834404a545c60625f574e42372b1e0d020000000000000000000000000000000714212e3a4754616d7a87949494949494949a9392908d8a847e776d685e5d60696e747b8084898c8f9297949494948c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f373737373737373737373737373636353332302e2d2a2521201d19130f0a04000000000000000000000000000000000000000000000000000000030d18212935404b555f6a717e8b939ea8b2a89e938b7e726a5f5456606b73808d95a0aab4ada2979082786d60584e433a2f241a0f05000000000000000000000000000007121d2731394045474d4d4d4d4d4d4d4d4d4d4e4e54606d7a8699999082786c605a524c4d4d4d4d49505764707d8a988b7e72675d535c6675828f8376695c504336291d100000000000000000000000000000000000000000000000000000101d293643505c6976838f8f8276685d52443a3028201e1918171616171718191a1e2022272b2f353940454f59626f7b88958c7f7266594c3f3326190c000714212e3a4754616d7a87949999999999999999999999999999999999999999999da094877a6d6154473a2e211407000714212d3a4754606d7a87939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa49f9f9f9e9d9c9b999797918e8a85817c756e69605b534c433b322920160c03000000000000000000000a1623303d495663707c89969f9f9f9b8e8275685b4f4235281c0f0000000000000000010b151f272f35393a404040404040404040404145515d67798692958b7e71695f564d45414041404546494c5254585f62696e747c828b929897928c857f7a746f6a6662605c545a5a5a565e61666d73808c99a6afa399877a6d6054473a2d211407000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d1003000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a1adac9f92877c6f665c544e46443f403f404041454a515b616e7b87939facaca095877a6e6154473b2e211408000000000000000000000000000916222f3b4854606b7784919eaba99a8d8073808d99a8ac9f92867a6d6054473c31261a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a414647514b4745403936312c271f1d18120e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c18232e39424a515355534e453c31261a0e000000000000000000000000000000000714212e3a4754616d7a8794a0a1a1a1a1a1a49f9e9c9a96918b827a6e69676d737b81868c9196999c9ea1a9a1a1998c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c4444444444444444444444444443434241403f3d3b3a36302e2d29241e1b160e09030000000000000000000000000000000000000000000000000000060f18242f39434e58626c75818e96a0aaafa59f92867c6e665c5d68707d88939fa7b1afa59f92857b6e665c50463d31281d1208000000000000000000000000000000010b151f272f35393a404040404040404040404145515d6779869293877c6f665b504641404040403f4a5663707d899285796d605554606d79858f8275695c4f4236291c0f00000000000000000000000000000000000000000000000000000e1b2835414e5b6874818e8d817467564c4132281e16110e090a0a090a0a0b090e1114171b1f24292f353d4753606d7a86938d8073665a4d4033271a0d000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c919594877a6d6154473a2e211407000714212d3a4754606d7a8793a0acacacacacacacacacacacacacacacacacacb6afacacacabaaa9a7a6a9a19e9b98928e87827b726c655d554c443b32281e150b000000000000000000000a1623303d495663707c8996a3aca89b8e8275685b4f4235281c0f000000000000000000030d151d24292c2d333333333333333333343a4753606d7a86999083786c60574d443b352f2e34383a3c4146474e53575e616a6e767e8690949e97918c85817b77736f6d666867666769686e72787f87939facac9f9286796c605346392d201306000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000005121e2a36424d576874818e9ba9a8a99b8e81756a5f544b423c37332d33333035394046525e697683909da9b1a7978a7d7064574a3d3124170a00000000000000000000000004111d2935404b5563707c8996a0aca197897c707c8896a0aca2988b7e7165574d42372b1c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a444c52545d5853514b46423b38322c29241d1a14100b040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c2730394044464847423c332a201509000000000000000000000000000000000714212e3a4754616d7a8794a0adaeaeaeb6afacaba9a8a19e948f837b6e6f7980868e92999ea1a8a9abadb3aea5998c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726659515151515151515151515151515050504f4e4d4c4a4746423e3a3935302c27211a150e06000000000000000000000000000000000000000000000000000007121d27313c46505a606d79849198a3aeaea2989083796d60606d7a84919aa4afb2a89d938a7e71695e544a3f342b1f160c0000000000000000000000000000000000030d151d24292c2d333333333333333333343a4653606d7986998e81756a5f544a3f363033332d3e4a5764717d8a8e8174675d515b66717d8a8e8175685b4e4235281b0f00000000000000000000000000000000000000000000000000000d192633404c5966737f8c8c7f7366594c402f26160c050200000000000000000205060b0f12181d242d3a4754606d7a87938d8074675a4d4134271a0e000714202d3a4753606d798080808080808080808080808080808080808080808080839194877a6d6154473a2e211407000714212d3a4754606d7a8793a0adb9b9b1aba9a7a7a7a7a7a7a7a7a7a7a7a7a7a7a8a8a8a9aaacaeb5b3adabaaa29f9a938f867f776d675e564c443a30271c12070000000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000030b12181d1f202626262626262626262e3b4754616e7a87958a7d70655b50453c32292423282c2d3036393c43474d52585f626c717b838c92999e98928d88847f7c79767574737475777a7f848c9399a4afaa9d908377655b5044372b1f1205000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000714202d3a46525e6978849197999b9d97897c6f63584e4239302b272226262b2e3137424d576875818e9ba8b2a5988b7f7265584c3f3225190c0000000000000000000000000613202c3945515d6774818e9ba8ab9e9285796d7784919eaaaa9c908376695f5347382e23170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c565e616a65605d55534d48443d39352f2a251f1c16100d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3b3a37312a21180e03000000000000000000000000000000000714212e3a4754616d7a8794a0a6a6a6a6a7a8aaacafb2ada69e9591847a7c848d92999fa3abacb2b3afadb5b2a5998c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f72665d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5c5c5b5a585654524d4b4746413a38322b261f180f0900000000000000000000000000000000000000000000000000010b151f2a343f45515d676f7c86929fa5afaaa0958c80736a6c75818e96a1acb5aba0968e81746c61574d42382e22190d04000000000000000000000000000000000000030b12181d1f202626262626262626262e3a4754616d7a8795887c6f62584e42382d252626323f4b5865727e8b8a7d70635558606c7883908d8073675a4d4034271a0d00000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a8c7f7265594c3f32261906000000000000000000000000000003070c14212e3b4754616e7a87948d8073675a4d4034271a0d0006131f2c3945515d676d7373737373737373737373737373737373737373737376828f94877a6d6154473a2e211407000714212d3a4754606d7a8793a0adbcb1a79f9d9a9a9a9a9a9a9a9a9a9a9a9a9a9a9b9b9c9d9e9fa3aba7abadb2aeaca49f98928c82796e685e564c42392e23180d0400000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000001070c1013141a1a1a1a1a1a1a1a23303c4956636f7c899184776b6153493f332a2019181c1f20252a2d32373b42464e535a62696e787f8791969d9f9a95908c888583818080818284878b91959fa4abb2a89a8d81746753493f33271b0f03000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000815212e3b4854616e7b87898a8c8e909285796c6053463c3027252a2d2e31373a3c4347505b6575828e9ba8b3a6998c807366594d4033261a0d0000000000000000000000000714202d3a4753606d7a85929faca99a8e81746673808c99a7ab9f94887b6e62544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e686d77716d67615e57544f4745403936312c27201d18120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151c23282c2d2f2e2b2620180f0600000000000000000000000000000000000714212e3a4754616d7a879499999999999a9b9d9fa4abacb0a8a09691848691969fa3abafb1acaaa6a2a0a9aba5998c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a696968666563615e575854524c48433d37312a211b120a01000000000000000000000000000000000000000000000000030d18222935414b555f6a727f8b939ea8b1a79f92877c6f707d8a939ea8b2afa3999184796d605a50453b30261c1007000000000000000000000000000000000000000001070c1013141a1a1a1a1a1a1a1a222f3c4955626f7c889083776a6054463c2f261c1a2734404d5a6773808d867a6d60555f6a727f8b958b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000814212e3b4754616e7b878c807366594d402d22170b000000000000000000000000000000000815222f3b4855626e7b88958d8073665a4d4033271a0d0004101d2935404b555d606666666666666666666666666666666666666666666a76839094877a6d6154473a2e211407000714212d3a4754606d7a8793a0adb8ab9f95908e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8e8f90919299979a9ea1a8aab0afaaa39f948f837a6e685d544a4034281f160c01000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000406070d0d0d0d0d0d0d1825323e4b5865717e8b8b7f7265594f41382d21180e0c101313191e20262b30363c434750575f666d737c848e939ea1a09d999892908e8d8d8d8f9196989da0a7afb5aca1968a7d7063574a3d2d22170b00000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000714202d3a46525e69767a7c7e808284868276655b5044372c2d3036393b3e4347484e5359606c7884919eabb2a6998c7f7366594c403326190d000000000000000000000006121e2b37424d5765717e8b98a2ada197897d70636e7b8895a0aca6998d8073665c5044382b1f1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a837e79736e6963605953514b46423b38332c29241d1a14100b040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f2022211e1a150e060000000000000000000000000000000000000714212e3a4754616d7a878c8c8c8c8c8c8d8e9093999da0a7aea8a096919298a0a8aeafaca7a09d9996939c9fa6998c7f7266594c3f3326190c00000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7777777777777777777777777777777777767675747372706e696865615d56544f47423c332d241c130a00000000000000000000000000000000000000000000000000061018242f3a434e58626d75818f96a1abaea3999083777a85919ea5afb0a69f92877c6f675d51483e33291e140a0000000000000000000000000000000000000000000000000406070d0d0d0d0d0d0d1824313e4b5764717e8a8c7f7265584e43342a1d141c2936434f5c6976828f8376675d5d676f7c869299897c706356493d3023160a00000000000000000000000000000000000000000000000000000714202d3946525e6877848d81746753493f33271b0f03000000000000000000000000000000091623303c4956636f7c89968c7f7366594c403326190d00000c18242f39434b5153595959595959595959595959595a5b5c5b595959576a77849194877a6d6154473a2e211407000714212d3a4754606d7a8793a0adb6a99d90838181818181818181818181818181818282838486888a8d91969c9ea6acb2aea69f9590837a6d665c51443e31281e1308000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000c1926333f4c5966727f8c867a6d6154473e2f261b0f06000406080d11151b1f252a31373f454d545c606a6f79818a91979fa4aaa29f9c9b9a999a9c9ea0a8aaacb1bbafa59e9184786c605346392d20130600000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000005121e2a36424d575e676d6f71737577797a6d6053493f35393a3d4146474b4e5355585f626b717e8b96a1acb4aa988b7e7265584b3f3225180c00000000000000000000000814212d3a47535f697683909caaab9e9285796d606a7783909dabab9e9184796d6053463a3024190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a878b85807b75706b65605d55534d48443d39352f2a261f1c16110d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c1012131514120e0903000000000000000000000000000000000000000714202d3a4753606d7980808080808080808184868b91959fa2aaa8a09d9fa3aab1aca49f9b95918c89878f949f988c7f7265594c3f3226190c00000000000000000714212d3a4754606d7a8793a0adb8ab9e9185838484848484848484848484848484848383838281807f7d7b7875716d68636059534d453f362e251c13090000000000000000000000000000000000000000000000000007131d28313c46515b606d7a849199a3aeab9f948b7e818e97a1adb3a99f948c7f726a60554b40362c21170c020000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c877b6e6154473c3221180b1e2a3744515d6a77848d80736755606d7a84919892867a6d6053473a2d201407000000000000000000000000000000000000000000000000000005111e2a36414d566774808d8276655b5044372b1f12050000000000000000000000000000000a1724313d4a5764707d8a978b7f7265584c3f3225190c000007121d2731394045474d4d4d4d4d4d4d4d50545c6064676869686663605e6978859293877a6d6054473a2d211407000714212d3a4754606d7a8793a0adb2a5998c7f74747474747474747474747474747575757677797b7d8184898f949da0a8afb0a7a0959082786d60594f433a2f24190d020000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000714212d3a4754606d7a848276685d5246392c1d140a000000000001050a0f141a20262b333b424a505860676d747d848d93999fa6aca9a8a7a6a7a8aaacb2b7b8b5aea69e938b7e71665b5044382b1f120600000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d1003000000000000000000000000000000000000000000020e1a25303b454d555d6062646668666d6d685d52413b4145474a4c525457585f62666a6e747d86929fa8b2aea398897c6f6356493c302316090000000000000000000003101c28343f4a54616e7b88949faba89a8d8174665c65727f8c99a3ada196897d7063564c4135291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8797928d87827d77716d67615e57544f4745403936312c27201d18130e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070808060200000000000000000000000000000000000000000006131f2c3945515d676d737373737373737475777a7f848b9298a0a8acaaacaeafa79f9a938e8984807c7a828f9c978b7e7164584b3e3125180b00000000000000000714212d3a4754606d7a8793a0adb9ada197919090909090909090909090909090909090908f8f8e8d8b898785817e7a756f6b615f57504840372e251b1007000000000000000000000000000000000000000000000000010c161f2a343f45525d686f7c87929fa6b0a69f928587939fa9b3ada2978f82786c60584e433a2f241a0f05000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a848276695e52463a2d20140a1723303d4a5663707d867d70645764717d8a959c8f8276675d5145392c2013060000000000000000000000000000000000000000000000000000020e1925303d495663707c8985796c605346392d2013090000000000000000000000000000000b1825323e4b5865717e8b978a7e7164574b3e3124180b0000010b151f272f35393a40404040404049515a61666d707375757473706d676e7b879793867a6d6053473a2d201407000714212d3a4754606d7a8793a0adb2a5998c7f72676767676767676767676767676868696a666d6e7174787d828991969ea5afb1a79f948d80746c61564c4135291f14090000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000613202c3945525d68707d7f7265564c4135291a0b02000000000000000002090e151a212930383f444e555d606b707a80878f949c9fa4abacaeb4b1b2b2b1b2adaba39f948f81756c62544a3f33281c0f0300000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000009141f29333b434b5154565759545c60605d564c46484b515457565e6164676a6f72777b81879298a2aeb6ac9f92867a6d6053473a2d2014070000000000000000000006121f2b3844505c6673808d99a6aca196897c6f6354616e7b86929faca89b8e8175685d5246392d20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87949e99928f89837e79736e6963605953514b46423b38332c29241d1a140f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b555d60666666666666666768686d72787e869195a0a7b1b5aba49f959087827c77736f7784919e99897c6f6356493c3023160900000000000000000714212d3a4754606d7a8793a0adbeb2a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9c9c9b99989697918e8b86827c766e69625a514940372d23190d04000000000000000000000000000000000000000000000000040d18222935414c56606a727f8c949ea8aea29892939aa4afafa59f92857b6e665b50463d31281d120800000000000000000000000000000000000000000000000000000000000000000000000613202c3945525d68707d7f7265574d42362a1e110916222f3c4854606b74807a6e6154606c788390968a7e7164554b4035291d10040000000000000000000000000000000000000000000000000000000813202d3a4653606d7985887b6e6255483b31251a0e0100000000000000000000000000000d1a2633404d596673808c968a7d7063574a3d3024170a000000030d151d24292c2d333333323d47515b636c71797d808282817f7d7a76727d8a979886796c605346392d201306000714212d3a4754606d7a8793a0adb2a5998c7f72665b5b5b5b5b5b5b5b5b5b5b5b5b5b5c545c606264656c70767d848f939ea5afb0a69d928a7d70685d52453b30251a0e0100000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000004111d2935414c56606b70796d6053463a30241907000000000000000000000003090f171e262e343d434b515961686d747c82898f93999c9fa2aaa4a5a5a4a8a19e99928d82796d605a5042382d22170b0000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000000030d172129313a414547494b4d4a505354524c4d5355555d606467686e7174787b7f83888e9299a2aab4afa49a8e8175675d5145392c201306000000000000000000000713202d3a4653606d7984919eabab9e9184786c60535e6876828f9caaac9f92867a6d6154473c31261b0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0a39f9b95908b85807b75706b65605d55534d48443d39352f2a261f1b17110d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f39434b5153595959595959595a565e61666d727b839095a0a8afa499938c837c756f6a666e7b88969f9286796d6053473a2d20140700000000000000000714212d3a4754606d7a8793a0adbabbb2adabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9a9a8a7a6a5a9a19e9b99928f89827b716c635b51493f352b1f160c01000000000000000000000000000000000000000000000000071019242f3a444e58606c77828f96a1abaaa29f9fa4acb2a89d938a7e71695e544a3f342b1f160c00000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c56606b70796d6053463b30251a0e0714202c38444f59606d796e685e525b656f7c879184786d6053463a2f24180d0100000000000000000000000000000000000000000000000000000006121f2b3844505c6674818b7f7265574d42362a1d120700000000000000000000000000010e1b2834414e5b6774818e95887c6f6255493c2f22160900000000030b12181d1f2026262c38434f59636d727e848a8d8e8f8e8c8986837f808d9a928679655b5044372b1f1205000714212d3a4754606d7a8793a0adb2a5998c7f7266594e4e4e4e4e4e4e4e4e4e4e4e4f4f4a505355535b60636b6f79818e939ea7b1aea49e91847a6d60574d42362a1e130800000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000000000000000000000000000000000010d19242f3a434f5960666d665c514538281e130800000000000000000000000000060c141c2328313a40454f565d606a6f767c82878c8f929896989898979696918e8680786d675d51483f2f261c11060000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000000050f171f282f35393a3c3e403f44464d5254575f6165676d7074777a7e8184888c90959a9fa3abb4b0a69f93877c6f62554b4035291d100400000000000000000005111d2935414c5663707d8a96a1ada7998c8073655b505664717e8a98a2aea3988b7f7265584e43372b1c120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794aaacaca7a09d97928d87827d77726d67615f57544f4745403a36312b27221b18130e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2731394045474d4d4d4d4d4d4d4d4c52545c60696e7a839096a1ab9f93877f776f6a626066737f8c999c8f8276675c5145382c1f130600000000000000000714212d3a4754606d7a8793a0adbabab2adabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaeb4b1b3adababa39f9b948f867e736d635b51473d31281d13070000000000000000000000000000000000000000000000000008131e28323d44505b656d7a849199a3afaeacacafb5aba0968e81746c61574d42382d22190d04000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a434f5960666d665c514538291f140902101c27333d44515c666d665e564c53606a74818a7d70665c5044382b1d12070000000000000000000000000000000000000000000000000000000003101c28343f4a54626f7c888376695e5346392f23180c0000000000000000000000000003101c2936434f5c6976828f94877b6e6154483b2e211508000000000001070c1013141a222f3b4854606b727f8a91979a9b9c9b9999928f8b8d929f9285786c5f493f33271b0f03000714212d3a4754606d7a8793a0adb2a5998c7f7266594c414141414141414141414242423f4446484950535960676d78818e959faab4ada1968d8073695e52463a2f24190d01000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000008131e28313d474f545c605c544b4034281c10040000000000000000000000000000020a11171f282f353e434c52585f626b6f757b7f8385888a8b8b8c8b8a8884817b746d665d554b41362d1d140a000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000050d161d24292c2d313a41454e53575e6166696e72767a7d8184878a8e9196999d9fa7acafb4aea69f948d80746a605443392f24180d010000000000000000000713202d3946525e6875828e9ba9aba095887b6e62534953606d7985929facaa9d9083776a5f5347392e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87989ea0a8acaca9a29f99938f89837e79736e6963605953514b46423b37332d29241d1a150f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f272f35393a404040404040404141464a50575f686e7a849199a3988b7e736c655f58606d7984919e988b7e7164554b4034291c100400000000000000000714212d3a4754606d7a8793a0adbdb2a8a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9e9fa2aaa5a8abaeb4aeaca69f98928b7f736d62594f433a2f24180d02000000000000000000000000000000000000000000000000010c162027333f49535e686f7d87929fa8b2b8b9bbaea3999184796d605a50453b2f261c1007000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313d474f545c605c544b403428170d080d141a212834404a545c605c544c444e58616d7a81746c61544a3f34281c0c0100000000000000000000000000000000000000000000000000000000000b17232e3847535f6a7683867b6e61554b4034291c110600000000000000000000000005111d2935414c566a7784919786796d6053463a2d20130700000000000000000406101d2935404b55636f7d89919ea1a9a8a8a7aba39f9c989a9d9e9184776b5e51442d22170b00000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f34343434343434343435352e34383a3b3f44464f555d666d79839098a2aeb2a89f92867b6e61554c4135291d1104000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000010c161f2b353d424b5153514b42392e23180c0000000000000000000000000000000000060d161d2429313a41454e53596063696e7276797b7d7e7f7f7e7d7b78746e69605c544b433a2f241b0b02000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000040c1318212a333c434b51585f62696e72777b7f83868a8d9195979a9ea1a8aaabb1b4aeaaa39f948f82796d60584e4331281d1207000000000000000000000714212e3a4754616d7a86929facab9d9083776a5f5345515d6774818e9ba8ab9f95887c6f62544a4034281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a868c91969b9fa4abadaba49f9b95908b85807b75706b65605d55534d46443f38352f2b261f1b17110d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d24292c2d333333333333333035383f444d565e686f7d87929f9b8e81746c61585c66717e8a969f92857a6d6054473a2f23180c0000000000000000000714212d3a4754606d7a8793a0adb9ada1969190909090909090909090909090909090909091929895989b9fa2aaacb2b0aaa29f918b7f726b60554b4035291f140800000000000000000000000000000000000000000000000000040d17222d38414c56606b737f8c96a0acb9c5b9ac9f92877c6f675d51483e33291d140a000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2b353d424b5153514b42392e23180d13191f252a2d2e39424a5153514a423d46525e686d746f645a5042382e23170b00000000000000000000000000000000000000000000000000000000000006111c2b37434e5864717e8a8073675c5145382e23170b0000000000000000000000000713202d3946525e68798592928578675c5145382c1f130600000000000000000006131f2c3845515d6776828f9ca3adb2b1b0b1b5aeaca9a5a7a99c8f8376695c504336291d0600000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332828282828282828282823282c2d2d33373d434b545c676e7b86929fa8b2aea3988d8074675d5145392c201409000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000000040d19232b303940454645403930271d1207000000000000000000000000000000000000040c13181f282f353c43474f54575e6165666d6e7071727271706e6967615f57514a423a31281d120900000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000000000000000a151e29333c454d555d606a6f757b7f83888c8f92999a9da0a8a7abadb2b5aeacaaa29f98928c82796d675c51463c321f160c0100000000000000000006131f2b37434e5865727f8b99a3aea3998c7f7265584e434b5563707d8996a1ada79a8d8073665c5144382c1f1408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d686d7a7f84898f93999ea1a9abaca7a09d97928d87827d77726d67615f5753504945413a37312b27221b19130e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f202626262626262625292e343c444d56606b727f8c939d938a7d706a61606d7984919e998d8073675d5145392c1d12070000000000000000000714212d3a4754606d7a8793a0adb8ab9e9184838383838383838383838383838383838384848587898b8e92989ea1a8afb4aea39f92877d6f675d51453b3025190e000000000000000000000000000000000000000000000000000006111b262f3a444f59606c7984919eaab7bfb2a5998c7f726a60554b40362c21170b0200000000000000000000000000000000000000000000000000000000000000000000000000000000040d19232b303940454645403930271d13191e252a30363a3b3d3940444644403935414c565e6168645d53473e30261c1106000000000000000000000000000000000000000000000000000000000000000f1b26323c4653606d798585796d60544a3f34281c120700000000000000000000000714212e3a4754616d7a87989084776a554b4034281c10040000000000000000000714202d3a4753606d7a86929facaaa8a5a3a4a7abaeb3b2b4a89b8e8175685b4e4235281b0f02000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f33261b1b1b1b1b1b1b1b1c171c1f2022272b3139424b555f69727f8b96a0acb4aa9f92857a6d6054473b31261a0e020000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000000000711191e272e34383a38342e271e150b000000000000000000000000000000000000000001070d161e242932373d44484d5254545c6062636565656463625f5755534d44403930281f160c0000000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d10030000000000000000000000000000000000000000000000000006111c26303b454d575f676d747c82868c9095989c9fa3abaaacb1b4b3adababa39f9c98928d867f786d675d554b40342b200d04000000000000000000000815212e3b47535f6a7783909dabac9f92867a6e6154473c4653606c7884919eabab9e9285796d6053463b3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d686d72787d82878d92979c9fa6acaca9a29f99938f89847e7a746e6963605b53514b47423c37332d29241e1a150f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013141a1a1a1a1a1a1a191c2328323b444f59626d75818f959f92857c716c6a727f8c969f92867b6e61554b4135291d0b010000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f77777777777777777777777777777777777778797a7c7e82858b91969da5aebaafa3999184796d60564d41362a1c1106000000000000000000000000000000000000000000000000010c161f28333f4a545e69717e8a96a0acb9beb1a4988b7e716a5f554b40352921180d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000711191e272e34383a38342e271e181e242930363b4246484948443d3a38342e303a444c52545b59534b41352c1e140a00000000000000000000000000000000000000000000000000000000000000000a151f2c3845515c67727f8b7e71665c5044392e23180c00000000000000000000000916222f3c4955626f7c88958f8275695c4f422e23180c000000000000000000000815222e3b4855616e7b8899a3a69e9c9897979b9fa2aaaeb3a6998d8073665a4d4033271a0d00000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190e0e0e0e0e0e0f060c101213171b1f272f39434d57606d7984919ea9b3aea2988b7f7265574d42362a1e12050000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000070c151d23282c2d2c28231d150c0300000000000000000000000000000000000000000000040c131920262b32383b4246484a50535557585859585755534d4846423b342e271e160d040000000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d1003000000000000000000000000000000000000000000000000000c17232e38424d575f696e7981878f92999da0a7a9acaeb5b6afacaaa9a29f9b99928f8b85807b736d665d554b43392e22190e0000000000000000000004101c2834404b54626f7c8895a0acaa9c8f8276685e52463944505b6673808d99a7ada1978a7d7064564c41362a1e1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a444c565d61656c70757b80858a90949a9fa2aaacaba49f9c95918b85807b75706c65605d55534d46443f38352f2b261f1c17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070d0d0d0d0d0d080d11172029323d46515b606d798390959792867e76717c86929f988e8174695e53433a2f24180d000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6b686d6f7275797e848e939da4aeb5aba0968d8073685e5246382d22170b00000000000000000000000000000000000000000000000007131d28313a44505b666e7b85929fa8b2bdbeb8ac9f92867c6f675d51453e332a1f150b010000000000000000000000000000000000000000000000000000000000000000000000000000000000070c151d23282c2d2c28231d1d242930353a41464d525456544f473d31282328323a4146474e4d4841392f231a0c02000000000000000000000000000000000000000000000000000000000000000004101c2834404b55606d7a8584786d60544a4034281c1106000000000000000000000b1724313e4a5764717d8a978e8174675b4e4134281b07000000000000000000000916222f3c4955626f7c8895a39b948f8b8a8b8e92989ca4aeab988b7e7165584b3e3225180b00000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c01010101010200000306060b0f151d27313b44515c66717e8b97a2adb4aa9d908376695f53463a2d2114070000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000000000000030b12181c1f201f1c18120b0300000000000000000000000000000000000000000000000001080d151b21272c30363a3b3f4446484a4b4c4c4b4a4847423c3a363128231c150c04000000000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000000000003101c28343f4a545e696e7b848e939a9fa3abacb1b6b3adabaca49f9d9997928e8b86827e7a746e69605c544b433a30271d10070000000000000000000006131f2c3845515c6674808d9aa7aea2988b7e7164564c41363f4a54626f7b8895a0aca99b8f8275685e5246392d20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a444c52535b6063696e73797e83888e92989da0a7acaca7a09d97928d87827d78726d67615f5753504945413a37312b28221c140b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e17202b343f45515d676d7a83909598928a837e8390989f92867b6e61574d4231281d1307000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f72665d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d565d606265676d7179818d929da6b0b2a89f92867b6e61544a3f33281c0f0300000000000000000000000000000000000000000000050f18242f3a434e58606c78829097a2adbab8b1b3aea2989183796d605a50463c31271d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f201f1c181f282f353a41454c52575e616360594f43392f2a2d2e3035393a41403c372f271d1108000000000000000000000000000000000000000000000000000000000000000000000c18232e3945515d67737f8b7e71665c5144382e23170c000000000000000000000c1926333f4c5966727f8c998c7f7366594c403326190d000000000000000000000815222e3b4855616e7b88949b918c827e7d7e81858d929ca8a399887c6f6255493c2f22160900000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000030b151f2834404a54606d7985929fabb8ab9f95887b6e6155483b2e23180c0000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000070c10131313100c0700000000000000000000000000000000000000000000000000000000040a0f161b1f252a2d2e34383a3b3d3e3f3f3e3d3b3a37312d2a261f18120b0300000000000000000815222f3b4855626e7b8895a1aea99c8f8376695c504336291d100300000000000000000000000000000000000000000000000006121f2c3844505c666e7b8491969fa4acafb5afaca9a9a19e9b9a93908d8985827e7a76716d67615e57504a423a31281e150b00000000000000000000000713202d3a4653606d7985929eabac9f92867a6d6053473b303847535f6a7783909dabac9f92867a6e6154473c32271b0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c162028323a4146495053575e61666d71767c81868b91959b9fa3abaca9a29f9a938f89847f7a746e6963605b53514c47423c38332d261d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e19222935404b555e686d7a838f949f94908b90959f978d8073695e53453b311f160c01000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266595050505050505050505050505050514c525456555d60676d74808d949eabb5aea2988c8073665b5044382b1f1206000000000000000000000000000000000000000000020b17212935404b55606a737f8c949fa9b3aeaca5a7acaaa0958e81746c62584e43392f24180f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131313131d28313a40454c52565e61696e706b60554b403536393b3d3c38333534302b251d150b000000000000000000000000000000000000000000000000000000000000000000000007121d2935414c55606d7a8584796d60544a3f34281c10030000000000000000010e1b2834414e5b6774818e978b7e7164584b3e3125180b000000000000000000000814212e3b4754616e7a8799978c7f757270717479808d99a69f9286796d6053463a2d20130700000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000030d18232e3945515c6774818d9aa9b3b1a7988c7f7265544b4034281c100400000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000000004060706040000000000000000000000000000000000000000000000000000000000000000040a0f141a1e2023282b2d2f3032323231302f2e2b26211e1a140c07000000000000000000000815222f3b4855626e7b8895a1aea99c908376695d5043362a1d0600000000000000000000000000000000000000000000000004101c2834404a54606d78839096a0a8afb2adaba39f9c9997918e8a8783807c7975716d6864605d55524d443f3830281f160c030000000000000000000005111e2a36424d5664717d8a97a1ada99b8e8175675d5145392b37434e5865727f8c99a3afa3998c7f7265584e43372b1d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1620283035383f44464d53545c60646a6f747a7f84898e92999ea1a9abaca49f9c96918b85807b76706c65605d55534d46443f382f261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071018242f3a434c565e686d79828c92999c979d9f9e92857a6d60574d4233291f0d0400000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c4444444444444444444444444444414547494b51555d606c78828f99a3aeb4aa9e9184786c605346392d2013060000000000000000000000000000000000000000000a141d29333b45515d676f7c87929fa6b0aaa29f989ba3aca79d938b7e716a5f554b40352921180d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070d18242f3a434b51565d60686d747b7d70675d51453b4146474a48443d352b20201a130b030000000000000000000000000000000000000000000000000000000000000000000000000d19242f3a45515d67727f8b7f72665c5044382c1f1206000000000000000004101d2935404b556976838f96897c6f6356493c30231609000000000000000000000713202d3a4653606d7986939285786c65646468727f8c99a59d908377665c5145382c1f130600000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000007121c2834404b55626f7c8997a2adb5a99c8f8276665c5145382c1f130600000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e1214171c1f202224252526252422211e1a15120e090300000000000000000000000815222f3b4855626e7b8895a1aea99d9083766a5d50432e23170b00000000000000000000000000000000000000000000000006121f2c3844515c66727f8b959fa8b2afa8a19e9992908c8885817e7a7773706d6664605d5653514b46423b342e2d28221a1108000000000000000000000714202d3a46525e6975828f9ca9ada1978a7d7063554b403529313c4754616e7a86929facab9d9083776a605447392e23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e161e24292d33373b42464b5153585f62676d72777d82868c91969c9fa6abaca8a09d98928d87827d78726d67625f5753504a42382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a444c565e676d777f8791959ea19f948b7e71685d52453b3121170d0000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3737373737373737373737372f35393a3c40454b515b666e7b86929facb9ada197897c6f6356493c30231606000000000000000000000000000000000000000006111c262f3b45505a606d79849199a3afaea298928b919ba5afa59f92867c6e675d51453e332a1f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b555d60686d737a808685796d60564c454c525456544f473d32281e1308000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935414b55606d798484796d6053463a2d201307000000000000000006131f2c3845515d6778849199877b6e6154483b2e2115080000000000000000000006131f2c3845515c67788491908376665b5b666e7b85929eaa9a8d807467544b4034281c100400000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000c18232e3a4653606d7985929fabb8ac9f9285796d6053463a2d20130700000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000205060b101213151718191918171514120e090502000000000000000000000000000815222f3b4855626e7b8895a1aeaa9d9084776a544a3f34281c100300000000000000000000000000000000000000000000000713202d3a4653606d7985919ea7b1afa59e96918b86837f7c7874716d686663605c5454524c4947464142403d3c39332c231a10050000000000000000000814212e3b4754616e7b86929facab9e9285796d6053463a2f242d3946525e6876828f9caaaca095887c6f62554b4034281c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191b22272b3136394045464e53555d60656b70757b80848a8f949a9fa2aaacaaa29f9a938f8a847f7a746e6963605b544a3f33281c0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f29323a444c555d656c737c848b9297999083776c60564c4133291f0f050000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332a2a2a2a2a2a2a2a2a2a2a24292c2d2f3539404a545f6974818e9aaab4b2a9998c7f7366594c402e23170c00000000000000000000000000000000000000040d17222d38424d57616c74818e96a0abb1a79f92867e8b939ea9aea2989083796d605a50453c31271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d737a80868d928c7f72685d5252565e616360594f443a3024190d0300000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a45515c67707d7c6f665c5044382c1f120600000000000000000714202d3a4753606d7a86939286796d6053463a2d2013070000000000000000000004101c2834404b556976828f908377695f656c78828f97a2a298897d7063564a3d2e23180c0000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000007121f2b3844505c6675828e9ba8b5aea298897c6f6256493c2f23160900000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030607080a0b0c0c0b0a08080602000000000000000000000000000000000815222f3b4855626e7b8895a1aeab9e918578665c5044382b1f120600000000000000000000000000000000000000000000000a1724303d4a5763707d8a97a1adb0a69e938e847f7a76726f6c6564615e565653504a5053575654524c4f4d4a49443e362c22170b000000000000000007131f2c38434f5966727f8c99a3afa89a8d8074665c5044382c1d2a36414c5664717e8a98a2aea79a8d8174675c5145382c1f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171b1f252a2e34383c43474c5154596063696e73797d82888d92989da0a7acaca49f9c96918b85807b76706c665b5044382b1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d172029323a434c535b606a6f787f858b8f877c6f655b50433a2f21170d000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f33261d1d1d1d1d1d1d1d1d1d191d202124292f38424d5763707d8998a3aeb5a99c8f827669544a3f34281c10030000000000000000000000000000000000010c161f28333f4a545e69717e8a939da8b2aba0958c7f75818e97a1adaaa0958e81746c61574d43392f23180f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797f858d92989f92857a6d60565d60686e706b60564c4135291f1409000000000000000000000000000000000000000000000000000000000000000000000000000007131d2834404b55606b706f6a5f544a3f34281c100300000000000000000915222f3c4855626f7b889a918477665c5044382b1f120600000000000000000000000c18232e404d596673808c92877b6e696e77808d949fa99f9285796d6053473a2d2014070000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000003101c28343f4a5465727f8c98a5b2b4aa988b7e7265584b3f3225180c00000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeac9f9286796d6053463a2d20130700000406070604000000000000000000000000000000010e1b2734414e5a6774818d9aa9b3ab9e938e8179726d686662605b5354524c49464a545b606462615e565c5a575550483e33281c1004000000000000000915222f3b4854606b7784919dabaca096897c6f62544a3f34281c25303b4753606d7985929fabab9f9285796d6053463b30251a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1d23282c32373a4145474f54565e61666d71767b80858b90959b9fa3abaca8a09e98928d87827d786c605346392d20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e172029313a4149505860666d72797e827f736a5f53493f31281e0f05000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326191111111111111111080d111314181d262f3c4753606d7a86929facb7ab9e918478665c5044382c1f1206000000000000000000000000000000000007121d28313944505b666e7b85929fa5afafa3999083786d7a85929ea5afa79d938a7e71695f554b40342921180c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c92979fa2a2978d80736860686d737a7d70685d52453b30251a0e0300000000000000000000000000000000000000000000000000000000000000000000000000010c18232e39434f596063625f584e42382e23170c0000000000000000000a1724313d4a5764707d8a978f827669544a3f34281c10030000000000000000000000071623303d495663707c899790837b787b828d929da6a99c8f8275675c5145382c1f13060000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000b17232e3d4a5663707d8996aab4b4a79a8d8174675a4e4134271b0700000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000000000000000004060707060503000000000000000000000000000000000000000000000000000000000000000000010507080808080808070604000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeafa399887b6e6155483b2e221508070c10131313100c070000000000000000000000000003101d2a3643505d697683909ca9afa3998f82776d67615e56555350494746413d44505b666c716f6e686a686764615a5044392d20140800000000000004101d2935404b55636f7c8996a0acaa9e9184776a605442382e23171f2c3845515d6774818e9ba8ada2978a7e7164574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181c1f262b2f35393d44484d52545c60646a6e74797e83898e92999ea1a8abaaa29f9a938f8a8074675a4d4134271a0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f282f383f444e545c60676d7176736d63584e41382d1f160c00000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0404040404040400010407070c141f2c3845515d677784919daab7ac9f9286796d6053463a2d20130700000000000000000000000000000000050e18242f39434e58606c78828f97a2adb1a79f92877c6f68717e8a939da7afa59f92867b6e675c51453e332a1e150b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a85929fa9ada99f92867a6e6d727a8085857a6d60574d42362a20150a000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303d474f555655544e463c30261c11060000000000000000000c1926333f4c5966727f8c998d8174675a4e412e23170b0000000000000000000000000713202d3a4653606d79859295908785878f939da4ada1978a7d7164554b4034291c10040000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000614212e3a4754616d7a8798a2aeb6a99c8f8376695c50432f24180d01000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000000003060809070c1012131413120f0b06060603000001030406060606060601000000000000000000000000000002080d11141414141414141413100c0701000000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeb5ab978a7d7064574a3d2f24190f12181c1f201f1c18120b03000000000000000000000005111e2b3844515e6b7784919eaaac9f92877b6e655d55524c4946443f3a3936394653606c787e7c7a79777573706c6155493c3023160a0000000000000613202c3945515d6774818e9aa8b1a7998c807366584e4330261c111d2935404b5563707d8996a1ada99c8f8276695e52463a2d20160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10151b1e24292c32383b42464a5053585f62676d72777c81868c91969d9fa7aeaca49f9a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d161d262d333d424a51555c60656966635b51463c2f261b0d0400000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000004101d2935404b55697683909ca9b6afa399877a6d6154473a2e211407000000000000000000000000000000020b17202935404b55606a727f8c949fa9b3aba0958d80736a616c74818e95a0aaaea2989083796d605a50453b30271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d6873808c97a2a29f97928c8073797f858d928d8073695e52463c31261b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000b151e2c353d44484a4947433c342a1e150a000000000000000000010e1b2834414e5b6774818e988c7f7265594c3f3226190600000000000000000000000006131f2c3845515c6674818d9a9a9391939a9ea6aea89e9185796d6053463a2f23180c000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000713202d3946525e687985929facb7aa9e9184776b554b4035291d1104000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000000000000000000000000000040a0f12151519181c1f2020201f1b171613120f0b060d10101313131313130d0d0b0702000000000000000000050d14191e20212121212121201f1d18120b030000000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeb3a6998c807366564c4135291d1b1d23282c2d2c28231d150c030000000000000000000005121e2b3845515e6b7884919eabaa9d918477695f534b46413c3937332d2e343f4a54626f7c888987858482807e7064574a3d3124170a0000000000000714202d3a4753606d7a85929fabab9f95887b6e6155483d3222150c18242f394653606c7884919eabac9f93877b6e6154483d32271b0f010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d20272c3036383f44464e53555d60656b6f757a7f848a90959fabb6afa79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b141b2227303940444b5153585c5957514940342a1d140a0000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000c18242f424f5c6875828f9ba8b5b5ab94877b6e6154483b2e2115080000000000000000000000000000000a141d29323b45515d676f7c87929fa6b0aea3999083796d605a606d79839198a2aeaaa0958d80746c61574d42392e23180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c56606d7a85929f97928c857f7a7e848c92979f92867b6e61584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000030c1a232c33383c3d3c3b37322a22190c0300000000000000000004111d2935414c5669768390978a7d7064574a3d3124170a00000000000000000000000004101c2834404b54626f7c88949e9f9e9fa4acb0aca1968c7f72665c5144382c1d1207000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000005111d2a36414c566b7784919eaab7ac9f928579675d5145392c201306000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000000000000000000000070c10151b1f21222623282c2d2d2d2b272223201f1c17111a1c1d2020202020201a1917130e0801000000000000050e171e252a2d2e2e2e2e2e2e2d2c29241d150d0300000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeb6a99c908376685d5245392e26272b2e34383a38342e271e150b0000000000000000000004111e2b3744515e6a7784919daaa99d908376665c51443e3a38342f34383a4045505c66727f8c959892908f8d8174675a4e4134271b0e010000000005121e2a36424d5764717e8b98a2aeab9d908376695f53463a2d211407121f2b3844505b6673808d99a7afa4998c7f7266594f43382c1d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d11161c1f252a2e34383c43474b5153596063686d72787d83909daab6b4a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171e272e34394045474b4f4c4b4640372e22180b020000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000004101d2935404b556976838f9ca9b6b3a994877a6d6154473a2e211407000000000000000000000000000006111b262f3b44505a606d79849199a3aeb0a69f92867c6f675c515d676f7c86929fa5afa79d928a7e71695f544b40342821170c0300000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a45525d68737f8c928c857f7a737f8b91969ea2a3988e81746a5f53473a2e21150800000000000000000000000000000000000000000000000000000000000000000000000000000008111a21272c2f302f2e2b2620191007000000000000000000000713202c3945525d687885929a887b6f6255483c2f221509000000000000000000000000000c18232e3947535f6a75828f98a2abacafb5afa49a9184796d60544a4034281c0b01000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000010d19253043505d697683909ca9b6aea298867a6d6053473a2d201407000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000000000030b12181c1f262b2e2f322e34383a3a3937332d302d2b28221c26292a2d2d2d2d2d2d2726231f19120a0200000000020d1720293036393b3b3b3b3b3b3a38352f271f150b01000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeb9ac9f92867a6d60554b40373132383940454645403930271d1207000000000000000000020f1c2935424f5c6875828f9ba8ab9e9285796d60585048474540444045464b515a606d7884919ea29f9d9a8b7e7164584b3e3125180b00000000000714212d3a46535f697683909caaafa3998b7f7265574d42372b1e12050f1c28333f4a54626e7b8895a0abab9e9184776b605448392f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f252a2e34383c43474b5153586062686d72787d8187929facb9b4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c151c23282f34383a3e43403e3b352e251c1006000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c090909090909090909090a070c131f2c3845515d677784909daab7ada297867a6d6053473a2d20140700000000000000000000000000030d17222d38414d56616c74818e96a0abb3a99f948c7f726a5f554b555f6a717e8b939ea7aea49f92857b6e665c51453e33291e150b000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935414c56606d798585807a736d6d7a85929fa8ada99f93877c6f6255483c2f22150900000000000000000000000000000000000000000000000000000000000000000000000000000000080f161c20232322221f1b150e0700000000000000000000000714212d3a4754606d7a879793867a6d6053473a2d2014070000000000000000000000000007121d2b37434e58616e7b86929fa3abacaba39f93887d70675d5142392e23180c00000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000000081c2935424f5c6875828f9ba8b5b4aa94877a6e6154473b2e211408000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000000000000001080c151d23282c31373a3c3f424044464746443f403d3938332d2832363739393939393934332f2b241c140a0100000008141e29323b41464747474747474745403931271d1207000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aebbafa3998b7e72675c5147423f4043474b5153514b43392e23180c020000000000000000000c1926333f4c5966727f8c99a6ada2978b7e716a615a5553514b504b5153555c606c737f8c96a0acac9f93877b6e6154473b2e21140800000000030f1c28333f4a54616e7b87939facac9f92867a6d6154473c31261a0e020b17222d3847535f6a7783909dabaca096897c6f63554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040a0f13191c22282b3136394045464e53555d60656a6f747a7f84898f9299a3afb2acaa9a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d23292c2d323633322f2a231c130a00000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f33261915151515151515151516161617181d26303a4753606d7a86929facb8ab9f928578675c5145382c1f1306000000000000000000000000010b151f27333f49535e69707e8a939da8b2ada2979082786c60584e434e58626d75818e95a0aaaea2989083786d605a50453b30271c120700000000000000000000000000000000000000000000000000000000000000000000000000000000020d19242f3a45515d67707d7a736d68676873808c97a1a29f97928c8175685b4e4235281b0f0200000000000000000000000000000000000000000000000000000000000000000000000000000000050b101416171615130f0a040000000000000000000000000916232f3c4956626f7c8995918478675d5145392c1f130600000000000000000000000000000f1b26313c47535f69717e8b92999e9f9e99928c7f736b60554b4030271c120700000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000020f1b2835424e5b6875818e9ba8b4aea194887b6e6155483b2e221508000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000000040c13191e272e34383c4347484c4f4a5153535350494d4946443f38343e4243464646464646403f3b362e261c12080000010d1925303b444c5254545454545453514b43392f24180c000000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aec0b5ab9e9184796d605b534d4c4d4e54555c605c554b4034281f14090000000000000000000815222f3b4855626e7b88949faca99f92857c716c6562605c555d555c6062676d737e87929fa8b2a89c908376685e5246392d2014070000000006121f2b3844505b6673808c9aa4afaa9c8f8275685e5246392a1f14090006111c2b37434e5865727f8b99a3afa89a8e8174675d5145392c20140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d11161b1e252a2d33383b42464b5153585f62676d71777c81868c91969b9fa3abaca8a09d988d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c12181c1f2025292625231e19120a0100000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326222222222222222222222223232423292f38424e5863707d8999a3afb6a99d9083766a554b4034291c100400000000000000000000000007121d27313944505b656e7b85929ea5afafa59f92857b6e665b50463c46505a606d79839198a2aeaaa0958d80746c61574d42392e23180f050000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935404b55606b706d68696e746d6d7a85929e98928c857f796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000407090a0908060300000000000000000000000000000b1825313e4b5864717e8b978f837669554b4035291d100400000000000000000000000000000a15202b37424d57626c727f878e9192918e877f736d63594f43392f1e150b0000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000020e1b2835414e5b6874818e9ba7b4aea295887b6f6255483c2f221509000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000000000060d161e242930394045464e5355595b545c6060605b535a5653504a443f4a4e505353535353534d4c4740382e24190e020005111e2a36414c565e616161616161605d554b4035291d10040000000000000000000000000000000000000000000815222f3b4855626e7b8895a1aeb5afaca0968d80736d625f575959586062676d675c51453b30251a0e0200000000000000000814212e3a47535f6a76828f9aa4ada29792857e76726f6d676a6a6a676d6f737980879299a3afaca0968a7e7164564d41362a1e1105000000000613202d394653606c7884919eacaea2988a7e7164564c41362a180e0300000f1a26313c4754616d7a86929facac9f92857a6d6053473b31261a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13181d20272c3036383f44464d53545c60646a6f74797e83898e92989ea0a8acaba49f9c96918b867e7165584b3e3225180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314181c191916120d07000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332f2f2f2f2f2f2f2f2f2f2f2f2f30302f3439404a545f6a75818e9babb5b4aa9a8d8174675a4e412f23180c000000000000000000000000050e18242f39434e58606c77828f97a2adb2a89e938a7e71695e544a3f343f45515d676f7c86929fa5afa79d928a7e70695f544a40342821170c030000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424a51596063686d747b81796d727f8c928d85807a736d675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d998e8174675b4e412f24180c000000000000000000000000000000040e1a26313c45505a626d727c81858684817c726d635b51473d31271d0c030000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000010e1b2734414e5a6774818d9aa7b4afa295887c6f6255493c2f221609000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000000610181f282f353e424b5153585f6265686b666d6d6c65696663605b54504a555b5d6060606060605a58524a40362b1f1307000714202d3946525e686e6e6e6e6e6e6d675d5145382c1f14090000000000000000000000000000000000000000000815222f3b4855626e7b8895a1b5aba39f9f9d928c7f756e69676666686a6f75796d60574d42362a1e1105000000000000000006121f2b37434e58626f7c87939fa6a9a297928a837f7b7a7877777778797c80848c9299a3abafa39e9184796d6053463b3025190e0200000004111d2935414c5663707d8996a1adac9f9285796d6053473a302519070000000a15202d3946525e6875828f9caaaea2988b7e7164574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10151b1d24292c32383a41464a5053575e61666d71767b80858b90959b9fa3aaaca9a29e99938f89847f7a716d62564a3d3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070b100d0c0a060200000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3c3c3c3c3c3c3c3c3c3c3c3c3c3c3d3d3e40454b515c666f7c87929facb9aea2988a7d7064574a3d312417070000000000000000000000020b17202935404b555f6a727f8c949fa9b3aba1968e81756c61574d42382d35404b555f6a717e8b939da7aea49f92857b6e665c51443e33291e150a000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a545c60676d737a80868c80736d798485807a736d68605d554b4035291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546875828f988c7f7265594c3f322619070000000000000000000000000000000009151f2a333f48515b626a6f75787978746e6a625b514940352c1f150b000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000010e1b2834414e5b6774818e9aa7b4aea195887b6e6255483b2f221508000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000000061018222a313a414550545c60656a6f72757779797a79787673706c66605c545f666a6c6c6c6c6c6c67645c52473b2f23170b000814212e3b4754616e7a7a7a7a7a7a796d6053473b3025190e0200000000000000000000000000000000000000000815222f3b4855626e7b8895a1afa3999292989c918c827b7674727375787c818276695e52463a2d20150a0000000000000000020f1a26313c4754606a74808d949fa6a9a29e95908c8886858483848486888c91969fa3abaca49f91897d70665c514438291f1408000000000713202c3945525d6875818e9ba8a8a99b8e8174675d514539291e130800000005111e2a36414c5664717e8a98a2a8aa9c8f8376695f53463a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c12181c1f262b2f35393d43484c52545b6063696e73797e83888d92989da0a7acaca7a09d97928d87827d78726d67625a50453a2e21150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c484848484848484848484848484949494a4b4b51555d606d78829099a3afb6ac9f92867a6d6053473a2d20140700000000000000000000000a141d29323b45515d676f7c86929fa6b0afa39991847a6d605a50453b2f262f39434e58616c74818e95a0aaada2979083786d60594f453b30261c11060000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844515c666d72797f858d9292867a6d6f7c7a736d68605d56514b433a2f24180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c66778491968a7d7063574a3d3024170a00000000000000000000000000000000030e18212d363f4951585f62686b6c6b67625f58514940372e231a0d03000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000020e1b2835414e5b6874818e9ba7b4aea194877b6e6154483b2e211508000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000000060f18222a343c434c525a61666d72777b7f8284858686868583807c78726d6660667176797979797979736e64584c3f3326190d00111e2b3744515e6a77838787878787807367564d42362a1e110500000000000000000000000000000000000000000815222f3b4855626e7b8895a1ac9f928785929f9c948f8783807f808184898e877b6e6154473d32271b0f0000000000000000000915202b37434e58606d78828f949fa3aba79f9d98999391919090919299999ea1a8aca8a09a938c7f736b60544a403428170d02000000000714212d3a4754606d7a86929b9b9b9b97897d7063554b4035291d1004000000010d1925303a4753606d7985929b9b9b9b93877b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d23282c31373a4145474f54565e61666c70757b80858a90949a9fa2aaacaba39f9b95908b85807b75706c65605d5550483f34291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040607090a0b0c0c0d0d0c0c0b0a090807060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f72665955555555555555555555555555555556565758555c60676d75808e949fabb5afa49a8e8174675d5145392c2013060000000000000000000006111b262f3b444f59606d79839199a3aeb1a79f92877d6f675d51483e33291d28313c46505a606d79839098a2aea99f958d80736c61574d42382e23170f050000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d787f858c92989f988d80746b6f6e68615e56524c45403a31281d130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79869299887b6e6255483b2f2215080000000000000000000000000000000000060f1b242d373f464e53555b5e5f5e5b55534e463f372e251c110800000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000000020f1c2835424f5b6875828e9ba8b5b4aa94877a6e6154473b2e211408000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000000030c18212a343c464e565d606c71797e83888c8e9192989993928f8d89847f786f6a6a76838686868686868073675a4d4034271a0d000d1a2734404d5a6773808d949494908377695e52463a2d20140600000000000000000000000000000000000000000815222f3b4855626e7b8895a1ac9f9286808c96a19e9a93908d8c8c8e9196998c7f7266584e43372b1d12070000000000000000030f1b27323d44515c666d79828c92999fa3aba9aba49f9e9d9d9d9e9fa3abababa8a09e9691887f736d63594f42392e23180500000000000c1825323f4b5865727e8b8e8e8e8e8e8e85786d6053463a2f24180c000000000008131f2c3845515d6774818e8e8e8e8e8e8c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282e34383c43474b5154596063686d72787d82878d92979c9fa6ababa9a19e99928e89837e79736e6963605b53514c433f362d22180c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507080d111314161718191919191919181716151312100b060706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266626262626262626262626262626262626263636566676d7179818e929da6b0b3aa9f93877c6f62554b4035291d1104000000000000000000030d17222d38414c56616c74808d95a0abb4aa9f958c80736b60554c41362c21171f2a343e45515d676e7b86929fa4aea79d928a7d70695e544a3f342821170c0200000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8591979fa2aa9f92867b6e63615e56524c45413a352f281f160c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b88999286796d6053463a2d2013070000000000000000000000000000000000030c151d2328343c4347484d53555b54524c443c332d251c130a0000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000003101c2936434f5c6976828f9ca9b5aea298867a6d6053473a2d201407000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000000000b151e2a333c464e585f686d757e848b9095989b9e9fa2a49f9e9c9996918b837c716c768390939393938d8073675a4d4034271a0d000a1723303d4a5663707d8998a2a095877b6e6154473b2d22170b00000000000000000000000000000000000000000815222f3b4855626e7b8895a1ac9f92867984919aa4a49f9d9a99999b9ea19d9184776a605447392e23180c0000000000000000000a16202834404a545d676d7880878e92999c9fa3aaa6a7a8a8a8a7a6a5a8a19e9a96918b847d726d635b51473d30271c120700000000000d192633404c5966737f828282828282827f72665c5044382b1d1207000000000004101d2935404b55626f7c828282828282828073675a4d4034271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34394045464e53555d60656b6f757a7f848a8f93999ea1a9abaca69f9c97918c86817c77716d67615e5753504945413a312d241b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314191d202122242526262626262525242321201f1c17161312100c06030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f6f7070717375797e848e939da5afbaaea2988e81756a5f53433a2f24180d010000000000000000010b151f27333f49535e68707d8a929da8b1aea2989083786d60594f433a2f241a0f18222935404b555f69717e8a929da7aea49f92857b6e665c50443e33291e140a000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d67727f8c97a1adaaa2988e8174675d524c46413a352f29241d160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97918477665c5044382c1f160c01000000000000000000000000000000000b151e272e343a41454c52575f6168615e564c41362a1f1409000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000000004101d2935404b556a7783909daab6ac9f928579675d5145392c201306000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000000000007121d27303c454e585f6a6f7a818a91969d9fa7a8aaa9a6a5a6a7a9a8a09e9590867e717683909d9f9f9a8d8073675a4d4034271a0d000714202d3a4753606d7986929fa7978b7e7164544a3f33281c0f03000000000000000000000000000000000000000815222f3b4855626e7b8895a1ac9f9286797d88939fa6aca9a7a5a6a8abaca095897c6f62544b4034281c10040000000000000000040c18232e39424b555d666d737c82868c90929898999a9b9c9b9b9a989696918d89847f79706b635b514940352b1e150b0000000000000c1925323e4b57636d7375757575757575726d62544a3f34281c0b010000000000000c18242f394754606a6f75757575757575736e64584c3f3326190d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303940454b5153585f62676d72777c81868c91969c9fa4abacaaa29f9a94908a847f7a756f6b65605d55534d46443f38352f281f1b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202124292c2d2f31323233333332323231302e2d2b282323201f1c1712100b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb3a79a8d807c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c7c7c7d7e7f82858b91969ea5afbaaea49f92857b6e61584e4331281d130700000000000000000007121d27313944505b656e7a85929ea4aeafa59f92867b6e665c50473d31281e12081018242f39434d57616c74808d959fa9ada2979083786d60594f453b30261c11060000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55606d7984919ea39f98928c857a6d6053473b353029241e18130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d162633404d596673808c998f82756954524a4031281d130700000000000000000000000000000007121d27303940454c51565e61696e746d685e52463b31251a0e030000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000613202c3945515d677885929eabb7aa9d9084776a554b4035291d1104000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000000000c18232e39434d575f6a6f7c848f939ea0a8abaaa29f9c9a99999a9c9fa3a7a09892877e7683909da9a69a8d8073675a4d4034271a0d0006131f2c3845515c6776828f9ca89b8e8175665b5044382b1f1206000000000000000000000000000000000000000815222f3b4855626e7b8895a1a89f92867974808d949ea6adb3b2b3b4b3ada79a8d8074665c5145382c1f130600000000000000000007121c273039434b545c606a6f757b7f8386898b8d8e8e8f8e8e8d8b8a8784817d78726d676059514940372e231a0c030000000000000a16232f3b46515b63666868686868686865625b5142382e23170b0000000000000007121d2b37434e5860626868686868686867645c52473b3023170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b51555c60646a6f747a7e83898e92999ea0a8acaca8a09e98928e88837e79736e6863605953514b46423b37332d29241e160d0900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d151b1e25292d2e2f35393a3c3d3e3f3f40403f3f3e3d3c3b3a38342e302d2c28231f1c17110c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb5a99d928d88888888888888888888888888888888888889898a8b8c8e92979ea1a8afb4aea49c928a7e71695e52463c311f160c010000000000000000050e18232f39434e58606c77828f97a1adb2a99e938b7e71695f544a3f342b1f160c0007121d27313c45505a606d78839097a2ada99f958d80736b61574d42382e23170e05000000000000000000000000000000000000000000000000000000000000000000000c18242f3945515c67727f8b9698928d857f796d675d51453929251e19130d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2934404b556875828f9a8d807467635c52433a2f24180d0100000000000000000000000000000c18232e39424b51555d60686e747b817a6d61574d42362a2015090000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000714202d3a4753606d7a8697a1adb5a89c8f8275695c4f422f24180d01000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000004101c2834404b555f696f7c8591969ea5aca8a19e98928f8d8c8c8d8f92999ea1a39992877c83909da9a69a8d8073675a4d4034271a0d0004101c2934404b5565727f8b98a89e9285796c605346392d201308000000000000000000000000000000000000000815222f3b4855626e7b88959b9b9b9286796d78828f949ea2a9a8a8a7a9a19e989285796d6053463a2d201307000000000000000000000b151e283139424a50585f62696e7276797c7f808182828281807f7d7a7874706c66605c554f4740372e251c11080000000000000006121e2a3540495157595b5b5b5b5b5b5b585651493f30261c110600000000000000010f1b27323d464e54565b5b5b5b5b5b5b5a58524a40362b1f130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b545c60676d71767c81858b90959b9fa3abacaca49f9c96918c86817c76716d66615e56544f4745403936312b27221b19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c131920272b3035393a3e414547494a4b4c4c4c4c4c4c4b4a494846443f3f3c3a38342e2b28231c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb9aea49d9a95959595959595959595959595959595959595969698999b9fa2a9acb2afaaa29f928d80736c61574d42342a200d040000000000000000020d17202934404b555f6a727f8c949fa9b3aca1968f81756c62574d42382e22190d0400010b151f2a333e45515c666e7b85929fa4aea79f93887d70695e544a3f342820170d0200000000000000000000000000000000000000000000000000000000000000000007121d2934404b55606d7984918e86807a736d675d554b40352919130d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a45515c67778491988b7e72736e63554b4135291d11040000000000000000000000000004101c2834404b545c60676d737a80868d8074695e53463c31261a0f0100000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000000916232f3c4956626f7c8995a9b3b4a79a8d8174675a4e4134271b0700000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000005101a232c3845515c676e7b859197a0a8aca49f96918b8682807f7f8083868b91979da399918483919daaa69a8d8073675a4d4034271a0d00000c18232f3b4855626e7b8896a1a297897c6f6256493c3024190d010000000000000000000000000000000000000815222f3b4855626e7b888e8e8e8e8e8679666d79828b92979a9b9b9a9897918d8680796d6053473a2d20140700000000000000000000030c161f2830383f444e53575e6165666d6f727374757575747372706e686763605b54514b433d352e251c130a0000000000000000020d19232e3740464b4c4f4f4f4f4f4f4f4b4a463f372d1e140a0000000000000000000a15202b343d4347494f4f4f4f4f4f4f4d4c4740382e24190e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c666d73797e83888d92989da0a7acaca9a29f9a938f8a847f7a746f6a64605c54524c48433d38352f2a251f1b17110d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e161e242932373a4146474b4c51545557585959595959585857565453504a4c4946443f3a38342e28231d150c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbab6aea9a7a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3a3a4a6a8abadb3adaba59e98928b80746e635a50453b3022180e00000000000000000008141e29323b45515c676f7c86929fa6b0afa49a91847a6d615a50453c30261c1007000000030d18212834404b545f69707d8a929da6afa49a92857b6e665c50443d32291f1408000000000000000000000000000000000000000000000000000000000000000000010c18232f3945515c67727f86817b736d68605d554b433a2f24180802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a434b53606d7a8692978a7e7e8073675d5145392c2013060000000000000000000000000006131f2c3845515c666d727a80868d9292867b6e61584e43372b1e130800000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c000000000000000000000000000000030f1b27333f495365717e8b98a4b1b4aa988b7e7165584b3e3225180b00000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000000000b16212b37434e58606d79839097a1a9aba39a938d847e797673727374767a7f858e939ba196919195a0aca69a8d8073675a4d4034271a0d00000714212e3a47535f697884919ea9998c7f7366564c4135291d11040000000000000000000000000000000000000814212e3b4754616e7b818282828282817568676d787f858a8d8e8f8e8c8985807b736d675d5145392c1f13060000000000000000000000040d161e262e343c43474d5254545c606265666768696868676563615e565653504a454039302b231c130a0100000000000000000007121c252e353b3e40424242424242423f3d3a342d251b0c02000000000000000000040f19222b32373b3c42424242424242403f3b362e261c1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7980858a90949a9fa2aaacaca7a09d97928d87827d78726d68625f5853514a46413b38322c29241d1a140f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061018202830353d43474c525458555d6062646565666666656565646361605c54595653504a46443f38342e271e17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2b2b2b2b2aeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafb0b6afacaba8a9a29f9a938f867e746e645c52483e33291f10060000000000000000010d1925303b444f59606d79839098a3aeb1a79f93887d70685d52483f332a1e150a0000000000060f18232e39424d57616c73808d949fa9aca1979082786d60594f443b3025190e0200000000000000000000000000000000000000000000000000000000000000000007121d2834404b55606d787b746e69615e56514b433a31281d13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b555d626f7c88999a908a8b877a6d6054473a2d211407000000000000000000000000000713202d3a4653606d797f858c92989f988e81746a5f53473a2f24190d01000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000005121f2b3744505b6574818e9ba7b4aea298887b6f6255483c2f22150900000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000004101c28333b4754606a74808d95a0a9aca39992888079716d6767666667686d7279818c919ba19e9da0a7b1a69a8d8073675a4d4034271a0d000006121e2b37424d576774818d9aab9d908376685d5245392c2013070000000000000000000000000000000000000714202d3a46525e696e757575757575756f655d666d72797d808282817f7c79736e69605d554b4035291d1004000000000000000000000000040c141c232831373b4246484b515356585a5b5b5c5b5b5a585754524c4a46443f38342e271e1a110a0100000000000000000000000a131c232a2f32333535353535353532312e29231b1309000000000000000000000007101920272b2e2f353535353535353433302b241c140a01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8792979c9fa6acadaba39f9b95908b85807b76706c66605d56534e4644403936302c271f1d18120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f18222a323a41464e54565e616468676d6f707172727373727271706f6e6d66686663605c5453504a4540393028221c140b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a4a4a4a3aca49f9e9c9997928e88827b716c645c524a40362c21170d00000000000000000005111e2a36414c56616b74808d95a0aaa5aaa0958d80736b60564c41362d21180c0300000000000007121d27303b45505a606d78829097a1aca99f948d80736b60564d41362a1e1105000000000000000000000000000000000000000000000000000000000000000000010c18232e3945515c666d6e69615e57524c45403a31281f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d737e8a97a29a9799897d7063564a3d3023170a000000000000000000000000000714202d3a4753606d7a8591979fa2aa9f92877b6e62564c4135291d1104000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000000030c15202d394653606c7884919eabb8ac9f9285796d6053463a2d20130700000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000714202c38444f59626f7c89929da7afa49a92877e736d67605d555959565d60676d747f8c919ca5aaacb1b3a69a8d8073675a4d4034271a0d0000020e1a26313d4a5764707d8a99a39f92867a6d6054473a2d21140a00000000000000000000000000000000000005111e2a36424d565e6168686868686868655d545c60676d7174757574726f6d66615e57514b43392f24180c0000000000000000000000000000020a111720262b30363a3b404546494c4d4e4f4f4f4e4d4c4a4746413d3938332d28231d150c0800000000000000000000000000010a12191e232526282828282828282524221d18110900000000000000000000000000070f151b1f2223282828282828282726231f19120a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a1a9ababa9a19e99928e89837e79746e6963605b54524c47433c38342e2a251e1b16100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d18212a343c444c52586062686d7175777a7c7d7e7f7f7f7f7f7f7e7d7c7b797775726f6d6664605c54514b433e332d261d150c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a879398989898989898989898989898989898989898989898989898979796959a93918f8c8985817c756e69625a524a40382e241a0f050000000000000000000714202d3946525e68707d8a929898989898989083796d60594f443a30241b0f0600000000000000000b151e29333e44505c666e7b85929a9898989893887d70685e5246392d2014070000000000000000000000000000000000000000000000000000000000000000000007121d2834404b545c60615f57524d46413a352f281f160d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797f85929faba6ab998c7f7366594c403326190d0000000000000000000000000006131f2c3845515c67727f8b96a1ada9a2998e8275685d5245392c201307000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c00000000000000000000000000000a151e2935414c56626f7c8996a1adb6ac9c8f8276665c5044382b1f120600000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0000000916232f3c4855616b7682909ca4aea79f93887e716c605c55514b4c4c4c52555d606d727f8c939eaab4bcb3a69a8d8073675a4d4034271a0d0000000914212d3a4754606d7a86929fa3998a7d7164574a3e31261b0f030000000000000000000000000000000000020e1925303b444d52545b5b5b5b5b5b5b59534a50555c6064676868676562605c54534d45403931271d120700000000000000000000000000000000060b151a1f252a2d2e34383a3c3f404142424241403f3d3b3936302d2b28221c18120b0300000000000000000000000000000000070d121619191c1c1c1c1c1c1c181815120c06000000000000000000000000000000040a0f1315161c1c1c1c1c1c1c1a1917130e08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0aca79f9d97928c86827d77726d67615f5753504a45413a37322c28231c19140f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2a333c464e565d616a6f757a7e818487888a8b8c8c8c8c8c8b8b8a89878684827f7c7975706d66605c554f443f382f261e150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a878b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8a8989888684827f7c79746f6a615f57504840382f261c1208000000000000000000000814212e3b4754616e7a858b8b8b8b8b8b8b8b867c6f675c51473d32281e1209000000000000000000030c172128343f4a545e69707d888b8b8b8b8b8b8b857b6e6154473b2e21140800000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b515355534d46423b353029241d160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b9297a2adb4a89b8e8175685b4e4235281b0f0200000000000000000000000004101c2934404b55606d7984919ea29f97928c847a6d6054473a2d211407000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000000000006111c26303845525d6874808d9aa8b2afa49a8b7f7265544a3f34281c100300000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000005121e2a36424d5763707d8a949fabaca0958d80736c615a514b45403f4041454b515b636d75818e98a2aebab3a69a8d8073675a4d4034271a0d0000000613202c3945515d6776838f9cab9a8e817467584e43372b1f120600000000000000000000000000000000000009141f29323b4246474f4f4f4f4f4f4e4d483f444b5153575a5b5c5b595653504a46423b352f271f150b010000000000000000000000000000000000030a0f141a1e2023282c2d2f323334353635353432302e2d2a25201f1c17110c070000000000000000000000000000000000000002060a0c0d0f0f0f0f0f0f0f0c0b090601000000000000000000000000000000000000030608090f0f0f0f0f0f0f0d0d0b070300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a39f9b95908a85807b75706b65605d55534d46443f3835302b261f1c18120e0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313c464e585f686d757c82868b8e91969597989899999998989897969992918e8c8985827d78726d676159504a423830261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d797f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7e7e7e7d7d7c7b7a787573706d66625f58534d453f362f261d140a00000000000000000000000916232f3c4956626f7c7f7f7f7f7f7f7f7f7f7d706a5f554b40352b20160c0000000000000000000000060f17232e38424d57616b707d7f7f7f7f7f7f7f7f7d6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000007121d2730394045464846423c363029251e18130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a2a9b3b6a99c8f8376695c504336291d1003000000000000000000000000000c18232f3945515c67727f8b9698928d857f796d685d5245392c201307000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c0000000000000000000001040a1117232e38424d57606d7a85929facb8ac9f93877b6e6154483b2e23170b0000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000714202d3a46525e6975828f9ca6b0a79d9083786d605a50454039352f2f353a4045515b616e7a85929fabb5b3a69a8d8073675a4d4034271a0d00000004111d2935414b5566727f8c99a99e9184786a5f53473a2e211507000000000000000000000000000000000000020d17202930363a3b42424242424242403d34394045474a4d4f4f4e4c4946443f38363129241d150d03000000000000000000000000000000000000000002090e1214181c1f20232527282829282827252421201e1913120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a879498928e88837e79736e6963605953514b47423c38332d29241e1b15100c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f39434e585f6a6f7a81898e92999b9ea0a8a3a4a5a5a6a6a5a5a4a3aba39f9e9b9997928e8a847f79706b605b544a42382e23170d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c666d7272727272727272727272727272727272727272727272727272717171706f6e6d67696663605c54534e46423b332d241d140b0200000000000000000000000815222e3b4754606a6f727272727272727272706b60584e43392e23190e0400000000000000000000000006111c26303b454f59616c7072727272727272726f6b6054483b2f2215090000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3b3a37312a251f19130d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97acb3b9b1a99d9083766a5d5043372a1d10040000000000000000000000000007121d2834404b55606d7984918d86807a726d675d564c4135291d1104000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326190c090909090909090a0a070d11151c2328343f4a545f6973808c98a2aeb3a99d908376695e52463a2d1c11060000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00000815212e3b4854616e7b87939facaca0958a7d70665c50483e342e292424292f353f46525e6873808c99a3afb3a69a8d8073675a4d4034271a0d000000010d18242f3c4955626f7c8897a1a196887b6f6255483c2f24180c00000000000000000000000000000000000000050e171f252a2d2e353535353535353431282f34383a3e414242413f3c3a38342e2a251f18120b0300000000000000000000000000000000000000000000000205070c10131316191a1b1c1c1c1b1a19171414110e080603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003050605030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87918c86817c76716d66615e57544f4745403937312b28221c19130f0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b555f6a6f7c848e939b9fa3abaaacb2b0afafaeadaeaeafb0b0b5aeacaaa8a9a29f9b96918c847d746c665c544a3f34281f160c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b545c606565656565656565656565656565656565656565656565656565656464636261605c55595653504a47433c363129211b120b0200000000000000000000000006131f2b37434e5860626565656565656565656360594f463c30271d110800000000000000000000000000000a151e29333d47505a616465656565656565656360594f43382c1f1307000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d2e2d2b261f1a140d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c899aa4afaca7a09d9084776a5d5144372a1e110400000000000000000000000000010c18232e3945515c66717f86807a736d68605d554c443a2f24190d01000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3326191515151515151616161718181d20262e343e44505c666e7b86929faab4ada1978b7e7165574d42362a1e0a000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0004101d2935404b5566727f8c99a4afaa9d9084776b61544a3f3628231d18191d242a36414c56616e7b86929facb3a69a8d8073675a4d4034271a0d000000000713202d394653606c7885919ea8988c7f7265554b4035291d100400000000000000000000000000000000000000050d14191e20212828282828282827251d23292c2d3134353534322f2d2c28231c1a140c070100000000000000000000000000000000000000000000000000000000040607090c0d0e0f0f0f0e0d0c0a08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f1213120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87847f7a746f6a64605c54524d48443d39352f2b261f1c17110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d676e7c8591969ea5acaeaeaca9a6a4a3a2a1a1a1a2a2a3a5a7a8abadb2b3adaba8a19e96918a80786d665c50443e31281e130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b5153585858585858585858585858585858585858585858585858585858585756565553514b4c4946443f3837312a261f170f090000000000000000000000000000030f1b27323d464e545658585858585858585856544f473d342a1e150b000000000000000000000000000000030c17212c353e47505557585858585858585856544f463d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f2022211e1a140e09020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86939fa49f9c95908a8276695c4f4336291c1003000000000000000000000000000007121d2834404b54606d787b746e68605d56514b433a32281e130800000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332622222222222222222323242524292c30383f44505a606d78839098a2aeb3a99e9285796d6053473b30251a0e000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0006131f2c3945515d6776838f9cabb2a9998c7f7266594f42382e2418120c0d131925303b46525e6876838f9ca9b3a69a8d8073675a4d4034271a0d0000000005121f2b3744505b6574818e9bab9c8f8276675d5145392c1f1306000000000000000000000000000000000000000002090e1114141c1c1c1c1c1c1b1b1812181c1f2024272829282623201f1c17110e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f11171b1f201f1b17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797d78726d6862605853514b46423b38322c29241d1a150f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55606d79839197a1a8afabaaa29f9c9a979695949494959696989a9c9ea1a8a8abaeb2ada8a19e928d81786d605a50433a2f24190d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2730394045464c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b4b4b4b4a4a4948474540403d3a38342e2b26201a140d06000000000000000000000000000000000a15202b343d4347494c4c4c4c4c4c4c4c4c4a48443d352b22180c0300000000000000000000000000000000050f1a232c353e44494a4c4c4c4c4c4c4c4c4948433d342b21160a00000000000000000000000000000000000000000000000000000000000000000000000000000000070c1013131514120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d677784919e9a938f89837d776c605346392d201306000000000000000000000000000000000c18232e3944515c666d6e69615e56524c454039312820160c0100000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f332f2f2f2f2f2f2f2f2f2f3031322f35393d424a505a626d73808c959faab4ada1978c8073675c514538291f1409000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000714202d3a4753606d7986929facada196887b6e6155483e30261c1207000108141e2a36414d5665727f8c98a5b2a69a8d8073675a4d4034271a0d00000000030f1b27333f495364717e8a99a49f92867a6d6053473a2d20140900000000000000000000000000000000000000000000020507080f0f0f0f0f0f0f0e0c070c101314171a1c1c1b19161312100c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b10151a1b22272b2d2b27221b140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d676d706d66615e56544e4645403936302c27201d18120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d67737f8c95a0a9aca69f9c98928f8d8b898888878888898a8b8d8f9196989b9fa2aaabb0ada49d938d80746c61564c4135291c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3e3e3d3c3b3a38342f302d2c28231c1b150e09030000000000000000000000000000000000040f19222b32373b3c3f3f3f3f3f3f3f3f3f3d3c38332b2319100600000000000000000000000000000000000008111a232c33393c3d3f3f3f3f3f3f3f3f3c3b38322b22190f04000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b556774818e969187827d77716c655b5044372b1f12050000000000000000000000000000000007121d2834404a545c60615e57524c45413a352f271f160d040000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c3f3c3c3c3c3c3c3c3c3c3c3c3d3d3e404145474f545c606c717f8b929ca7b1b1a79e92857a6d61554b4034291c1004000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000a1623303d495663707d8999a3aeab9e918478695f53473a2c1e150a000000020e1925303c4956626f7c8995a9b2a69a8d8073675a4d4034271a0d00000000000b17222d3a4754616d7a86939fa3988a7d7063574a3d31261a0e020000000000000000000000000000000000000000000000000002020202020202010000000406070b0e0f0f0e0c0907060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b2d33373937332d261d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b555d6064605c54524c47433c38342e2a251f1b16100d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7985929ea8a8a09d948f8a8682807e7c7c7b7a7b7b7c7d7e808284888b8e92989c9fa6aaaea59d928a7e71685d5245382e23170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d3232323232323232323232323232323232323232323232323232323131302f2e2d2c292323201f1c17110f0a03000000000000000000000000000000000000000007101920272b2e2f323232323232323232302f2c2721191108000000000000000000000000000000000000000008111a22282d30313232323232323232302f2c2721191007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3d4a5764707d8a91847c75706b64605b53493f33271b0f0300000000000000000000000000000000000c18232e39424a515354534d46413b352f29241d150d04000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266594c484848484848484848484949494a4b4d4b51545960666d737e87939fa4aeb3aa9f958b7e71685d5243392f23180c00000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000c1925323f4c5865727f8b98abb4a89b8f827568574d42372b1a0c03000000000814212d3a4754606d7a8797a1ada69a8d8073675a4d4034271a0d00000000000613202d3946525e687683909daa9a8d807467574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f13191c23282b3137383f4446443f382f261b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f39434b51535753504a46413a37322c28231d1a14100b0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a2a69f959189827e7a767371706f6e6e6e6f6f70727475787b7e81858b90949c9ea6aca49e92857a6d60544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f202525252525252525252525252525252525252525252525252525252524232322201f1c18161312100c06000000000000000000000000000000000000000000000000070f151b1f22232525252525252525252322201c160f08000000000000000000000000000000000000000000000810171c202324252525252525252523221f1b160f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a0e0f0c0706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a85897d6f6a63605953504941382d22170b00000000000000000000000000000000000007121c2730394044464846423b363029241e18120b0300000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f7266595555555555555555555555555656575859555d60646b6f78808a9399a4afb6aca2989083776c60564c4131271d120700000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f000e1a2734414d5a6774808d9aa7b3a6998d8073665a4d4031261a0d00000000000613202c3945515d677885919eaba69a8d8073675a4d4034271a0d000000000005111d2a36414c566673808c99a99e918477695f53463a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b10151b1e24292e34383c4347495053504941382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2731394045474a46443f3836302b271f1c18120e0902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e9aa69f948f837d76716d6767646362616161626363656769696e71757a7e83888f949ea1a8a1978c7f72665c5044382b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131319191919191919191919191919191919191919191919191918181818171716151413100c07070603000000000000000000000000000000000000000000000000000000040a0f131516191919191919191919171613100b05000000000000000000000000000000000000000000000000050b1014161719191919191919191615130f0a04000000000000000000000000000003060608080808080706050300000000000000000000000000000001070c101314171b1c191312100b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d67748085786b6058544f46443f382f261b1106000000000000000000000000000000000000000b151e272e34383a3b3a36312a251e19130c07010000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726662626262626262626262626262626364656668676d70767c838d929fa4abb5afa49a92857b6e655b50443a301f150b0100000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00101c2936434f5c6976828f9ca9b1a4988b7e7165584b3e32251809000000000004111d2935414b556a7783909daaa69a8d8073675a4d4034271a0d0000000000010d1925303c4956636f7c8997a2a096887b6e6155483b2e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b3035383f44464e53535b605b53493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f272f35393a3d3a38342e2a251e1b15100c0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101d2a3743505d6a7683909d9f948f8279706b64605d55585655555455555657585a575f6165676d71767c828991969ea69e9185796d6053463a2d2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0b0b0a090807060400000000000000000000000000000000000000000000000000000000000000000000030608090c0c0c0c0c0c0c0c0c0a0907040000000000000000000000000000000000000000000000000000000004080a0a0c0c0c0c0c0c0c0c090907030000000000000000000000000000060b0f121315151515141413120f0b060806020000000000000000040a0f12181d1f2024272926201f1c17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b55626e7b807467594f48443d37332d261d140a0000000000000000000000000000000000000000030c151c23282c2d2e2d2a251f19140d080100000000000000000000000000000714212d3a4754606d7a8793a0adb2a5998c7f726f6f6f6f6f6f6f6f6f6f6f6f6f6f6f7070717375777a7d828990959da4afb5afa39f93887d70695f53493f32281e0d030000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00111d2a3744505d6a7783909daab0a3978a7d7064574a3d3124170a0000000000010d18242f434f5c6976828f9ca9a69a8d8073675a4d4034271a0d0000000000000813202d3a4653606d7985929fa8988b7e7265544a4034281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f13191c23282b31373a41464a5053585f62656c655b5044372b1f120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d151d24292c2d312d2b28231c19130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2b3845525e6b7885919e988f82786d67615953514b4b494948474848494a4b4d4d5355555d60646a6f757d848f949ea197897d7063564a3d2d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f20212121212121201f1b171514120e090300000000050b10151b1d24292c2d313436332d2b28231c140c0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a47535f696e746e6458473d38332b27221b140b02000000000000000000000000000000000000000000030b12181c1f2021211e1a140d0802000000000000000000000000000000000714212d3a4754606d7a8793a0adb3a79a8d807c7b7b7b7b7b7b7b7b7b7b7b7b7b7c7c7c7d7e808184868a8f949d9fa7aeb3aca49f918c7f736b61574d41382d20160c000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00111e2b3744515e6a7784919daaafa396897c706356493d3023160a000000000000071c2935424f5c6875828f9ba8a69a8d8073675a4d4034271a0d00000000000006121f2b3844505c6675828e9ba89b8f8275665c5144382c1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151b1e25292e34383c43474c52545c60646a6f74786c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f2024201f1c17110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929f92857b6e665d554f4745403e3d3c3b3b3b3c3c3d3f414246484b5153585f626b7079828e939e9a8d807467544a3f33281c0f030000000000000000000000000004060708080808080808080808080808080808080808080706040100000000000000000000000000000306060808080808080808080807060603000000000000000001040607080808080807060400000000000000000001040607080808080705020000000000000000000000000000000000000000000000000003050607060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2d2d2b272222211e1a15100b06050b10161c20262b2f35383a3d41423f3a38342e261e140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d2b37424d575f6267645c5247352c271f1b17110a02000000000000000000000000000000000000000000000000070c1012131514120e09030000000000000000000000000000000000000714212d3a4754606d7a8793a0adb5a99d928d88888888888888888888888888888889898a8b8c8e9092999c9fa6abb1b0a9a29a938c7f736d63594f453c2f261b0e04000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00121e2b3845515e6b7884919eabafa295897c6f6256493c2f2316090000000000020f1c2835424f5b6875828e9ba8a69a8d8073675a4d4034271a0d00000000000003101c28343f4a5465717e8b98a79f9285796d6053463a2d2013080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b3035383f44464e53565d61666d70767c818073675a4d4034271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c101314171312100b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c788592998c7f72695e544b433d39352f302f2e2e2e2f30303231363a3b4045474e535960676d78818e949d908376665b5044382b1f12060000000000000000000004070c10131414151515151515151515151515151515151515151413100d070100000000000000000000060b0f1213151515151515151515141413120f0b060603020608080d11131415151515141313100c07090703030606080d1113141515151414110e0802000000000000000000000000000000000000000000060b0f12131413110d0801000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3338393b3b3b3b3b3a3937332d2f2e2b261f1c171110171c21272c3137394045474a4e4f4c46443f3830261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a26313c454d53555a58524a4036231c160f0b06000000000000000000000000000000000000000000000000000000000406070807050200000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb9aea49d9a95959595959595959595959595959595969798999b9d9fa3ababb0b1aca69e9792887f736d635b51473e332a1d140a00000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00121f2c3845525f6b7885929eabafa295897c6f6256493c2f2316090000000000020f1c2935424f5c6875828f9ba8a69a8d8073675a4d4034271a0d000000000000000b17232e3b4854616e7b8795a0a298897c706356493d3025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f13191c23282c32373a41464a5053585f62686d72787d82888d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070a07060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121e2b3845515e6b78849195877b6e61574d4239312c2924232222212222232425262a2d2f35393c43474f555d666d788290989286796c605346392d2013060000000000000000070c1013181c1f20212121212121212121212121212121212121212120201d18120c0400000000000000020a11171c1f202121212121212121212121201f1c171312100f121415191d20212121212121201f1c181615130f0f121317191d202121212121201e19140d05000000000000000000000000000000000000020a11171b1f2021201d19130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f444648484848474746443f3f3b3a37312b28231c1b21282d33383c43474b5153575a5c5953504a42382e23170d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151f2a333c4247484d4c4740382e24110b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbab6aea9a7a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a3a3a4a6a8aaacafb3adaba7a09d948f857d726d635b514940352c21180b0200000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00121e2b3845515e6b7884919eabafa296897c6f6356493c302316090000000000030f1c2936424f5c6975828f9ca8a69a8d8073675a4d4034271a0d000000000000000614202d3a46525e697784909daa998d807366564c41362a1e11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c10151b1e252a2e34383c43474c52545c60646a6f747a7f848a8f948d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111e2a3744515d6a778490908377695e53453b3027201d181616151415151617181a1e2124292c32373d434b545c666e7b869299877b6e6154483b2e211508000000000000030b12181c1f23292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2c29241d160d040000000000020b141c22282b2d2e2e2e2e2e2e2e2e2e2e2d2d2b2822201f1c1a1f212224292c2d2e2e2e2e2e2d2c282323221f1b1c1f202424292c2d2e2e2e2e2d2a251e170e05000000000000000000000000000000050b0b141b22272b2d2d2c29241e160d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a50535454545454545350494c4847423c38342e28272c33393d44484e53555d6064676966605c544a3f34281f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212a31373a3b413f3c362e261d1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb2b2b2b2b2aeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafb0afb5afacaba8a9a29f9b959089827b706b625b514940372e231a0f060000000000000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f00111e2a3744515d6a7784909daaafa396897c706356493d3023160a000000000003101d2a3643505d697683909ca9a69a8d8073675a4d4034271a0d0000000000000005121e2a36424d576773808d9aaa9d908377685e5246392d201406000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b3036383f44464e53565e61666d71767c81868c91969c9a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101d293643505c6976838f8e827568574d4233291e15110d070908080809090a090e1214181d20262b313a424a545f6974818e95897c6f6256493c2f2316090000000000060c151d23282c2f34383a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3a39352f281f160c01000000000a141d262d3338393b3b3b3b3b3b3b3b3b3b3a3938332d2d2c28262b2e2f2f35393a3b3b3b3b3b3a38342e2f2e2c27282b2d312f35393a3b3b3b3b3936302920170d02000000000000000000000000040a0f161c1d262d3337393a39352f281f160c040707070401000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b60616161616160605b535955534e46443f383432383e44494f55585f62676d707475726d665c50443f31281d130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f181f262b2e2f3433302b241d140b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a4a4a4a3a3aba39f9e9c9997928e89837d756e696159514940372e251c1108000000000000000000000a1623303d495663707c8996a3a5a59b8e8275685b4f4235281c0f00101d2a3743505d6a7683909da9b0a4978a7d7164574a3e3124170b000000000005111e2a36414c566a7784919daaa69a8d8073675a4d4034271a0d00000000000000020e1a25303d4a5663707d8998a29f93877a6e6154473b2d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191c23282c32373a41464a5053585f62686d72787d83888e92989ea1a89a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e8d8074675a4d413127170c04010000000000000000000205070d10151b1f282f39424d57636f7c8999897d7063564a3d3023170a00000000060f181e272e34383a40454747484848484848484848484848484848484848484745403931281d120700000006111c262f383f4446484848484848484848474746443f3e3a383431373a3b404145474848484847464540403c3b38323338393d414145474848484746413b32291e14080000000000000000000000070f161b21272c2f383f44464745413a31281e1311131413110d08010000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c6e6e6e6e6e6d6c656865625f5753504a443f3d44484f555961636a6f74797d81827f786d605a50433a2f24180d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151a1e21222726231f19120b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a87939898989898989898989898989898989898989898989897979796959992918f8c8985817c77706b615e574f473f372e251c130a00000000000000000000000a1623303d495663707c8996989898988e8275685b4f4235281c0f000f1c2835424f5b6875828e9ba8b1a5988b7e7265584b3f3225180900000000000714202d3946525e687885929faba69a8d8073675a4d4034271a0d00000000000000000913202d3a4653606d7985929fa49a8b7e7164544a3f33281c0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10151b1e252a2e34383c43474c52545c60646a6f747a7f848a8f949a9fa2aaaca79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b8d8073665a4d4033271a06000000000000000000000000000001040a0d161d27303c4653606d7986928a7d7064574a3d3124170a000000050e18212a30394045464b5153545454545454545454545454545454545454545453514b43392f24180d0100000b17222d38424a5053545454545454545454545453504a4b46443f3c4347484c4c5154545454545453514b4d4948433d3f44464a4e4c525454545454524c443b3025190e020000000000000000020a101921272c33383e4149505354524c433a2f24191d2021201d19130c040000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c787b7b7b7b7a7a797775726e6a64605c54504a464f545961646b70767c81858a8d8f8c81756c62554b4035291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151a1917130e08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a878b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8a8a898887868482807c79746f6a636059534d453e352d251c130a0100000000000000000000000a1623303d495663707d898b8b8b8b8b8b8175685b4f4235281c0f000d1a2733404d5a6673808d99a6b3a69a8d8073675a4d4031261a0e02000000000814212e3b4754616e7a8798a2aea69a8d8073675a4d4034271a0d000000000000000006131f2c3845515c6775828f9cac9b8e8175665b5044382b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d12181c1f272b3036383f44464e54565e61666d71767c81868c91969c9fa6acadaba39f9a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c898e8174675b4e412e23170c0000000000000000000000000000000000040b151f2c3845515c667884918a7d7164574a3e3124170b0000020d17202a333c424b5153555c606161616161616161616161616161616161616161605d554b4035291d100400030f1c28333f4a545b606161616161616161616160605b545753504a474e535559555d606161616161605c555a56544e474a5053575b565d60616161615e564c41362a1e110500000000000000000a141c222b32383d44484f535b60605d564c41352924292c2d2c29241e160d0400000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8787878787878684827f7b77716d66605c54535960636c70777d82888e92979a9c938b7e71675d5145392c20150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080e0d0b070300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d797f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7e7e7e7d7c7c7b797875736f6d66626058554f46423b332c231b130a010000000000000000000000000814212e3b4754616e7b7f7f7f7f7f7f7f7d7063564a3d3023170a000b1825323e4b5865717e8b98aab4a89c8f827569574d42372b1e1205000000000a1723303d4a5663707d8996aab4a69a8d8073675a4d4034271a0d000000000000000004101c2834404b5565727f8b98a89e9285796c605346392d20130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f14191c23282c32373a41464a5053585f62686d72797d83888e92989ea1a8abaca8a19e99928e898073675a4d4034271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a868f827568544a3f34281c1003000000000000000000000000000000000004101c2834404b546a7784918a7d7164574a3e3124170b000009141f29323c454e545c6065676d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6d675d5145392c2013060006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6d6c666864605c5454585f62666a676d6e6e6e6e6e6d676a6762605853545b6064676b686d6e6e6e6e685e5246392d2014070000000000000008121c262e343d43484f545961656c6d685d52453d322f35393a39352f2820160c01000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87949494949992918f8c88837e78716d66615f616b70767d83898f949a9fa2a9a59e9185796d6053473c31261b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c666d727272727272727272727272727272727272727272727271717170706f6e6d66696663605c54544e48443d363129211a110901000000000000000000000000000714202d3a46525e696e72727272727272706b6155483c2f231609000916232f3c4956626f7c8998a2aeab9e918578695f53463a2d21140a00000007111e2a36414c5666737f8c99a6b2a69a8d8073675a4d4034271a0d0000000000000000000c18232e3b4855616e7b8896a0a197897c6f6256493c2f24190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10151b1e252a2e34383c43474c52545c60646a6f747a7f848a90949a9fa3aaacaca49f9c96918c86817d736e64584b3f3326190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945525d687683908376665c5044382c1f1206000000000000000000000000000000000004101d2935404b556b7884918a7d7164574a3e3124170b00020e1925303b444e575f666d72777a7a7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b796d6053473a2d201407000613202d394653606c787b7b7b7b7b7b7b7b7b7a7a797875716d666160626a6e7376797a7b7b7b7b7a797876736f6a625f61666c707477797a7b7b7b7a6e6154473b2e211408000000000000020e19242e3840464f545960636b70787a6d60584e43383a41454745413a32281e1308000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0a1aba39f9e9b9895908a847e78706c696e757d838a90959c9fa6aba7a5aaa1978b7f7265584e43372b1f1206000000000000000000000000000000000000000000000000000000000003060607070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030606070706040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b545c60656565656565656565656565656565656565656565656565646464636261605c54595653504a48433d38332a251f170f0800000000000000000000000000000005111e2a36424d575e61656565656565656361594f44382c201407000713202d3a4653606d7885929facada197887b6e6155483d2f261c110804071019232d3946525e687683909ca9b3a69a8d8073675a4d4034271a0d0000000000000000000714212d3a47535f697784919ea9998c7f7366564c4135291d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e12181c1f272b3036394044464e54565e61666d71767c81868c91969c9fa6acaba9a29f9a938f8a847f7a75706b645c52473b2f23170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566673808c85796d6053463a2d201307000000000000000000000000000000000006131f2c3945515d677885928a7d7164574a3e3124170b0005111e2a36424d565f6a6e797f838687878787878787878787878787878787878787877e7164574b3e3124180b000714212e3a4754616d7a87878787878787878787878684827e78716c6a6f767b7f8385878787878787868583807c766f6a6c70787d818486878787878276695d5043362a1d1000000000000007131f2a36404a525960636b70767d8382756a60544744484c5254524c443a2f24190b020000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0adb5aeacaaa8a79f9d96918b847d76737b828990959d9fa7a9a19e9a989da09d9184776a5f53473a2e21150800000000000000000000000000000000000000000000000406070a060b0f1213141313100c070b08070502000000000000000000000000000000000000000000000000000000000000000000000000000001050707060b0f1213141312100c070808060200000000000006060606060601010000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b515358585858585858585858585858585858585858585858585858575756555453504a4d4946443f3838322c27211a140d0500000000000000000000000000000000020e1a25303b454d52545858585858585856554f473d33271c10040006121f2c3844505c6676838f9cacb3a9988c7f7265594f42382d221913101218222935404b55616e7a86929facb3a69a8d8073675a4d4034271a0d00000000000000000006121e2b37424d576774818d9aab9c908376685d5245392c201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191d23282c32373b41464a5153586062686d73797e83888e92989ea1a8abaca7a09d97928d87827d78736e68636059524a40362a1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3c4956636f7c89887c6f6255493c2f24180c00000000000000000000000000000000000714202d3a4753606d7a86978a7d7164574a3e3124170b000714202d3a46525e696e7c848b9093999494949494949494949494949494949494948a7e7164574b3e3124180b000714212e3a4754616d7a879494949494949494949993918f8a847e75757c82888c90929894949494949792908d89837c72747d848a8e9192999494908376695d5043362a1d100000000000000a17232f3b47525c636b6f767d838a90897c6f62594f4f54565d605d564c4135291d140a0000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0a6a6a7a8aaacafaba8a09e95918a8280868f939d9fa7a7a09d97918d8c9196a096887c6f6255483c2f221509000000000000000000000000000000000000000001070c101314171a171c1f2020201f1c181b181414110e09040100000000000000000000000000000000000000000000000000000000000000000002080d11131418171c1f2020201f1c18191514120e0903060a0c0d1313131313130e0d0b080300000000000000000000000000000000000000000000000000000000000000000007121d2730394045464c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b4b4b4b4a49494846443f403c3a38342e2c27211c160e090300000000000000000000000000000000000009141f29333b4246474c4c4c4c4c4c4c4a48443d352c21160b000003101c28343f4a5465727f8c9aa4afaa9d9083776b60544a3f332a251f1c1f2429343c45515d67727f8c99a3afb3a69a8d8073675a4d4034271a0d000000000000000000020e1a26313d4a5764707d8a99a39f92867a6d6054473a2d21140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171f252a2e34383d43474c52545c60646a6f747a7f848a90949b9fa3aaacaaa39f9b95908b85807b76706d66615e56544f4740382e24190e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000813202d3a4653606d79858b7e7165554b4035291d1004000000000000000000000000000000000815222f3b4855626e7b88958a7d7164574a3e3124170b000814212e3b4754616e7b8591959d9fa4aba1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1978a7e7164574b3e3124180b000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a49f9e9b96918a8281878f94999d9fa2aaa1a1a1a9a29f9d9a9490877f818a91959a9e9fa3ab9c908376695d5043362a1d100000000000000d1926323f4b58636e737c828990959c8f82766b6054596063686d685d52453d2f261b110600000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a879499999a9a9b9d9fa3aba9aba7a09d948f8d92989ea6a7a09d95908a85817f84919d988b7e7265584b3f3225180c000000000000000000000000000000000000050b1012181d1f20242622282b2d2d2d2c2823272521201e1a14110d07010000000000000000000000000000000000000000000000000000000000040a0f13191d20212422282b2d2d2d2c28232622211e1a1510121619192020202020201b1a18140f080100000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3e3e3d3d3c3b3a38342e302d2c28231c1b16100b050000000000000000000000000000000000000000020d17202930363a3b3f3f3f3f3f3f3f3d3c38332c231a10050000000c17232e3b4854616e7b87939facaca095897d70665b50443e36302c292c2f353d464f59606d7985919eabb5b3a69a8d8073675a4d4034271a0d000000000000000000000914202d3a4753606d7a86929fa3998a7d7164574a3e31261a0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1720293036394045464e54565e61666d71767c81868c91969c9fa6acaca8a09e98928e89837e79746e6964605c54524c48443d352e261c12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c6674818d8275675d5145382c1f1409000000000000000000000000000000000b1824313e4b5764717e8a978a7d7164574a3e3124170b000e1a2734414d5a6774808d97a0a8acafb5aeaeaeaeaeaeaeaeaeaeaeaeaeaeaea4978a7e7164574b3e3124180b000714212e3a4754616d7a8794a0adaeaeaeaeaeb5afacaba8a19e938f8e939a9ea6a9acaeb4aeaeaeb3adaba9a69f99928c8e939da0a8aaacafa99c908376695d5043362a1d100000000000010d1a2734404d5a677380898f949d9f9f94897d706360626b70777a6d60594f41382d22170b00000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a878c8c8c8d8d8f909299999d9fa7aca69f9c999fa3a7a09d95908a837e7974727d8a979a8d8074675a4d4134271a0e00000000000000000000000000000000050b10161c1d24292c2d30332d3338393a3a38342e34322e2d2a25201d18130d08010000000000000000000000000000000000000000000000000003090e161b1e25292d2e312d3338393a3a38342e322f2e2b261f1c1e2325262d2d2d2d2d2d272724201a130b0200000000000000000000000000000000000000000000000000000000000000030c151d23282c2d323232323232323232323232323232323232323232323232313131302f2e2d2b282323201f1c17110f0a040000000000000000000000000000000000000000000000050e171f252a2d2e32323232323232302f2c27211a1108000000000614202d3a46525e697683909ca7b1a79d9083786c605a5046413a3834383a40454f58606b73808d97a1adbdb3a69a8d8073675a4d4034271a0d000000000000000000000613202c3945515d6776838f9cab9a8e817467584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c162029323b41464b5153586062686e73797e83888e92989ea1a8ababa49f9c96918c86817c77716d67625f5753504a46413b38322b231c140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54636f7c8985796d6053473b31261a0e01000000000000000000000000000005121e2b37424d576774808d978a7d7164574a3e3124170b00101d2a3743505d6a7683909da9aba7a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a4978a7e7164574b3e3124180b000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a7a8aaacaca59e9b9b9fa4acb0aeaca9a7a6a6a6a6a7a8abadaba39f989b9ea5acacaaa8a9a99c908376695d5043362a1d100000000000000a1723303d4a5663707d89949fa6aba69d9083766c6a6f767d8382766b6053493f33271c1207000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a808080808081828486898c90959fabb0aba9a6acaca095918a837e78716d66717e8b989a8e8174675b4e4134281b0e000000000000000000000000000001080d161c21272c2f35393a3d40423f44464746454043413e3b3a36302c29241d19130c040000000000000000000000000000000000000000000000060e141a21272c3035393a3e413f444647464440423f3b3a37312b282a2f32333939393939393433302b251d140b0100000000000000000000000000000000000000000000000000000000000000030b12181c1f20252525252525252525252525252525252525252525252525252424232221201f1c17161312100c06000000000000000000000000000000000000000000000000000000050d141a1e2021252525252525252323201c161008000000000005121e2a36424d5764717e8a95a0acab9f958c7f726c625a524c47454044464b5159606a707d87929fa9b3beb3a69a8d8073675a4d4034271a0d0000000000000000000004111d2935404b5566727f8c99a99e9184786a5f53473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323b444d52545c60646a6f757a7f848a90959b9fa3aaaba9a19e99938f8a847f7a746f6a65605d55534d46443f3836302c272119110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e384854606b77848a7e7164574d42362a1d130700000000000000000000000000020d14212d3a46535f69778491978a7d7064574a3d3124170a00111d2a3744505d6a7783909da19e9b99999999999999999999999999999999999b978a7e7164574b3e3124180b000714212e3a4754616d7a8794999999999999999a9a9b9ea0a8abaaa8a8acafafaba39f9c9a999999999a9c9ea1a9acaca5a7a9aba49f9d9b9d9f9c908376695d5043362a1d100000000000000916232f3c4855616b7683909ca6a69f9c948a7d70757c828990897d70655b5044392e23180c0000000000000000000000000000000000000000000000000000000000000006131f2c3945515d676d73737373737475777a7c7f83909da9b6b4aeacaeaa9d91837e78716c65606c7683909c998c807366594d4033261a0d00000000000000000000000000040c131921272c3338394045474a4d4f4a50535353514b504e4b4746423b39352f29241e160d07010000000000000000000000000000000000000000090f181f262a32383a4146474b4e4a50535353514a4f4c4847423c3834353b3e4046464646464641403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000070c1013131919191919191919191919191919191919191919191918181818171616151312100b0607060300000000000000000000000000000000000000000000000000000000000002090e11141419191919191919171614100b05000000000000020e1a25303b4653606c7884919da6b0a79f93877e716c615e5653514b5153555d606b6f7c859299a3afbbc0b3a69a8d8073675a4d4034271a0d00000000000000000000010d18242f3c4855626f7c8896a1a196887b6e6255483b2f24180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a444d565e61666d71767c81868c91979d9fa7acaca79f9d97928d87827d78726d6862605853514b47423c38342e2a251e1b160f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2c38434f5966737f8c8276695f53463a2f24180d0000000000000000000000000008141e2935404b55616e7b8895968a7d7063574a3d3024170a00101d2a3643505d697683909c96918e8d8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8e938a7e7164574b3e3124180b000714212e3a4754616d7a878c8c8c8c8c8c8c8c8d8d8f91969c9fa6b0b4b6afa59d99928f8d8c8c8c8d8d8f92979ea1a8b2afa59e9993908f90939a908376695d5043362a1d100000000000000714202c38444f5963707d89949f9c948f89827c7b82898f949d9083786c60544a4034281c100400000000000000000000000000000000000000000000000000000000000004101d2935404b555d6066666666676768676d717c83919daaacaaa29fa2aa9a8d81796d66605d68707d8a949f988a7d7064574a3d3124170a000000000000000000000000070d161e242933383d44484b515357595c545b6060605c555d5a5854524d4745413a352f282018120b0300000000000000000000000000000000000109121b212a31363d43484c5254575b545b6060605c545c5955534e46443f40464b4c5353535353534e4c4841382f251a0f03000000000000000000000000000000000000000000000000000000000000000000000406070c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0b0b0a0a090807060300000000000000000000000000000000000000000000000000000000000000000000000000020507080c0c0c0c0c0c0c0a09070400000000000000000009141f2b3844505b66717e8a949ea9afa49992877e746d6863605c555c6062676d737d859297a2abacb1b9b3a69a8d8073675a4d4034271a0d00000000000000000000000715212e3b47535f6a7884919ea8988c7f7265554b4035291d100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565e686e73797e83898e92999ea1a9abaaa29f9a95908a85807b75706c66615e56544e4745403937312b28231c1914100b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b27323d4754616e7a86867b6e61554b4035291d12070000000000000000000000010d1925303945515d6773808d9a96897c706356493d3023160a000f1c2935424f5c6875828f938b84818080808080808080808080808080808080818e8a7e7164574b3e3124180b000714202d3a4753606d7980808080808080808080818284888f949fa6b0aca49f928e86828080808080808285899196a1a9a59e938f878382838893908376695d5043362a1d1000000000000004101c27333d4854606b76828f949089827c757f878f939c9fa0958a7e71665c5144382c1f1206000000000000000000000000000000000000000000000000000000000000000c18242f39434b5153595959595a5a606a717e869195a0a7a09d9892989f9d928d81756c61606d7a84919e9f92867a6d6054473a2d211407000000000000000000000007101920282f353d44484f54555d606366696a666c6d6d676b696765615e5754514b45413a3229241d150d050000000000000000000000000000000009131b242d333b42464f54565e6164676a666c6d6d666b6865625f5753504a495157596060606060605a58534a41362b2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616c75828f97a1aaaba399928b817a74706d676a666d6f737980879297a2a09da0a7b1b3a69a8d8073675a4d4034271a0d000000000000000000000006121f2b37434e586874818e9bab9c8f8276675d5145382c1f13060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d686e7a80858a90959b9fa3abaca8a09d98928e88837e79736e6963605b54524c47433d39352f2b261f1c17110e08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16202d3946525e6874818d8073675d5145392e23180c000000000000000000000005111e2a36414c56606d7985929f95887c6f6255493c2f221609000d1a2733404d5a6673808d887f797473737373737373737373737373737373737e8a8a7d7164574a3e3124170b0006131f2c3945515d676d737373737373737373737475777c828f949faba49a938b817a7674737373737475787d849197a29e938e817b7775767d87908376695d5043362a1d10000000000000000b16212c38444f59636f7d8989837d766f707d8a949ea5aba79e9184796d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000007121d2731394045474d4d4d4d4d56626f7c879298a0a49f959189858f949e9d938a7d70646d75818e96a19b8f8275675d5145392c20130600000000000000000000071119222a323a41454f54596063676d7073757779797a7979787674716e6965605d55524c443e352f271f170e05000000000000000000000000000008111b252d363e454d53596063686d71747678797a79797775726e6a64605c54515b63666c6c6c6c6c6c67645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3842505a616e7a859298a2ababa39f938e85817c79787778797c80858c9299a29e959095a0acb3a69a8d8073675a4d4034271a0d0000000000000000000000030f1b26323e4b5764717e8a99a49f9286796d6053473a2d2014090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a878c91979d9fa7acaba39f9b95918b86817c76716d67615e5753504a46413a38322c29241d1a15100b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c56626f7c87857a6d60544b4034281c1004000000000000000000000714202d3946525e68727f8b97a294887b6e6155483b2e221508000a1724313d4a5764707d8a80736d6666666666666666666666666666666666717e8b8a7d7063574a3d3024170a0004101d2935404b555d606666666666666666666767686a6f78828f9ca69f93887e746d68676666666667656c707b85929f968e81776e69686b75828f8376695d5043362a1d100000000000000005101c27333d4854606b74807d76706b626b7683909ca6a69f9c948b7f7265584c3f3225190c00000000000000000000000000000000000000000000000000000000000000010b151f272f35393a404040414e5b6774818e99a2a299938c837d7a828e939e9d9083776b727f8c939ea095897d7063554c4135291d1104000000000000000000071119232b343c444c525960636b70757a7d80828485868686868583817e7b76726d67605d5650454039312920170e04000000000000000000000000040d1a232d373f4850575f616b6f757a7e8183858686868584827f7b77716d666058636d73797979797979746e64584c4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3e46525e686f7d869299a1a9aea59d98928d898684848486898d92979fa39e948f83909daab3a69a8d8073675a4d4034271a0d0000000000000000000000000a14212e3a4754616d7a86939fa398897d7063564a3d31251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87999ea1a9ababa39f99928e89847f7a746f6a64605c55534d46443f3835302b271f1d18120e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303b47535f6a75828c7f72665c5145382c1f13060000000000000000000713202c38444f59616e7a85929ea297877a6d6054473a2d211407000714212d3a4754606d7a837b6e615c54595959595959595959595959595965727f8b897d706356493d3023160a00000c18242f39434b51535959595959595959595a5a585f666f7c89969f948c7f726c615e565959595a535b606973808d999184796d655e596774818d8376695d5043362a1d10000000000000060b0f16212c38444f59646e74706b636059636f7c89949f9d949089827c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000030d151d24292c2d333334414e5b6774818e9aa29892878078706e78818e949f95887b707d87939fa59d9083776b6054433a2f24190d010000000000000000060f19232b353d464e565d606b70777d81858a8c8f91929893989291908d8b87837f7a736d68615a514b433a322920160c0300000000000000000000010c161f2c353f49515a61696e767c82868a8e909297939892918f8c88837e786f6a6366737f8686868686868074675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d2a36414c56606b707d8791979fa6acaaa29f9a99939191919299999ea1a49f948f827e8a97a3b0a69a8d8073675a4d4034271a0d0000000000000000000000000713202d3946525d687683909daa9a8d807467574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794abadb3aea399928c86827d77726d68625f5853514b46423b38332d29251e1b16100c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e2b37434e58636f7c8984796d6053463a2d2013070000000000000000000916222f3b4854606b75828f97a19f928578675d5145392c201306000713202c3945525d686d766e695e524a4d4d4d4d4d4d4d4d4d4d4d4d4d5966737f8c897c6f6356493c30231609000007121d2731394045474d4d4d4d4d4d4d4d4d4d4e4e54606d7a8699999082786c605a524c4d4d4d4d49505764707d8a988b7e72675d535c6675828f8376695c504336291d1000000000020a11171c1f2027323d47525c64676360595454606b76828f959089837d766f6a6054473b2e221508000000000000000000000000000000000000000000000000000000000000000000030b12181d1f202626303d4a5763707d8a949f92867d736d66666c78828f9c978a7e7c869299a49f948a7d7064594f4431281e13080000000000000000020c18212b353d474f585f686d757d83898e9298999c9d9fa2aaa39f9e9c9a9a93908b85807a716c605d554c443a32281e150b0000000000000000000008131e28313e47515b626c717b82898f92999a9d9fa2a9a39f9e9b9895908a837c726d66737f8c939393938d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b1925303b444f59616b707d858f949da0a7acababa49f9e9d9e9fa3aba7a09a938d82797d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000005111d2935414c566673808c99a99d918477695e53463a2d21140600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0adb9ac9f9286807b75706b65605d56534e4645403936312b28221c19130f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b26313c4854606b76828a7e7164584b3e3125180b0000000000000000000a1623303d495663707c89939ea99d9083776a554b4135291d11040004111d2935414c565d606a615e574d424040404040404040404040414e5b6774818e887c6f6255493c2f2216090000010b151f272f35393a404040404040404040404145515d6779869293877c6f665b504641404040403f4a5663707d899285796d605554606d79858f8275695c4f4236291c0f000000020b141c22282b2d2e2e35404a52585a56554f484f59626f7c888a837d76706b6260584e43372b1f13060000000000000000000000000000000000000000000000000000000000000000000001070c1013141a232f3c4855616b768390978a7e716b605c5b666e7b88969a8e81859298a2a4999083766c6155473d331f160c0100000000000000000a141e2a333d474f59606a6f7a818990959b9fa2aaa8aaa8a6a5a6a6a8a9aca49f9d97928c857e756d675e564c443a30271c12070000000000000000010d19242f3a434f59626d727e868f949b9fa3aba9abadabaaa9aaa8a7a09d9590877f746c737f8c999f9f9a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e29323d474f59616b6f7a828a91959b9fa2aaa7a7a8a8a7aba39f9c9590888078707d8a97a3b0a69a8d8073675a4d4034271a0d000000000000000000000000010d1924303c4956626f7c8997a2a095877b6e6154483b2e23170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a0adbaaea39991847f7a756f6b65605d55534e4645403936312b28231c1914100b0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202c38434f59636f7d7e786d6053463a2d2013070000000000000000000714212d3a4754606d7a86929fa79a8e8174675b4e412f24180d0100010d1924303a444c52545d54524d453b3033333333333333333335414c566976828f877a6e6154473b2e211408000000030d151d24292c2d333333333333333333343a4653606d7986998e81756a5f544a3f363033332d3e4a5764717d8a8e8174675d515b66717d8a8e8175685b4e4235281b0f0000000a141d262d3338393b3b3b3b40474c4d4a48443d4754606a73807d77706b636059544e463d32271b0f030000000000000000000000000000000000000000000000000000000000000000000000000004060714202c38444f59626f7c879285786c615951545f697884919e938e9297a1a99f93877c6f62594f44352b210d04000000000000000006111c26303c454f59606b707c848e939d9fa7acaca8a09e9b9999999a9c9fa2a9aca9a29f97918a81796d685e564c42392e23180b020000000000000004111d2935414c55616c727f8b92989fa6acaeacaaa8a19e9d9c9d9fa2aaa7a099938c8178737f8c99a6a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d17202b353e474f5960686e767d84898e9298989a9b9b9b9b9999928f8a837c736d707d8a97a3b0a69a8d8073675a4d4034271a0d000000000000000000000000000813202d394653606c7985929ea8988b7e7165544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a8794a7acaeb4aba096918c86817c77726d67625f5853514b46423b38342e2a251f1c16110d08020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d4854606b6f716d665c5044382c1f12060000000000000000000713202c3945525d6874818e9ba7988b7e7165584b3e3225180700000008131e28323a414547504846423b332926262626262626262d3946525e6877849186796d6053463a2d20130700000000030b12181d1f202626262626262626262e3a4754616d7a8795887c6f62584e42382d252626323f4b5865727e8b8a7d70635558606c7883908d8073675a4d4034271a0d000006111c262f383f4446484848484848484848484848484e58636e73706c636159544f47433d342b20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e4754606a74818e867a6d605a53525d687885929e9d9a9ea1a9a1968e81746a6054473e3323190f0000000000000000000b17232e38424d57606b707d8691969ea5abaaa29f9a96918e8d8c8c8d8f92979c9ea6aca9a19e938e837a6d685d544a4034281d140a000000000000000613202c3945515d67707d88939fa2aab0aea7a09d9896919090909298999da0a49f938e81797f8c99a6a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e19232c353e474f565e616b70787d8186898b8d8e8f8f8e8c8a86827d786f6b64707d8a97a3b0a69a8d8073675a4d4034271a0d0000000000000000000000000006121f2b3844505b6675828e9ba89b8f8275665c5044382c1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87959b9fa3aaada8a09e99928e89837f7a746f6a64605c55534d46443f3836302c27201d19130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212c38434f59606364605c544a3f34281c10030000020507080c0c0a04111d2935414c56626f7c89959f95877b6e6154483b2e211508000000020c1620283035393a433b3a36302921171a1a1a1a1a1a212e3a4754616d7a86918578665c5044382b1f1206000000000001070c1013141a1a1a1a1a1a1a1a222f3c4955626f7c889083776a6054463c2f261c1a2734404d5a6773808d867a6d60555f6a727f8b958b7f7265584c3f3225190c00000b17222d38424a50535454545454545454545454545454545c636664615a54545454534d453b31251a0e02000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b37434e58616e7b868c7f726c62605c616d7a8797a1a9a7abada59e91847a6d60584e43352c211107000000000000000003101c28343f4a545f696f7d869298a1a8afa59e98928d888482807f7f808285898f949ea0a8ada59e9590847a6d665c51443d2f261c1106000000000003101c28343f4a54606d7a84919aa4aeb4aba39f95908b878483838485888c91959ea19d938c7f7f8c99a6a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111a232c353d444c525961666c7075797c7e80818282817f7d7a76706c666064707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000030f1c28333f4a5464717e8b97a79f9285796d6053463a2d201308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7983898e92989ea1a8ababa39f9b95908b85817c76716d67615f5753504a46413b38332c29241e1b15100c070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f1b27323d464f54565753504a42382e23170c0002080e111414191816120d19242f3a4754606a7783909d908376695e52463a2d20140700000000040e161e24292c2d372e2d2a251f170f0d0d0d0d0f1c28333f4a5464707d8a9083766a544a3f34281c100300000000000000000406070d0d0d0d0d0d0d1824313e4b5764717e8a8c7f7265584e43342a1d141c2936434f5c6976828f8376675d5d676f7c869299897c706356493d3023160a00030f1c28333f4a545b60616161616161616161616161616161616161616161616161615e574d42362a1e120500000000000000000000000000000000000000000000000000000000000000000000000000000000050f1b27323c46525e68737f8c877e756f6c676d737f8c99a9b3b4b2a89e938a7d70685d52463c32231a1000000000000000000006121f2b3844505c666e7b859298a2aaaca49f938f86807b77757372737375797d828991969fa6afa79f968f82786d60584e42382d22170b000000000006121f2b3844505c66737f8c97a1acb5aba399928b837e7a78777677797b7f848a91969e9f9287828f9ca9a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a232b323b41464f545b6063666d6f72747475757473706d6864605b5464707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000b17222d3b4754616e7b8795a0a298897c6f6356493c3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d767c81868c91969c9fa6acaca7a09d98928e88837e79736e6964605c54524d48443d3935302b271f1d18120e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b343d4348494a46443f3830261c1106070d14191e20212625221e18131e2b37434e5865727e8b978b7e7165574d42362a1e12050000000000040c13191d20212a21201e1a140d050000020b141f2b3844505b6673808d8e8175685b4e422e23170b0000000000000000000000000000000000000c1926333f4c5966727f8c877b6e6154473c3221180b1e2a3744515d6a77848d80736755606d7a84919892867a6d6053473a2d2014070006121f2b3844505b666c6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e695e53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a36414d56606d7984918a817c7978797e87929facb9b5aba0968e81746b61564c41342b201108000000000000000005111d2a36414c56606d78839097a1aaafa49a938c827b736e6a6866666667666c70757d848f949fa6b0a89f948d80746a60544a3f33281c0f03000000000713202d3a4653606d7985919ea9b2aea39992877f78716e686a69656c6e72787e848e939d99928f949faba79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081119202930363e424a5053545c60626567686868686664615d5653505764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000614202d3a46525e697784909daa998d807366564c41362a1e110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b555d606a6f747a7f848a8f949a9fa2aaacaaa29f9a95908b85807b76706d66615e56544f4745413a37322c29241d1a15100b0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222b32383b3c3e3a38342e261e150a0b12181e252a2d2e33322f2a231c1b27323d4753606d7a859285796d6053473b30251a0e0200000000000002080d1113141d1514120e09030000040c141d2730394653606c7884918c7f7265594c3f322619060000000000000000000000000000000000000714212d3a4754606d7a848276695e52463a2d20140a1723303d4a5663707d867d70645764717d8a959c8f8276675d5145392c201306000613202d394653606c787b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e6154483b2e2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000040e1925303b45515c67717e8a938e898584868b9299a3aebaafa39991847a6d60594f433a2f22190f0000000000000000000713202d3946525e68727f8c959fa9aea49f93887f756e68625f575a5959545b60636b6f7a828f949fa8b0a69f93877c6f665b5044382b1f1409000000000a1723303d4a5663707d8997a1adb2a89f92877d726c66615e56535b6062666c717a818e939d9f9c9fa6b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e171e252a2f383f44464b515356585a5b5c5c5b595754524c464a5764707d8a97a3b0a69a8d8073675a4d4034271a0d000000000000000000000000000005111e2a36424d566773808d9aaa9d908377685e5246392d201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f39434b51586062686d72787d82888d92989da0a8acaca79f9d97928d87827d78736e6863605954524c47433d39352f2b26201b160f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101921272c2f30312d2c28231c150c11171d24293036393b3f3e3b352e251c202c3945515d6774818c7f72675d514539291f14090000000000000000000104070710080705020000060c10161d262f39424f5963707d8996897c706356493d3023160a0000000000000000000000000000000000000613202c3945525d68707d7f7265574d42362a1e110916222f3c4854606b74807a6e6154606c788390968a7e7164554b4035291d1004000714212e3a4754616d7a87878787878787878787878787878787878787878787878786796c5f5346392c201300000000000000000000000000000000000000000000000000000000000000000000000000000000000008141f2934404b55616c7682909898929192989fa3abb4b0a69f92877c6f675d51473e31281e1007000000000000000004101c2934404b55616d7a85929fa7b1a89d928b7f726d615e56534e4d4c4c4a50535960686d78828f96a0abafa4999083786c6053463b31261a0e020000010d1a2734404d5a6773808d9aa9b3aca0968c7f726b605b54524c495053545b60686d78818e959fababb0b4a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191d262d333839404546494b4d4e4f4f4e4c4a4746413d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d0000000000000000000000000000020e1925303d495663707d8998a29f93877a6d6154473a2d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28313940454e54565e61666d70767c81868b91969c9fa4ababa9a19e9a938f8a847f7b75706b65605d56544e4745403937312c272119110700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b1f222324201f1c17110c141c23282f353b4146474c4b4640372e241d2935404b55626f7c84796d60554b403529170d02000000000000000000000000000400000000030a11171c1f282f38414a54616b75828f95877a6d6054473a2d21140700000000000000000000000000000000000004111d2935414c56606b70796d6053463b30251a0e0714202c38444f59606d796e685e525b656f7c879184786d6053463a2f24180d01000714212e3a4754616d7a87949494949494949494949494949494949494949494949286796c5f5346392c2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18232f3943505a626e7c8692999f9e9fa3aaaeb4b2a89e938c7f726a60554c41352c1f160c00000000000000000006131f2c3845515c6773808d98a2aeaca0958d80746d635b524d4742403f403f44464f565d666d79849199a4afaba0958a7d7063574d42362a1e1205000004111d2935414b556a7683909da9b6aa9e9184786d6059504a46413f44464a50565d666d78839099a4afbbb4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080b141c22282b2e34383a3c3f4141424241403d3a39353d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d0000000000000000000000000000000913202d3a4653606d7985929fa49a8a7e716453493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f353d43474c52545c60646a6f747a7f84898f93999ea2a9acaca49f9c96918c86827d77726d6862605853514b47423c38322b23190f0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f131516171312100c111a1e262e343940454c52545957514940362c1d242f3a47535f6a6f7b6f675c5143392f241805000000000000000000000000000000000000030c151c23282c31394049535c66707d8a94908477685d5245392c201307000000000000000000000000000000000000010d19242f3a434f5960666d665c514538291f140902101c27333d44515c666d665e564c53606a74818a7d70665c5044382b1d120700000714212e3a4754616d7a8794a0a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a19f9286796c5f5346392c20130000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313e47535f6a717e878e939eacaeb4bab4aaa0968f82776c60584e433a2f231a0d040000000000000000000714202d3a4753606d7985929faab1a79d9184796d605b5146413b3731332d33383d434c545d676f7c87939facb1a79c8f8276695f53463a2d21140600000613202c3945515d677885929fabb4ab988c7f72665c50443f38363337393f444c545c666e7b87939facb9b4a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f23282c2d2f32343535353533312e2d313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000006131f2c3845515c6675828f9cac9b8e8175655b5044372b1f120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d242932373a41464a5053585f62686d72787d82878d92979da0a7acaca8a19e99928e89847f7a746f6a65605d55534e48443d352b21160b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030709090b0706030d1a232c30383f444b51565e6166635b51483e2f261d2b37434e585f6a6f6a5f554b4031271d12070000000000000000000000000000000000000a151e262e34383d434b515b656d788491998c807366564c4135291d11040000000000000000000000000000000000000008131e28313d474f545c605c544b403428170d080d141a212834404a545c605c544c444e58616d7a81746c61544a3f34281c0c0100000714212e3a4754616d7a8794a0adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeac9f9286796c5f5346392c201300000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2b37434e58616c717c818e9ba8b5bfb6aca29891847a6d655b50463d31281e110800000000000000000003101c28343f4a5464717e8a97a2adaca0958a7d70665c51493f36302b262622282b313a424b55606a74818e9aa4afac9f93877b6e6155483b2d22170b00000714212d3a4754606d7a8798a2aeaea399887b6e62544a3f332d2a272b2d333a424a545f6a75818e9babb5b4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12181c1f202325272829292826242124313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000004101c2834404b5465727f8b98a89e9285786c605346392d2013080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c121820272b3036383f44464e53565d60656c70757b80858b90959b9fa3abadaba39f9b96918c86817c77716d67625f57544f473d32271b10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f2c353e424a50555d60686e726d635a5042382d2226323c464e585f625f584e43392e1f150b01000000000000000000000000000000000006111c2630383f44464f555d606c77818e9696887c6f6255493c2f24190d0100000000000000000000000000000000000000010c161f2b353d424b5153514b42392e23180d13191f252a2d2e39424a5153514a423d46525e686d746f645a5042382e23170b0000000714212e3a4754616d7a8794a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a79f9286796c5f5346392c2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606b707c83909daab7bbafa49a92867c6f685d53493f342b1f160c0000000000000000000006121f2c3844505c6675828f9ba9b3aa9d9083776b61544b40372a251f1a19171c1f28303a434e58626e7b87939facafa49a8b7e726553493f33271b0f03000815222e3b4855616e7b8894aab3ac9f9286796d6053463a2e221c1b1f22282f38424e5763707d8a99a3aeb4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003070c10131316181a1b1c1c1b19171724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d000000000000000000000000000000000c18232e3b4855616e7b8896a0a197887c6f6255493c2f24190d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d151b1e252a2e34383c43474c52535b6063696e73797e83898e92999ea1a9abaca8a09d98928e89837e79746e6a6360594f44382c201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313e474f545c60676d737a7f726c61544a3f3328202a343c464e5355534e463c30271d0d030000000000000000000000000000000000000c17232e38424a50535960676d74808d939e9184786a6054473b2e1e1308000000000000000000000000000000000000000000040d19232b303940454645403930271d13191e252a30363a3b3d3940444644403935414c565e6168645d53473e30261c11060000000714212e3a4754616d7a8794999999999999999999999999999999999999999b9f9286796c5f5346392c2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66707d869095a0acb8afa59f93887e706a5f564c41382d22190d04000000000000000000000713202d3a4653606d7985929fabb2a8988b7f7265594f42392e2519140e090b0f161e28313c47535f6a7683909ca9b6ac9b8e8275655b5044372b1f1205000915222f3c4855626f7b8895a2aeab9e918478665c5044382b1c110f12171d26303c4753606d7986929facb4a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e0e0f0f0e0d0a1724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d000000000000000000000000000000000714212d3a46535f697784919ea9998c7f7266554c4135291d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191c23282b31373a4145495053575f61676d71777c81868c91979c9fa6acacaaa29f9b95908b85807b76706b6054483b2f22160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f39434f5961666d71797f868a7d70665b5044392e23222a343c43474847433c342a1e150b00000000000000000000000000000000000003101c28343f4a545c60646b6f79818d929d988c7f7366584e43372b1f0c01000000000000000000000000000000000000000000000711191e272e34383a38342e271e181e242930363b4246484948443d3a38342e303a444c52545b59534b41352c1e140a000000000714212e3a4754616d7a878c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8e939286796c5f5346392c201300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d79859298a0a7b1b1a79e938c7f736c61584e443a2f261b100700000000000000000000000916232f3c4956626f7c8998a2aeaca096877b6e6154483e30271d1308020000040c161f2b37434e5865727f8b98aab4ab9e9285796c605346392d201306000916232f3c4956626f7c8995a2afaa9d9083776a544a3f34281c0a03060b151f2c3845515c677783909daab4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000102020202000a1724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d0000000000000000000000000000000005121e2a36424d576774808d9aaa9c908376675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b2f35383f44464d53555d60656b6f757b80848a90949a9fa2aaacaca79f9d97928d88827d706356493d3023160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55616b70787e848c929083786c60544a4034281c222a31373a3c3a37312a22180c0300000000000000000000000000000000000006121f2c3844505c666d71767c848e939d9f92867a6d6154473c32271b0f000000000000000000000000000000000000000000000000070c151d23282c2d2c28231d1d242930353a41464d525456544f473d31282328323a4146474e4d4841392f231a0c02000000000714202d3a4753606d79808080808080808080808080808080808080808080818e9286796c5f5346392c2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667884919eaab1b2a89f958e81776c605a50463c32281d140a0000000000000000000000000c1825323f4b5865727e8b98aab3aa9e918477695e52463a2c1e150b0000000000040d1a26313c4855626f7c8898a2aeada197877b6e6154483b2e21150800091623303c4956636f7c8996a2afa99c908376695d50432e23170b030004101c2934404b556874818e9ba7b4a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000000020e1a26313d4a5763707d8a98a39f92867a6d6054473a2d211409000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b10151a1e24292d33373b42464b5153596063686e73797e83888e92989ea0a8acaba9a29f9a948d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d67707d838b91979f958b7e71665c5144382c1f1820262b2e2f2e2b2620181006000000000000000000000000000000000000000713202d3a4653606d787e828991969da1978d8073685e5246392b20150a00000000000000000000000000000000000000000000000000030b12181c1f201f1c181f282f353a41454c52575e616360594f43392f2a2d2e3035393a41403c372f271d1108000000000006131f2c3945515d676d7373737373737373737373737373737373737373737d899286796c5f5346392c2013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5466737f8c98a2aea9a0969083796d655b50483e342a20160b020000000000000000000000010e1b2734414e5a6774818d9aa7b4a79b8e817468574d42362a1a0c030000000000000913202d394653606c7985929facb3a996897c706356493d3023160a000a1623303d495663707c8996a3afa99c8f8276695c4f4336291c060000000c18232f404d5a6673808d99a6b3a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000000000914202d3a4753606d7a86929fa3998a7d7064574a3d31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a0f13191b22272b3136394045474f54565e61666d71767c81868c91969c9fa4acadaba69a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8591959ea1a79e9184796d6053463a2d2013151a1f2122211f1a150e0600000000000000000000000000000000000000010e1a2734414d5a6774808a8f949ea0a59e92857a6d60564c41362a1d1105000000000000000000000000000000000000000000000000000000070c10131313131d28313a40454c52565e61696e706b60554b403536393b3d3c38333534302b251d150b00000000000004101d2935404b555d606666666666666666666666666666666666666666707d8a9286796c5f5346392c20130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3a4754616d7a86929fa9a19791847a6d675c53493f362c22180d0400000000000000000000000003101c2936434f5c6976828f9ca9b2a5998c7f7266594c3f30251a0c0000000000000006121f2b3844505b667783909daab1a4988b7e7165584b3e3225180b000a1623303d495663707c8996a3afa89b8f8275685c4f4235291c0f020000071925323f4c5865727f8b98a5b2a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3b0a69a8d8073675a4d4034271a0d00000000000000000000000000000000000613202c3945515d6776828f9cab9a8d817467574d42372b1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d11171b1f262a2f35383d43484d52545c60646a6f747a7f848a8f939a9fa2aaa79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d67727f8b96a1aca8a0968b7e7265584b3f3225180a0f12151515120f0a030000000000000000000000000000000000000000000d1a2633404d596673808c999fa6a69d938a7e70685d52443a3025190d0100000000000000000000000000000000000000000000000000000000000406070d18242f3a434b51565d60686d747b7d70675d51453b4146474a48443d352b20201a130b03000000000000000c18242f39434b51535959595959595959595959595959595959595964717e8b9285796c5f5246392c1f130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d3946525e6873808d97a29892857b6e685e554b41382d241a10060000000000000000000000000004111e2a3744515d6a7784909daab0a4978a7d7164574a3e3124170900000000000000030f1c28333f4a546875818e9ba8b3a6998c807366594d4033261a0d000a1623303d495663707c8996a3afa89b8f8275685c4f4235291c0f0200000b1825313e4b5864717e8b97a4b1a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3a5a59a8d8073675a4d4034271a0d000000000000000000000000000000000004101d2935404b5565727f8c98a89e918478695f53473a2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f141a1d24292c32383b41464a5153585f62686d72787d82878d92989da09a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55606d7984919ea19e96918a8276695c4f4336291c100306080908060300000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5a79f948e81746c61564c4132281e1308000000000000000000000000000000000000000000000000000000000000000004111d2935404b555d60686d737a808685796d60564c454c525456544f473d32281e130800000000000000000007121d2731394045474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d5966737f8c9285796c5f5246392c1f1300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56606d7a85929992867c6f695f564c43392f261b1108000000000000000000000000000005121f2c3845525f6b7885929eabafa296897c6f6356493c3023160900000000000000000b17222d414d5a6774808d9aa7b3a79a8d8074675a4d4134271a0e000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000b1824313e4b5764717e8a97a4b1a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97989898988d8073675a4d4034271a0d0000000000000000000000000000000000010d18242f3c4855626f7b8896a1a196887b6e6255483b2f221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181d1f272c3036394044464e53565d61666c70767b80858b90959a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3945515c67717e8b9696918b847e776c605346392d2013060000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a69f959082786d605a50433a2f20160c0200000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d737a80868d928c7f72685d5252565e616360594f443a3024190d030000000000000000010b151f272f35393a40404040404040404040404040404040424d576874818e9285786c5f5245392c1f12000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a45525d68727f8c92877d706a60574d443a31271d140a00000000000000000000000000000006131f2c3946525f6c7985929facaea295887b6f6255483c2f221509000000000000000006192633404c5966737f8c99a6b2a79b8e8174685b4e4135281b0e000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a8b8b8b8b8b8b8073675a4d4034271a0d0000000000000000000000000000000000000715212e3a47535f6a7884919999988b7f7265584c3f3225190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c10161b1f252a2e34383c43474c52545b6063696e747a7e83898f8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2834404b55606d7884918b847e78716c655b5044372b1f12050000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d89969f948f837a6d665c51483e31281e0e050000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d797f858d92989f92857a6d60565d60686e706b60564c4135291f1409000000000000000000030d151d24292c2d33333333333333333333333333332f3846535f697784919285786b5f5245382c1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935414c56606d7984877e706b60584e453c32291f150b0200000000000000000000000000000005121f2b3744505b657986939facaea194887b6e6155483b2e22150800000000000000000c1926323f4c5965727f8c98a5b2a89b8e8275685b4f4235281c0f000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b7f7f7f7f7f7f7f7d6f6356493c3023160900000000000000000000000000000000000006121f2b37434e586774818c8c8c8c8c8275695c4f4236291c0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f14191c23282c32373a41464a5053575f62676d72777d82868174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c18232e3944505c66717e857e79716d66605b53493f33271b0f030000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8899938d827a6d685d544b40362c1f160c000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f8c92979fa2a2978d80736860686d737a7d70685d52453b30251a0e03000000000000000000030b12181d1f20262626262626262626262626222d38424d57616e7b88959184786b5e5145382b1e1200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1924303a45515c67717e7d716c61594f463d332a20170d03000000000000000000000000000000000613202d394653606c798699a3aeaea194887b6e6155483b2e22150800000000000000000c1925323f4c5865727f8b98a5b2a89c8f8275695c4f4236291c0f000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f696e727272727272726f6b6054483b2f221509000000000000000000000000000000000000030f1b26313c4956626f7c80808080807f7266594c3f3326190c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e12181c1f262b3035383f44464d53555d60656b70757b7d706356493d3023160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d28343f4a54606c787a726d66605c54504941382d22170b000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87918780786d685d564c42392e241a0d04000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a85929fa9ada99f92867a6e6d727a8085857a6d60574d42362a20150a0000000000000000000001070c1013141a1a1a1a1a1a1a1a1a1a192328333f4a545e6973808d999084776a5d5144372a1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2834404b55616c71716c615a50473d342b21180e05000000000000000000000000000000000005121f2b3744505b657986929facaea195887b6e6255483b2f22150800000000000000000c1926323f4c5965727f8c98a5b2a89c8f8275695c4f4236291c0f000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d575f61656565656565656360594f43382c1f1307000000000000000000000000000000000000000a15222e3b4754606a6f7373737373726d63574b3e3225180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10151b1e24292d33383c42474b5153596063696e706b6054483b2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3844505b666c6d67605c54504a443f382f261b1106000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86847d736d665d564c433a30271d120800000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d6873808c97a2a29f97928c8073797f858d928d8073695e52463c31261b0f030000000000000000000000000406070d0d0d0d0d0d0d0d0b16212b353d44505b666e7b86929c8f8376695c504336291d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18232e3943505a616464615a50483e352b22190f06000000000000000000000000000000000000030f1b27333f495f6c7885929fabafa295887c6f6255493c2f22160900000000000000000d192633404c5966737f8c99a6b2a89b8e8275685b4f4235281c0f000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313b454d53555858585858585856544f473d32271b0f030000000000000000000000000000000000000006131f2b37434e586062666666666666635b51463b2f22160a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191c22282b31373a4045474f54575e616360594f44382c2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28333f4a545b60605c55514a443f38332d261d140a00000000000000000000000000000000000000000000000000000000000000000613202c3945515d67717e786f6b605c544c433a31281e150b00000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c56606d7a85929f97928c857f7a7e848c92979f92867b6e61584e43372b1f12060000000000000000000000000000000000000000000004101c27333d47505a606c78828f989b8e8175685b4e4235281b0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303e48505557575550483e362c231a100700000000000000000000000000000000000000000b17222d45525e6b7885919eabb0a396897d7063564a3d3023170600000000000000010e1a2734414d5a6774808d9aa7b3a79b8e8174685b4e4135281b0e000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f29333b4246484c4c4c4c4c4c4c4948433d342b21160a0000000000000000000000000000000000000000030f1b27323d464e545659595959595957514940352a1e12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d11171c1f262b2f35393d44484d525456544f473d33271c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a505353514b444039342e27221b140b02000000000000000000000000000000000000000000000000000000000000000004101d2935404b55626c716d666059504a423a31281f160c03000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a45525d68737f8c928c857f7a737f8b91969ea2a3988e81746a5f53473a2e211508000000000000000000000000000000000000000000000713202c38444f59626c73808d949f998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2c363e45494a4a49443e362c241a1108000000000000000000000000000000000000000000061d2a3743505d6a7683909da9b1a4978b7e7164584b3e2d22170b0000000000000004101c2834404a546875828e9ba8b3a6998d8073665a4d4033271a0d000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d17212931363a3b3f3f3f3f3f3f3f3c3b38322b22190f040000000000000000000000000000000000000000000a15202b343d4347494d4d4d4d4d4c4b4640372e23180d0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f151a1d24292c32383b4246484948443d352b21160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f444647454039342e28231c17110a02000000000000000000000000000000000000000000000000000000000000000000010d18242f3943505a6265605c544f443f3830281f160d04000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935414c56606d798585807a736d6d7a85929fa8ada99f93877c6f6255483c2f221509000000000000000000000000000000000000000000000916222f3c4854606b717e8b929ca6978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c1a242c33393c3e3e3c39332c241a1208000000000000000000000000000000000000000000020f1c2835424f5b6875828e9ba8b3a6998d80736653493f33271b0f0300000000000006121f2c3844515c667783909daab1a5988b7e7265584b3f3225180c000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f171f262a2d2e32323232323232302f2c272119100700000000000000000000000000000000000000000000040f19222b32373b3c40404040403f3e3b352e251c12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e13181d20272c30363a3b3d3b38332b23190f05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3338393a38342f28231c17110b0600000000000000000000000000000000000000000000000000000000000000000000000007121d28313f4850565853504a423d342e261e160d04000000000000000000000000000000000000000000000000000000000000000000000000000000020d19242f3a45515d67707d7a736d68676873808c97a1a29f97928c8175685b4e4235281b0f020000000000000000000000000000000000000000000a1723303d4a5663707d87929fa4a196887b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121a22282d303131302d28221a120800000000000000000000000000000000000000000000000d1a2733404d5a6673808d99a6b3a89c8f8275655b5044372b1f13070000000000000713202d3a4653606d7986929facb2a896897d7063564a3d3023170a000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d141a1e21222525252525252523221f1b160f0700000000000000000000000000000000000000000000000007101920272b2e2f333333333333322f2a231c130a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d11161c1f252a2d2e302f2c27211911070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d2d2c29231d18120b060000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2d363f454a4b46443f383028231c140c04000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2935404b55606b706d68696e746d6d7a85929e98928c857f796d6053473a2d201407000000000000000000000000000000000000000000000a1724303d4a5763707d8a95a0a99e918478695f53473a2d2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c2123242423211c1710080000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a8b2ab9f9285786c6053463a2f24180d0300000000070f1b27333f4953636f7c8998a3aeaca196877a6d6154473a2e211407000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415191919191919191615130f0a040000000000000000000000000000000000000000000000000000070f151b1f222326262626262625221e18120a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040b10141a1e20212322201c160f0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f20201f1c18120c070000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1b242d343a3d3e3a38342e261e17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424a51596063686d747b81796d727f8c928d85807a736d675d5145392c201306000000000000000000000000000000000000000000000916232f3c4855616b7783909da1978c7f7266574d42372b1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c11141717171614100b05000000000000000000000000000000000000000000000000000815222e3b4855616e7b8896a1acada297897c6f62554b4035291f150d070405091019222b3744505b6573808c99aab4ab9e918478685e5246392d201307000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080c0c0c0c0c0c0c090907030000000000000000000000000000000000000000000000000000000000040a0f1315161a1a1a1a1a191816120d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e121415161613100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131413100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121b22292e31322d2c28231c150c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a545c60676d737a80868c80736d798485807a736d68605d554b4035291d1104000000000000000000000000000000000000000000000714202c38444f5964717e8a969e92857a6d6054473c31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b0b0a08040000000000000000000000000000000000000000000000000000000714212d3a46535f697884919eabb3a99a8d8074675d51453b31271f18131011141a2228343f4a54606c7884919eaab3a99a8e817467564c41362a1d1105000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090d0d0d0d0d0c0c0a06020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a090704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060607060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911181d212425201f1c17110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844515c666d72797f858d9292867a6d6f7c7a736d68605d56514b433a2f24180d010000000000000000000000000000000000000000000004101c28333e4653606c788491948b7e71675d5145392a1f150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774808d9aa7b1ab9f92857a6d60574d43393128231f1d1e20252a343c44505c66707d8a96a0acada1978a7d7064574a3d3025190d01000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517181312100c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d787f858c92989f988d80746b6f6e68615e56524c45403a31281d13070000000000000000000000000000000000000000000000000b161f2b3844505b66717e8b8f82756c62554c413529180e03000000000000000000000000000000000000000000000000000000000004060707060503000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c4956636f7c8995a0acada2978c7f73695f554b433b342e2c292a2d30363e464f59606d7883909da8b2aa9e9285796d6053463a2d20130800000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050707090a0a0a0907060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105090b0b0706030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a8591979fa2aa9f92867b6e63615e56524c45413a352f281f160c01000000000000000000000000000000000000000000000000030f1c28333f4a54606d7984857a6e615a50433a2f24190600000000000000000000000000060606060606060000000002050708070c1013131413120f0b0607060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b7783909da7b1a99f92867b6e675d554d45403a393536393b42465058606b727f8c95a0acaea2988d8073675c5145382c1f130600000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080d11131416171716151413110d07060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3945515d67727f8c97a1adaaa2988e8174675d524c46413a352f29241d160d0400000000000000000000000000000000000000000000000000000b17222d3845515c66727f7d70685e52483f31281e13080000000000000000000205070813131313131313090907080e11141418181c1f2020201f1b17171413100c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131f2c38444f5964717e8b95a0acaea2989083796d675e57514b4745404146474d525a616a6f7d87929fa7b1a89f92867b6e61554b4034281c100400000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013191d2021232424232221201d1813120f0b060000000000000000000000000000000000000000000000000000000000000000000000000406070808070704010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b55606d7984919ea39f98928c857a6d6053473b353029241e18130c0400000000000000000000000000000000000000000000000000000006111c2834404b54626d72706b60564c41362d1f160c010000000000000002090e1214152020202020202016151314191e20212523282c2d2d2d2b272224201f1d18120e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d4653606d7883909da4aeaaa0958f82796e69605c5553514b4c5254575e616c707c859299a3aeaba0968d8073685e5243392e23180c0000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f24292d2e2f3030302f2d2c2924201f1c17110a020000000000000000000000000000000000000000000000000000000003060809070c10131414151413110d08070400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f3945515c67727f8b9698928d857f796d675d51453929251e19130d070100000000000000000000000000000000000000000000000000000000000c18232e3942515b62656360594f443b30241b0d0400000000000000050d141a1e20212d2d2d2d2d2d2d23221f1e252a2d2e322e34383a3a3937332d302d2c29241d1a140d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a161f2c3844505c66707d89929da6b0a79f948f837b726d6763605d55565e6164696e757e869297a2abafa3999184796d60564d4130271d12070000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d151d24292c3035393a3c3d3d3d3c3a39352f2d2b28221c140b0600000000000000000000000000000000000000000000000004060a0f12151518181c1f20212221201d191613100b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2934404b55606d7984918e86807a736d675d554b40352919130d08010000000000000000000000000000000000000000000000000000000000000007121d27303f4951565856544f473d32291e120900000000000000050f171f252a2d2e39393939393939302f2c2b3036393b3e424045464746443f413d3a39352f2a261f18130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606b74808d949fa7b0a69f9590857f7973706d676a6b686d71757b818a9298a2a9afa39f92877c6f675d51443b301e150b000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000610181f272f35383a414647494a4a49484745413d3938332d261d17110a020000000000000000000000000000000000000000070c1012131b1f21222523292c2d2e2f2d2c292422201c160f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c18232f3945515c67727f86817b736d68605d554b433a2f24180802000000000000000000000000000000000000000000000000000000000000000000000b151e2d373f464a4b4948443d352b20170d00000000000000020d17212930363a3b464646464646463c3b38373b4146474b4f4b5153535350494d4a47454039363129241d160d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e38424f59606d788290959fa6afa79f98928b85807c7a787777787a7d81868e939fa2aaaca49f918b7e716a60554b4032291f0c03000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040e18222a31394045474c5254565757565554514b4a46443f382f28221c140b0200000000000000000000000000000002050a0f12181c1f20262b2e2f322f34383a3b3b3a39352f2f2c271f1b17110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2834404b55606d787b746e69615e56514b433a31281d13070000000000000000000000000000000000000000000000000000000000000000000000030c1b252d343a3d3f3d3b38322b23190e050000000000000009141f29333b4246485353535353535349484342474c5254585b555c6060605b535a5753514b46423b352f281f19100900000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303d44515c666d7a8390949fa4acaaa29f97918d898685848485878a8e92999ea5aea9a19a938b7f736c62584e43392f20170d00000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c16202a343c434b5153565d616263636362605d555653504a423e332d261d140a0000000000000000000000000004090e11161b1c23282c2d31373a3c3f4140454747484745413d3c38332b27221b140b080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c18232e3945515c666d6e69615e57524c45403a31281f160c0100000000000000000000000000000000000000000000000000000000000000000000000009131b23292e3132302f2c272119110700000000000000020e1a25303b454d525f6060606060606056544f4e53565e6165686a676d6d6c65696763605d55534d45413a312b231b12090100000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e2834404a545d686d7a828d939aa0a8aca9a19e999a939191919297979b9fa3ababa59e9792887f736d635a50463d31281d0e0500000000000a1623303d495663707c8996a3afa89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3b0a79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323c464e555d6065686d6f7070706f6d676763605b544f443f382f261c110600000000000000000000070c1014191e20272b2e34383a3d4347484b4e4b5153545554524c4948443d37332d261d19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2834404b545c60615f57524d46413a352f281f160d0400000000000000000000000000000000000000000000000000000000000000000000000000010911181d2224252322201b160f07000000000000000005121e2a36424d575e6c6c6c6c6c6c6c6c636059575f62686e71757779797a79787674706d67615f57514b433d352d241b13090000000000000000000000000000000000000000000000000000000000000000000000000000000000030c18232e39424c565d686d78808891969ea0a8ababaca49f9e9d9e9fa2a9a8acaaa69f9c938e857d726d635b51483f342b1f160c0000000000000a1623303d495663707c8996a3a8a89b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a97a3a8a79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1924303a444e585f676d72777a7c7d7d7c7b7a7774706c666159504a42382d22170c0300000000000000030b12181c1f252a2d3238394044464a4e5355585b555c606162605d5656544f46443f382f29241e160d07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b515355534d46423b353029241d160d0400000000000000000000000000000000000000000000000000000000000000000000000000000000060d12151818161613100b040000000000000000000714202d3a46525e6976797979797979796f6b60606a6e757a7e8284868686868583807d79746e69605d554f473f362d251b1309000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c27303a444c565d666d747d848b91969a9ea1a9a6a7a8a8a8a8a7a5a8a09d99948f89817b706b625b514940362d22190d040000000000000a1623303d495663707c89969b9b9b9b8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a979b9b9b9a8d8174675a4e4134271b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565f6a6f797f8387898a8a89888784817d78706b605b544a3f33281e150b000000000000030c151d23282c30363a3d43474a515357585f6265676a676d6e6e6d6867636059535049413d352f281f19110700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2730394045464846423c363029251e18130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c0a09070400000000000000000000000815212e3b4854616e7b868686868686867d6f666d737b81868b8e9192989a9392908d8a85817b746d67605950483f372d251b110700000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e28323a434c545c606b70787e84898e919797999a9b9c9b9b9a989695918d88827d756e696159514940372e241b1007000000000000000a1623303d495663707d898e8e8e8e8e8e8275685b4f4235281c0f0200000a1724313d4a5764707d8a8e8e8e8e8e8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d686f7c848c9095959696969596918e89847d746c665b50443e30271c120700000000000b151e272e34383b4246474e54545c6063676a6f727476797a7a7b7a7874706b64605b534f45413a312b2318120b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3b3a37312a251f19130d07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b879393939393897c6f6d7880868e92999b9d9fa3a49f9e9c9a97928d8680796f6b625a51493f372d23190e0500000000000000000000000000000000000000000000000000000000000000000000000000000000030c162028313a424a505960666d71787d8185888a8c8e8e8f8f8e8d8c8a8784807c76706b615e574f473f372e251c120900000000000000000915222f3c4855626f7c818282828282827f7265594c3f3226190c0000000916232f3c4956626f7c818282828282827e7165584b3e3225180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8491969da0a7a3a3a3a8a09e9a95918a80786c605a5042392e23180c0000000007121d2730394045464d5254586062666d7074787b7e8183858687888785817d77716c656059514c433d3528231d150c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d2e2d2b261f1a140d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b87949f9f9f96897c6f7a828c92999fa3aba8a6a5a6a8aba9a9a29f99928d847d716c625b51493f352b20160c0200000000000000000000000000000000000000000000000000000000000000000000000000000000040e161f2830383f444f545c60656c7074787b7e7f8182828281807f7d7a77736f6a636059524d453e352d251c130a0000000000000000000815212e3a47535f6a6f75757575757575726d62574a3e3125180b0000000815222e3b4754606a6f75757575757575716d62564a3d3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1926323f4c5965727f8c96a0a8acacaaa7a6a7a9aaa7a09d928d80746c61544a4034281c10040000000c18232e39434b5153565e61666a6f74797d8185888b8e909298949597918e89837e786f6b605d554f473f342e271e150d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f2022211e1a140e09020000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0d0e0e0d0c0b0907060401000000000000000000000815212e3b4854616e7b8794a1aca296897c7a838f949fa3a8a09e9b9999999b9ea1a8aaaba39f9691877e726d625b51473d32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161e262e343d424a50535b606367696e717374757575757472706d6866625f58544f46423b332c231b130a0100000000000000000006121f2b37434e585f626868686868686865625b51463a2e22160900000006131f2b37434e5860626868686868686865625a50453a2e21150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8aea7a09d9a999a9c9fa3aba49d928a7e71665c5144382c1f1206000004101c2834404b555c6064696e72777c81858a8e9197989a9d9fa2aaa9a19e9a95908a837d746d6760595145403930271f150d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c1013131514120e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131316181a1a1b1a1918161413110d070100000000000000000815212e3b4854616e7b8794a1aea296897d828f959fa39f9b96918e8c8c8c8e91969b9ea5ada8a199928b7f726d62594f443a3025190d040000000000000000000000000000000000000000000000000000000000000000000000000000000000040c151c232830383f4449505356575f6164666768696868676563615e5655534e48443d363029201a11090100000000000000000000030f1a26313c464e53555b5b5b5b5b5b5b595751493f35291e1206000000030f1b27323d464e54565b5b5b5b5b5b5b585650483f34291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c2936434f5c6976828f9caaa39f95908d8c8d9092999d9fa59e9184796d6053463a2d201308000006131f2c3845515c676d71757b7f84898d92979695959596979a9d9fa4ababa7a09d959089817a706b635b514b423931271f150b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607080705020000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12181c1f2023252727272726252321201d18130c04000000000000000815212e3b4854616e7b8794a1aea99c8f828f949fa099928e888481807f808184898e939ea1a8aba39f918b7f726b60564c41362a20160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171e262e34383f44464a4d535557595b5b5c5c5b5a595754524c4847433c38322a251f170e08000000000000000000000000000a15202a343c4347484f4f4f4f4f4f4f4c4a463f372d23180d01000000000a15202b343d4347494f4f4f4f4f4f4f4b4a453f362d22180c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e9ba398928a8380808183868b90959ea1968a7e7164574b3e3025190d01000713202d3a4653606d797e82868c91918e8c8b89898888898b8d9093999da0a7aaa79f9d938e847d726d605c544b433931271d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151a1d23282c2d30323334343433312f2d2c29241d160d070000000000000815212e3b4854616e7b8794a1aeab9f948f949f9f969187817c777573727375787c81899196a0a7aea39f92877d70685e52463d32271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c151c23282d3337393d4246484b4c4e4f4f4f4e4d4c4a4746413c3a37312c27211a140d050000000000000000000000000000030e18222a31373a3c424242424242423f3e3a352d251b11070000000000040f19222b32373b3c424242424242423e3d3a342d241b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d999f92867e77747374767a7e838a91969b8e817568564c41362a1e1105000e1a2734414d5a6774808a8e8b89868482807e7c7c7b7c7d7e8183868b90959c9fa6aba59d9691877f756d665d554b43392f261b11060000000000000000000000000000000000000000000000000000000000000000000004060707060603000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001090f181f262b2e34383a3c3f404141403f3e3c3a39352f281f19110700000000000815212e3b4854616e7b8794a1aeb0a69f9c9f9f9590847c746f6a68666666686a6f757d849095a0a7afa39992857a6d61584e43372b2015090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030a11171b22272b2d31373a3b3e404142424242413f3d3a3936302e2b26201b160e09020000000000000000000000000000000006101820262b2e2f3535353535353532312e29231b13090000000000000007101920272b2e2f3535353535353532312e29221b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a9a988b7f726c676667676d71767d849095928578685e5246392d201407000915222f3c4855626f7c83817e7c7a77757371706f6e6f707174777a7f83898f949d9fa7a8a199928c81786d675d554b41382d22170f050000000000000000000000000000000000000000000000000000030608090c070c1013131413120f0b060b08080602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a131b212a313739404546494b4d4d4e4d4c4b494745413a312b23190f05000000000815212e3b4854616e7b8794a1aeb8b0abaaa09690837a6f6a625f585959595860626b707a839095a0aaaba1978e81746a6054473c31261a0f02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c11171b1f20262b2d2e313334353635353432302e2d2a25211f1b15100b0400000000000000000000000000000000000000060e151a1f2122282828282828282625221e181109010000000000000000070f151b1f2223282828282828282524211d18110900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87939285796d605a59555d60646b707a839097877a6e6154473b2e211408000815212e3a47535f6a6f7774726f6d6768666463626262636467686d72777c828990959fa2aaa39f938e82796d675d53493f332721170d020000000000000000000000000000000000000000000002050a0f121515181b181c1f2021201f1c171b181514120f0a05010000000000000000000000000000000000000000000000000000000000000000000000000000000000000a131c252d333c42474b515356585a5a5a5a59585654514b433d352b21160b000000000815212e3b4854616e7b8794a1aebabaaea39891847a6d686058534e4d4c4d4e545960686e7a839198a2aea99e93897c6f62584e43372b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131a1e21222426282829292827262421201d1915120f0a0300000000000000000000000000000000000000000000030a0f1215151c1c1c1c1c1c1c191816120d070000000000000000000000040a0f1315161c1c1c1c1c1c1c181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e68778390908376675c514d4b5154596168727f8c96897c6f6356493c302316090006121f2b37434e585f626a676563605d555958565655555658565e61656a6f767d838b92989fa7a59e948f82796d655b50443e33291f1409000000000000000000000000000000000000000003090e12151b1f2122252823282c2d2d2d2b2822272522211f1a15110d080200000000000000000000000000000000000000000000000000000000000000000000000000000007101c252d373f454d53545c60636566676767666462605d554f473d32271c10040000000815212e3b4854616e7b8794a1aebeb2a99f92867c6f685e564e4743403f4043474f565e686e7b86929fa7afa59c8f82756a5f53473a2e21150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305090e12141518191b1c1c1c1b1a19171413110d0806030000000000000000000000000000000000000000000000000000030608090f0f0f0f0f0f0f0c0b0906010000000000000000000000000000030608090f0f0f0f0f0f0f0b0b0905010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2a36414c5665727f8c908376665c50454c525960686d798390978a7d7164574a3e3124170b00030f1b26313c464e53555d5b585653514b4d4b494948494a4b4c52545860626b6f787f8690959da5a69e948e81776c605a50453b30251a0e05000000000000000000000000000000000003090e141a1e20262b2e2f32352e34383a3a3938332d34312f2e2b26201e19140d0801000000000000000000000000000000000000000000000000000000000000000000000000040f19222d373f4951575f61666d6f727374747372716f6d6760594f44382c2013070000000815212e3b4854616e7b8794a1aeb9ada1978c7f726a5f564c443d37313332373d444c565f69727f8b95a0acaa9e94887b6e6255483c31261a0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0d0e0f0f0f0f0e0c0a0707050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303b4754616e7b869285796d605651565d616b6f7a828f95978b7e7164584b3e3125180b00000a15202a343c434748504e4b49474540403e3d3c3b3c3d3e4146474e545960656c727b838e939fa4a69e938d80736c61574d42362a21160b00000000000000000000000000000000060b141a1f252a2d31373a3c3f41434045464746443f43413e3b3a37312d2a251e19130c0400000000000000000000000000000000000000000000000000000000000000000000000a15202b343f49515b62696e74797c7e808081807f7e7c7a706b6054483b2f2216090000000815212e3b4854616e7b8794a1aeb8ab9e9184796d60584e443a322b2626272b323b444d57606d7884919daab0a6998d807366584e43372b1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202d3a46525e6975828f8b7e71685e5c60686d747c848f949f988b7e7265584b3f3225180c0000030e18222a31373a3c44413f3c3a39352f31302f2f2f303035393d43474f535b60696e78818b9399a3a59d928a7e71695e52463d33271c100300000000000000000000000000020a11171f252a30363a3c4347484b4e504b51535453504a504e4b4847433c39363029241e160d06000000000000000000000000000000000000000000000000000000000000000000030f1b27323d46515b636d727b8185898b8d8d8d8d8c8b89887d706356493d3023160a0000000815212e3b4854616e7b8794a1aeb3a9998c8073675c51463c3228201b191b2029323c44505c66717e8b98a3aeab9e9184786a5f53473a2e211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36424d5663707d8991857a6d67676d727a818791969fa6978b7e7164584b3e3125180b00000006101820262b2e2f373432302d2c292425232322222325292d32373d414950575f666d747f879299a3a49f92857b6e61594f44382c1f1509000000000000000000000000040b141b222730363b4246484e5355585b5d545c6060605b545d5a5855534e4746413b352f282017110a020000000000000000000000000000000000000000000000000000000000000006131f2b37434e58636d727f868e929898999a9a9a999798877b6e6154483b2e2115080000000815212e3b4854616e7b8794a1aeada197887c6f62554b40342a20160e0a0e172028343f4a54606d7a86929facada196887b6f6255483c2f2215060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1925303b4854606b7784919083796d71797f858d9399a0a89f95887b6f6255483c2f22150900000000060e151b1f21222a28252320201d18181616151617191d20272b2f383f444d545c606d727e879299a4a2988f82756b6054483c31261a0e0200000000000000000000050e161d262d333b42464d5254585f6265686a6b666d6d6c666b6a6764625f5854524c45413a3227221b140b030000000000000000000000000000000000000000000000000000000000000815222e3b4754606a727f8b92989fa2aaa6a7a7a6a59f928578695e52463a2d2014070000000815212e3b4854616e7b8794a1aeab9e9285786a5f5343392f22180e0400050e17232e3845515d6775828f9ba8b2a8988b7f7265584c3f2e23170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c38444f5965727f8b958f827a7e848c92979fa4aba4999083766a5f53473a2e2115080000000000030a0f1215151d1b18161413100d070a090809080d11151b1d262d333b424b515b626c717e87939fa49e93897d7063574d42372b1e1206000000000000000000050e1720282f383f444d52575e61666a6f7274767879797a7978787674716e6a66615e56524c443e332d261d150c030000000000000000000000000000000000000000000000000000000004101d2935404b55626f7c87939fa3aaaeb4b2acaba9a99d9083766a574d42362a1e12050000000815212e3b4854616e7b8794a1aea89c8f827569584e4331271d100600000006111c2935404b5565727f8c98a5b2a89b8e817568544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101c27333d4754606d7a8692948f858b91969fa2a9aea49f93877c6f63584e43372b1f12060000000000000003060809110e0c090706040100000000000001050a0b141b222730394045515a616c727f8c929da69c8f8276695f53473a2e2114080000000000000000040e172029323a414950575e61696e73777b7e81838586868786858483817e7b77726e68605d5650443f382f271e150b0000000000000000000000000000000000000000000000000000000006131f2c3845515d6775828f99a4aeb4b0aba8a19e9d9d9b8e8174685b4e4130251a0e020000000815212e3b4854616e7b8794a1aea69a8d8073675a4d403227150b00000000000d18242f3c4956636f7c8996a9b3aa9d908477665c5044382b1f12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16202c3945525d6874818e9a9892989ea1a8adaba39f928c7f726b6054463c31261b0f0300000000000000000000000401000000000000000000000000000000020a11171e272e343f48505a626d74808d959f9f94887b6e6255483b2f22150800000000000000030c162029323b444c535b60696e757b8084888b8e909192999a939291908d8b88847f7a746d68615a5049413930271c12070000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929fabb5b0a69f9c96919090918c7f7265594c3f32261909000000000815212e3b4854616e7b8794a1aea5988b7e7265584b3f3225180c00000000000714212d3a4754606d7a8797a2adac9f9286796d6053463a2d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566a7783909da29fa2aaacaea7a099928b80736d63594f43342a20150a00000000000000000000000000000000000000000000000000000000000000060c151d2328363e48515b606d78839098a2998c7f7266594c3f3326190c000000000000000b151e28323b444c565d656c727b81868d9196989b9d9e9fa3a49f9f9e9d9a9796918c86817a716c605b534a42392e2318100700000000000000000000000000000000000000000000000000000916222f3c4955626f7c8899a3aeb2a89f948f8884838384877d7063574a3d3024170a000000000815212e3b4854616e7b8794a1aea3978a7d7064574a3d3124170a00000000000713202c3945525d687885929fabafa399877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f414e5a6774818d9aa8acaeafaaa29f9591877f736e635b51473d3222180e030000000000000000000000000000000000000000000000000000000000000000030b1218242d363f44505c666e7b86929f9c8f8276695c4f4336291c1000000000000007121c27303a444c565e686d777f868e92999ea0a8a7a9a9a7a6a5a6a7a9a9a7a8a09d99928d857e736c655c544a40342822180e04000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97abb5aca0968f827b7876777879786d6053463a2d201307000000000815212e3b4854616e7b8794a1aea296897c6f6356493c30231609000000000004111d2935414c566a7784919daab5ab95887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000816232f3c4956626f7c8996a0acaba39f98928c837c726d635c52493f342b211006000000000000000000000000000000000000000000000000000000000000000000000007121b2428343f4a545f69727f8b969e9184786b5e5145382b1e120000000000000c18232e39424c565e686e7a828c92989fa3abacaba39f9d9a9999999a9d9fa3aaacaba39f97918a80776d665c51443f342a20150a000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5b2aa9e9184796e696a6a666c6d665c5044382b1f1206000000000815212e3b4854616e7b8794a1aea295887b6f6255483c2f2215090000000000010d19242f43505d6a7683909da9b0a396897d7063564a3d3023170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a7784919ea59e99928d857f796f6a625b524a40372e22190f00000000000000000000000000000000000000000000000000000000000000000000000000091217232e38424d57606d7884919e9285796c5f5246392c1f13000000000004101c2834404a545d686e7a838f949fa2aaada7a09d9992908e8c8c8c8d9092989da0a7aea9a19e928d81786d605b51463c32261b0f050000000000000000000000000000000000000000000000000d1a2633404d596673808c99a6b2a6998c7f73675f57545b60605c544a3f34281c1003000000000815212e3b4854616e7b8794a1aea195887b6e6255483b2f221508000000000000081d293643505c6976838f9ca9b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b38434e5866737f8c999c938f87817a726d666058514940382e251c1007000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303c44505c66717e8a979286796c5f5346392c201300000000040f19232c3844515c666d7a8390959ea6aea9a29e95908b868381807f808183868b90959fa2aaada49d938e81746d62584e43372b21160b0000000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa6b1a4978a7e7164554d4a505353504a42382e23170b00000000000815212e3b4854616e7b8794a1aea194887b6e6155483b2e221508000000000003101c2936434f5c6976828f9ca9b0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d4855616e7b88948f89827b746e68605c544e463f372e261c130a000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e28343f4a54606d7985929286796c5f5346392c2013000000000b16212b37434e58606d78828f95a0a7b0a7a097928b837e7a767473727374767a7e838b9298a1a9aea59e938b7e726a5f53473d33271c100400000000000000000000000000000000000000000000010e1b2734414e5a6774818d9aa7b0a3968a7d7063574a3f444646443f3830261c110600000000000815212e3b4854616e7b8794a1aea295887b6f6255483c2f221509000000000003101d293643505c6976838f9ca9b0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d16212d3a46535f69768289827c756e6a615e56514b423c342d241c140a0100000000000000000000000000000000000000000000000000000000000000000000000000000000030c17232e3844505c6674818e9286796c5f5346392c201300000004101b27323b47535f6a73808c949fa8b1a7a09590857e77716d676766666667676d71787f869297a1aaafa59f92867c6f62594f44382c20150a00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d38393a38342e261e140a0000000000000815212e3b4854616e7b8794a1aea296897c6f6356493c30231609000000000004101d2a3743505d6a7683909da9b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d13191e252a36424d5763707d7d766f6a625f57524c454039302b221b120a0100000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28343f4a5464717e8b9286796c5f5346392c20130000000713202c38444f59626f7c87929fa6b0a9a09590837b716c64605d55595959555d60666c727c859298a3aeaea3988f82766b6155483c32261b0f00000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d302d2d2b28231c140c020000000000000815212e3b4854616e7b8794a1aea3968a7d7063574a3d30241706000000000005111d2935414c566b7784919eaaafa396897c706356493d3023160a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181e242930363b424855616b70706b626058534e46413b342e271e1910090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17232e3d495663707c899286796c5f5346392c20130000000916222f3b4854606b76828f99a3afada29790837a6e69615a53514b4d4c4d4b51545b606a6f7c86929fa7b1aa9f94897d7063584e43372b1b1106000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023201f1c17110a02000000000000000815212e3b4854616e7b8794a1aea4978b7e7164584b3e2d22170b00000000000713202d3946525d687885929fabb2a995887b6e6255483b2f2215080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161d242930353b41464d5254596163636059544e47423c363028231d150c07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000616222f3c4955626f7c889286796c5f5346392c2013000005111e2a36414c5663707d89949fabb0a69f92857b6e685e5750474540403f4040454a5058606a727e8b959fabb0a69d9083776a5f5347382d22170b000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d30231612100b060000000000000000000815212e3b4854616e7b8794a1aea6998d80736653493f33271b0f03000000000714212e3a4754616d7a8797a2adada197877a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f353a41464c52575e61615e5656554f47433d37312d2a251e170e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d899286796c5f5346392c201300000714202d3946525e6875828f9ba6b0ab9f948a7d70695f564d453e39352f332f35383f444e58606c7883909da6a8a7a095887c6f6253493f33271b0f030000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0300000000000000000000000815212e3b4854616e7b8794a1aea99c8f8376655b5044372b1f120700000000091623303c4956636f7c8996a9b3ab9e918578675d5145392c2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007131d28313a41454c52565e61696e6d685e5248443d383a3b3b3936302920170d0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5465727f8b9286796c5f5346392c201300000814212e3b4754616e7a86929facb1a79c8f82766c61574d443b332c29242624292d333d44505b656f7c89949d9c9a98978d8073655b5044372b1f12050000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeab9f9285796c605346392f24180c03000006101d2935404b5565727f8c98a5b2a89c8f827569554c4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18242f3a434b51565d61686e747b7a6d61574d423b4246474746413b32291e14080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a131f2c3845515c6675818e9286796c5f5346392c201300000b1825323e4b5865717e8b99a3afaca095897d70635a50453b3229211d181c181c2228333f4953606a768390908f8d8c8a8984786c605346392d2013060000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeada297887c6f62554b4035291e150b04060e18212c3945515d6775828f9ba8b3a9998c807366594d402f24190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414b555d60686d737a80868074695f5346454d525454524c443b3025190e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3a4653606d7985929286796c5f5346392c20130005121e2a36424d576875828f9babb5aa9d9083776b6054473e33292929292929292929222d38414e5864717e858482817f7d7c7a6d655b5044372b1f12050000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeb3a99a8d8174675d51453c30261d151111172028333f4a54606d7986929facada297897c6f6356493c30231608000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d737a80868d92877b6e61584e52565e61615e564c41362a20150a000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d17222d38424f5964707d8a979286796c5f5346392c2013000714212d3a46535e697885929fabb4aa998c807366594f44353535353535353535353535352f3d4955616c717977757472716f6d685e53493f33271b0f030000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeb8ab9f9285796d60574d42382f27201d1b2227323a44505b66717e8b98a2aeab9f9285796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d797f858d9298998e81756a5f565d60696e6e685e52463c31261b0f0400000000000000000000000000000000000000000000000000000000000000000000000000000000020b161f28333f4a54606b7683909c9285786c5f5245392c1f12000815212e3b4854616e7b8797a2adaea298897c6f6356494242424242424242424242424242424245505a61646c6a6967656462615e564c41382d22170b000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aebaaea2988c7f72695f544a4239312c292a2d333b444d57606c7883909daab1a79a8e8174665c5044382c1f120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111d2a3744505d6a77838c92989fa29f93877c6f6260686d737a7a6e61584e43372b21160b000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d28313944505b66707d89949e9184786b5e5145382b1e12000a1724313d4a5764707d8a97a9b3ab9f9285796d60534f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f4f5055575f5d5c5a59575654524c443c342a20150a000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aebeb3aa9f92867b6e665c544b433d393536383f444d565f69717e8b95a0acab9f95897c6f63544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b96a0aaada4998f82756a6d727a808581746a5f53473d32271b1005000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f39434e58606c7883909d9c8f8376695c504336291d10000c1925323f4c5865727f8b98a5b2aa9d908377665c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c55544e463c32261b0f030000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aebabaaea2989082786d665d554f47454142464950575e686e7b86929fa7b1a79d9083776b605442382e23170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7884919ea7a29f9792897c72797f858d92877c6f62594f44382c22170b00000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38414b555f6a727f8c95a09a8d8174675a4e4134271b0e000d1a2734404d5a6773808d9aa6b3a89b8f8275686868686868686868686868686868686868686868686868686868686868686868625f584e43372b1f13060000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aebabeb4aa9f948e81786d67605954514c4d52535b60696e7a849198a2aeab9f958a7e7164594f4330261c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c66717e8a959f97928c857f7a7f858c9297998f82756b6054483e33281c1004000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49535d676e7c86929fa4998a7e7164574b3e3124180b000e1b2835414e5b6874818e9ba7b3a79a8d80757575757575757575757575757575757575757575757575757575757575757575756f6a5f54473b2e2215080000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aebbb3adaba69e938e81796f6b64605d55565e61656c717b849196a0aaafa3999083786c6053463d3220150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a54606c788491928c857f7976838b91979fa29e94897d70635a5044392d21140800000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b656d79839198a29f93867a6d6154473a2e211407000f1c2835424f5b6875828e9ba8b5aa9d9183828282828282828282828282828282828282828282828282828282828282828282827c6f6255493c2f2216090000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeb3a9a19e9fa29e938e837c76716d676a6a696e72787e859196a0a8b0a69f92877c6f655b5044372b1f1203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3844505b66717e8a85807a726d717e8b96a0a9ada69d9083766c6155493c3023160a0000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c77818e95a0a69c8f8275685e5246392d201307000f1c2935424f5c6875828f9ba8b5aca095918f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8a7d7063574a3d3024170a0000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeada197919298a29e959189827d7a787777787b7e838b9297a0a8afa69e948c7f736a6053493f33271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28333f4a54606c777f7a736d68606d7884919ea7a29f97928a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c939ea79f94897d7063564c4135291d1105000f1c2935424f5c6875828f9ba8b5b1a7a09d9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b978a7d7064574a3d3124170a0000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeab9e9185859299a2a09d948f8a8684838485878b90959fa2a9aea59e948f82786d60584e41382d22170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3844505b656c726d68605d5c66717e8a959f98928c857f796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c99a5a3999083766b6054443a3025190d01000f1b2835424e5b6875818e9ba8b4b9b1acaaa8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a396897d7063564a3d3023170a0000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeaa9d90837d879298a1a69e9c9a939190909297989da0a7adaaa29f938e82796d665c50463c2f261b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c27333f49535b6065615d565254606c788390928d857f7a726d675d5145392c2013060000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b88959f9f92877c6f62594f4432281e130800000e1b2835414e5b6874818e9ba7b4b5aba39f9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9da0a7b1b5afa296897c6f6356493c302316090000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0000000000000000000000000815212e3b4854616e7b8794a1aeaa9d9083777d8691969fa3aba49f9e9d9d9ea1a9aaacaba39f98928b81796d675d544a3f342b1d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38414950535954524c45505b65707d8a86807a736d67605d554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697683909d948c7f726a5f53473d3320160c0200000d1a2733404d5a6673808d99a6b3afa39992909090909090909090909090909090909090909090909090909095a0acb8b4ab95887c6f6255493c2f2216090000000000000000000000000000000000000000000e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0502000000000000000000000815212e3b4854616e7b8794a1aeaa9d908377707c848d92999ea1a9a7a8a8a8a7aca49f9d99928d867e756d675d554b42382e22190b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b262f383f44464c4746413f4953616b727f7a736d68605d55514b43392f24180d0100000000000000000000000000000000000000000000000000000000000000000000000005121e2b37424d5765727e8b958f82786c60584e43352b210e040000000c1925323f4c5865727f8b98a5b2ac9f92878384848484848484848484848484848484848484848484848483909daab7aea399877a6d6154473a2e21140700000000000000000000000000000000000000040a0f1b2834414e5b6774818e9aa7afa396897c706356493d30231614110e080200000000000000000815212e3b4854616e7b8794a1aeaa9d9083776a6f7a80878d9297989a9b9c9b9a999a93908c86807b716c605c554b433930261c1007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3337393f3a393538414f59626d726d68615d56514c45403931281d120700000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c4754616d7a869083796d665b50463c32231a0f000000000a1724313d4a5764707d8a97aab4ac9f9286787777777777777777777777777777777777777777777777777b8894a1aeac9f9286786c605346392d201306000000000000000000000000000000000000070f151b1f2834414e5b6774818e9aa7afa396897c706356493d302621201e19140d05000000000000000815212e3b4854616e7b8794a1aeaa9d9083776a686d747b8085898b8d8e8f8e8e8c8a86837f7a746e68625a514b433931271e140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141b22272b2d322e2d292f3e47515b6265615e56524c45413a352f281f160c0100000000000000000000000000000000000000000000000000000000000000000000000000000914202d3946525e687581837a6d675d544a3f342a201108000000000815222e3b4855616e7b8898a2aeafa399887b6e6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a707d8996a3b0aa9d908477655b5044372b1f1205000000000000000000000000000000000007101920272b2e34414e5b6774818e9aa7afa396897c706356493d33332e2d2a251f170e050000000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d60696e74797c7f81828282817f7d7a77726e68615e565045403930271f150c02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f202621201d2c353f4951565854524c46413a352f29241d160d0400000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56626f7c7a6d685e554b42382d22180e00000000000613202d394653606c7985929fabb5ab968a7d70635d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5365727e8b98a5b1a89b8e81756853493f33271b0f0300000000000000000000000000000000040f19222b32373b3c414e5b6774818e9aa7afa396897c706356494040403b3936302920170d0200000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d575f61666c6f72747575757473716e6866615e56524d443f342e271e150d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131914131a232d373f464a4c4746413a353029241e18120c0400000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a4854606a6f6d685e564c433a2f261c1006000000000005121f2b3744505b6576828f9ca9b3a79a8d807467594f51515151515151515151515151515151505b6575828e9ba8b2a8988b7f7265584c3f2d22170b00000000000000000000000000000000000a15202b343c4347494c4e5b6774818e9aa7afa396897c7063564c4c4c4c4746413b32291f140800000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d4d53545b60626567686968676664615e5654524c46413b3228231d150c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060c0707111b252d343a3e3f3a39363029241e19130d070100000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2c38434e586062615e564c443a31281d140a000000000000030f1b27333f495365727f8c98a6b0ab9e9184786b60544844444444444444444444444444444653606c7885929eabaca196887b6e6255483b2f22150600000000000000000000000000000000030f1b27323c464e545559595b6774818e9aa7afa396897c7063595959595954524d443b3025190e02000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d50464a505356585a5b5c5b5b595754524c4746413b3630292018120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e31322e2d2a251e19130d08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1b27323d464e545654524c443a32291f160b02000000000000000b17222d3b4855616e7b88949fabaca196897d70635a50463c333737373737373737313a434f5963707d8997a1adab9e9184786a5f53473a2e2114080000000000000000000000000000000006131f2b37434e5860626666666774818e9aa7afa396897c70666666666666615e564d41362a1e1105000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d50443f4446494c4e4f4f4f4e4c4a4746413b3936302a251f170e07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e22252521201e19130d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16212b343d4348494746413a322920170d0400000000000000000614212d3a46535f697683909ca8b2a89d9083766c61584e453d36302c29282b2e343b434c56606b75828f9ca9afa4998c807366574e42372b1e1206000000000000000000000000000000000815222e3b4754606a6f7373737374818e9aa7afa396897c737373737373736e685e5246392d201407000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d50443338393c3f4142424241403e3b3936302d2a251e19140d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d121618191413110d080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222b32383b3c3a3936302920170e0500000000000000000005121e2b37424d5764717e8b96a0acab9f958a7e716a5f574f46413a39353338393f444d555d68707d87939facab9f93877b6e6155483c31261a0e02000000000000000000000000000000000916222f3c4955626f7c7f7f7f7f7f83909daab4a79a8e817f7f7f7f7f7f7f7a6e6154473b2e211408000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372b2d2f32343536353433312e2d2a25201e19140e080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c070705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101921272c2e2f2e2d2a251e170e0500000000000000000000020e1a26313c4653606d7884919ea6b0a79f92867c6f696059524c4745413f44464a50565e676d7a84919aa4afa3998e8175695f53463a2a20150900000000000000000000000000000000000c1925323f4c5865727f8b8c8c8c8c90959fabb6a99d938e8c8c8c8c8c8c887c6f6255493c2f221609000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a2023252728292828262421201e1914110d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b1f222321201d19130c0500000000000000000000000009141f2c3844505c66717e8a949fa9aea29891847b706b615e5654514b4a5053545c60696e79829096a0aca79f92877b6e62574d42362a180e0300000000000000000000000000000000000c1925323f4c5865727f8b989999999d9fa7b1baafa59d9a999999999995887c6f6255493c2f221609000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d16191b1c1c1c1b19171414110d080501000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315161413110d08020000000000000000000000000003101c28343f4a54616c76828f97a2abaaa19691857d746d6864605d55545b6062666d717b8390949fa8a9a0958d8073695f53453b31261a060000000000000000000000000000000000000c1925323f4c5865727f8b98a5a6a6aaabb1b9c0b7afa9a7a6a6a6a6a295887c6f6255493c2f221609000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d110c0e0f0f0f0e0d0b0807050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000307090907070501000000000000000000000000000000000c17232e3842505a616e7b859299a3aba8a1979287807a74706d676a6a666c6f73787e8590959fa6aaa2979183796d60574d4233291f14090000000000000000000000000000000000000c1925323f4c5865727f8b989b9b9b9ea1a8b2bbb0a69f9c9b9b9b9b9b95887c6f6255493c2f221609000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d11040102030201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303e46535e69707d879299a3aba9a199928d86817d7a78777777797c7f848b92979fa7aaa29892857b6e675c51453c3121170d030000000000000000000000000000000000000c1925323f4c5865727f8b8e8e8e8e9196a1acb7ab9f94908e8e8e8e8e8e887c6f6255493c2f221609000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306061213131313131313130706040100000000000000000000000000000000000000000000000205070813131313131313130c0b09050100000000000000000000000000000000000000000000000000000000000a151e2a36424d57606b717e879299a1a8aba39f98928e8a878584838486888c91969ea2a9a8a09892867d6f695f554b40332a200f06000000000000000000000000000000000000000a1723303d4a5663707d828282828284919eabb6a99c9082828282828282817b6e6155483b2e221508000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f12131f20202020202020201413110d07010000000000000000000000000000000000000002080e1114142020202020202020181715110c0600000000000000000000000000000000000000000000000000000000030c1a25313b454f59616c717e8791969fa4acaaa29f9a9797929190919298999ea0a8aba49f9591867d6f6b60574d43392f21180e00000000000000000000000000000000000000000916232f3c4855616b707575757575818e9aa7afa396897d757575757575756e695f53463a2d211407000000000815212e3b4854616e7b8794a1aeaa9d9083776a5d5044372a1d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171c1f202c2d2d2d2d2d2d2d2c21201d18130c040000000000000000000000000000000000050d14191e20212d2d2d2d2d2d2d2d2524221d1811090000000000000000000000000000000000000000000000000000000009141f29333d47505a616c717c848e939a9ea6aaaca7a9a29f9d9d9e9fa3aaaaaca49f99938d837b6f6b60594f453c31271d0f0600000000000000000000000000000000000000000714202c38444f5961636868686874818e9aa7afa396897c70686868686868615f574d42362a1e1205000000000815212e3b4854616e7b8794a1a5a59d9083776a5d5044372a1d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b141c22282b2d3939393939393939392d2c29241d160d04000000000000000000000000000000050e171e252a2d2e393939393939393932312e29231b1209000000000000000000000000000000000000000000000000000000030d17212b353e48505a616a6f7a81878f94999da0a7a5a7a8a8a8a8a7a5a8a09d9a938f8780796e6960594f473d332a1f150b00000000000000000000000000000000000000000004101c27333d474f55565b5b5b6774818e9aa7afa396897c70635b5b5b5b5b55534d453b31261a0e02000000000815212e3b4854616e7b8794989898989083776a5d5044372a1d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d262d3338394546464646464646463a39352f281f160c0100000000000000000000000000020d1720293036393b46464646464646463f3d3a342d241b1106000000000000000000000000000000000000000000000000000000050f19232c363e48505860686d747c82888c919596989a9b9b9c9b9a999795918c87827c746d675f574f473d352b21180d03000000000000000000000000000000000000000000000b16212c353d44484a4f4f5b6774818e9aa7afa396897c7063564f4f4f4f4846423b33291f140900000000000815212e3b4854616e7b878b8b8b8b8b8b83776a5d5044372a1d11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f383f44465253535353535353534745413a31281d13070000000000000000000000000008141e29323b41464753535353535353534b4a453f362d23180c0100000000000000000000000000000000000000000000000000000007111a242c363e464e565d616a6f757b8084878a8c8d8e8f8f8e8d8c8a8784807b756f6a605d554d453d352b23190f06000000000000000000000000000000000000000000000005101a232c33383c3d424e5b6774818e9aa7afa396897c706356494242423b3a36312921180d0300000000000714202d3a4753606d797f7f7f7f7f7f7f7e7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424a50535f606060606060605f54514b433a2f24180d010000000000000000000000020e1925303b444c52546060606060606060585651483f34291d11000000000000000000000000000000000000000000000000000000000009121a242c343d444c52586062696e73777a7d7f8181828281817f7d7a77736e69625f58514b433c332b231911070000000000000000000000000000000000000000000000000008111a21272c2f34414e5b6774818e9aa7afa396897c706356493d35352e2d2a261f180f060000000000000613202c3945515d676d72727272727272716c6155493c3023170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545b606c6c6c6c6c6c6c6c6c605d554b4135291d1104000000000000000000000005111e2a36414c565e6b6c6c6c6c6c6c6c6c65625b51453a2e1c1106000000000000000000000000000000000000000000000000000000000009121a222b323a41464e54575f6266686d707274757575757472706e6866625f57534e45403a312a211910070000000000000000000000000000000000000000000000000000000810161c202834414e5b6774818e9aa7afa396897c706356493d302822211e1a140d060000000000000004101d2935404b555d606565656565656564615a5045392d2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505b666c78797979797979797975675d5145392c20130600000000000000000000000714202d3946525e68767979797979797979726d62564a382e23170b000000000000000000000000000000000000000000000000000000000000081019202830353d43474d5355565e6163656768686968676664615e5655534d47433c352f281f180f070000000000000000000000000000000000000000000000000000000000050b101b2834414e5b6774818e9aa7afa396897c706356493d30231614120e09030000000000000000010d18242f39434b515358585858585858575550483e33281c1105000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c78858686868686868687796d6054473a2d21140900000000000000000000000814212e3b4754616e7a88868686868686867f7265544a3f34281c1003000000000000000000000000000000000000000000000000000000000000070e161e242932373c4247484c525457595a5b5c5c5b5a595754524c4847423c373229241d160d0600000000000000000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e9aa7afa396897c706356493d3023160a0502000000000000000000000007121d2831394045474c4c4c4c4c4c4c4a49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c89979393939393998a7d7064574a3d31261a0e02000000000000000000030f1b27333f495364717e8b9a93939393938f8275665c5044382b1f120600000000000000000000000000000000000000000000000000000000000000040c131920272b31373a3b4146474a4c4e4e4f4f4e4e4c4a4746413b3a37312b262018130c040000000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e9aa8aea396897c706356493d3023160a00000000000000000000000000010c161f282f35393a3f3f3f3f3f3f3f3e3c39332c241a10050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5566727f8c99a99f9f9f9f9a8d817467574d42372b1e120500000000000000000005121f2b3744505b6575818e9b9f9f9f9f9f9285796d6053463a2d201308000000000000000000000000000000000000000000000000000000000000000002080d161b1f262b2e3036393a3d3f4142424242413f3d3b3936302e2b261f1b150d0701000000000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b6774818e969fa3aa96897c706356493d3023160a0000000000000000000000000000040d161d24292c2d3232323232323231302d28221a1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d6776838f9ca9acacacaa9e918477695f53463a2d2114070000000000000000000613202d394653606c7885929eabacacada297897c6f6256493c2f24190d01000000000000000000000000000000000000000000000000000000000000000000040a0f151a1e21252a2d2e303234353536353433312e2d2a25211e1a150f0a040000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707d848c92989e96897c706356493d3023160a000000000000000000000000000000040c12181d2020252525252525252423211c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986929facb9b9b9aca096887b6e6155483b2e23180c0000000000000000000916222f3c4955626f7c8897a1adb9beb3a9998c7f7366564c4135291d1104000000000000000000000000000000000000000000000000000000000000000000000003090e1214191d20212426272829292827262421201e1914120e090300000000000000000000000000000000000000000000000000000000000000000000000000000916222f3b4854606b707980868f9496897c706356493d3023160a0000000000000000000000000000000001070d10131419191919191919171714110c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8998a3aeb8b6b8b2a8988b7f7265544b4034281c10040000000000000004111d2935404b5566727f8c99a9b3b8b7b6a99d908376685d5245392c201306000000000000000000000000000000000000000000000000000000000000000000000000000206080d11131417191b1b1c1c1b1b19171414110d080602000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f5960676d737b828a91897c706356493d3023160a000000000000000000000000000000000000010406070c0c0c0c0c0c0c0b0a0805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c566773808d9aaab1aba9abb1a89c8f8275665c5145382c1f1306000000000000000613202c3945515d6776838f9ca9aeacaaacac9f92867a6d6054473a2d21140900000000000000000000000000000000000000000000000000000000000000000000000000000000010507070a0c0e0f0f0f0f0e0c0a080705010000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101b27323d474f555c60696e757d84897c706356493d3023160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e687783909daaa79f9d9fa7ac9f9285796d6053463a2d201308000000000000000714202d3a4753606d7a86929faaa29f9ea0a8a3998a7d7064574a3d31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d434b51575f616c7079807c6f6256493c2f23160900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87939fac9f9590959faba298897c706356493d3025190e020000000000000a1724313d4a5764707d8a99a3a298929196a0ab9a8d817467574d42372b1e12060000000000000000000000000000000000000000000000000000000000000000000000000000000000000306070707060400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b313940454d535a61676d736f6a6054483b2e22150900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a9aa4a99d9083909dabaa998d807366564c41362a1e1105000000000005121e2a36424d576774818d9aab9f928684919eaa9e918477695f53473a2d2114070000000000000000000000000000000000000000000000000000000000000000000000000406070a060b101213141413100c070a07060401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000711191f272f343b424650555d60666260584e43382c1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774818e9aaca1968b7e8b99a3aa9d908377685e5246392d20140600000000000714212d3a46535f697784919eaa9d9083818e9ba8a096887b6e6155483b2e23180c00000000000000000000000000000000000000000000000000000000000000000001070c101314171a171c1f2021201f1d181a171413100d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d151d232931363e434b51535956544e463d32271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697784919eaa9e91847a86929faca095877a6e6154473b2d22170b00000000000815222e3b4855616e7b8896a0a89b8e817f8b98aaa8988b7f7265544a4034281c1004000000000000000000000000000000000000000000000000000000000000040a0f12181d1f20232623282b2d2d2d2c2924272420201d18120f0a040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181f262a31394045474d4948433d342b21160a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8896a0a89c8f827783909daaa7978b7e7164544a3f33281c0f0300000004101c2834404a5465727e8b98a8a5998c7f7c8998a3a89b8f8275665c5144382c1f120600000000000000000000000000000000000000000000000000000000040a0f161b1d24292c2d30332e34383a3a3a38352f34312d2c29241d1b150e09030000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c141a1f272f35383a403c3b38322b22190f0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f495365717e8b98a8a6998c8074808d9aa7a89b8e8175665b5044382b1f120600000006121f2c3844515c6675828f9ba8a9978a7d7986929fab9f9285796d6053463a2d201308000000000000000000000000000000000000000000000000000000060c151b20272b2f35383a3d40423f44464747454043413d3a39352f2b27201a140e06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090d151d24292c2d332f2e2c2721191007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b6575828e9ba8a9978a7d707d8a97a7ab9e9285796c605346392d2013080000000713202d3a4653606d7985929faba297887b7683909ca9a298897c6f6356493c3025190d01000000000000000000000000000000000000000000000000030a111720262b3237394045474a4d4f4a50535453514b504d4a4745403937322a261f180f06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181d1f202623221f1b160f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7885929eaba197877b6e7a8795a0aca197887c6f6255493c2f24190d010000091623303c4956636f7c8998a2ab9f92857973808d9aa6aa998c807366564c4135291d11050000000000000000000000000000000000000000000000050c151c232832373d43474b515356595c545c6060605d555d5a5753514b47433d36312a2117110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070c1013141a1615130f0a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8897a1ab9e918578697784919daaa9998c7f7366564c4135291d11040005111d2a36414c566673808c99aaa99c8f8376707d8a97a8a99d908376685e5246392d20130700000000000000000000000000000000000000000000050e171e262e343c43474e54555d606366696a666d6d6d676b696764605d55544e46423b3328221c140b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070d09090703000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b5565727f8c98a9a89b8f82756874818d9aa7a99c908376685d5245392c201306000713202d3946525e687783909daaa69a8d80736d7a8796a0ac9f93867a6d6154473a2e211409000000000000000000000000000000000000000000050e17202930383f444e53586062676d7073757779797a7a79787674706d67626058534d453f332d261d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c6776828f9ca9ab988c7f7265717e8a97a8ac9f92867a6d6054473a2d211409000714212e3a4754616d7a86939faca9978a7e71687784919daaa4998a7e7164574a3e31261a0f0200000000000000000000000000000000000000040e172029323b424a50585f626a6f75797d80828485868786868583807d7a756f6a615f5751443f382f261c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929faca399897c6f636e7b8796a0aca3998a7d7064574a3d31261a0e020b1824313e4b5764717e8a99a4ada197887b6e6774818e9aa7ab9a8e817467584e43372b1f1206000000000000000000000000000000000000020c162029323b444c545c606a6f767c8185898c8f91929893999291908d8a86817c756e69625b504a42382d221712080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8998a2ac9f92867a6d60697784919daaab9a8e817467574d42372b1e1206121f2b37434e586874818e9babab9e9285786964717e8a97a8ab9e9184786a5f53473a2e2114070000000000000000000000000000000000000a141e28323b444d565e666d737c82898e9298999c9d9fa2aaa39f9e9c9a98928e89827b726d605b544a3f3328241a0e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c566673808d99aaa99d908376675d6774808d9aaaab9e918478695f53473a2e21140715212e3a47535f6a7884919eaba89b8f827568616e7b8796a0aca196887b6e6255483b2e23180c000000000000000000000000000000000006111c26303a444d565e686e7880878f949b9fa2aaa8aaa7a6a5a6a7a9a9aaa39f9b948f867f746c665b504440362c20160c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d687683909da9a79a8d8074675563707d8a98a3aca196887b6e6255483b2e23180c15222f3c4855626f7b8896a1adaa988c7f72655e697784919eaaa8988b7f7265554b4034281c1004000000000000000000000000000000000b17232e38424c565e696e7a828d92999fa6abaca49f9d9b9999999a9d9fa3abaca69e98928b81786c605c52483e32281e13080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86929faca8978a7d716457606d7a86929faca8988b7f7265554b4034281c101d2935404b5565727f8c98a9aea298897c6f62576874818e9ba7a89c8f8275675c5145382c1f130600000000000000000000000000000003101c28343f4a545d686e7b8490949fa3aba9a29e9a93908e8c8c8c8e9092999ea1a8aaa29f938e80746e645a50443a3025190d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a99a3aca096877b6e61545d6776828f9ca9a89c8f8275675c5145382c1f131f2c3845515d6776828f9ca9ac9f9285796d605864717e8b97a8ac9f9285796d6053463a2d2013080000000000000000000000000000030e18212b3844505c666d7a8491969fa6afa59e97928c878481807f808183868b91969da5aea59d938d80746c61564c4135291f14090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774818d9aabaa9e918477695e525565727f8c98a8ac9f9285796d6053463a2d2014202d3a4753606d7986929faca99c8f8376665c55616e7b8896a1ada298897c706356493d3025190d010000000000000000000000000009141f2a36424d57606d78828f96a0a8aca49f938e857f7b777473727374767a7f848e929ba3ada59d928a7e71685e52463c31261a0e010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697784919daaa89b8e817568564d55626e7b8896a1aca298897d7063564a3d30251a24303d4a5763707d8a98a3aea9998c7f726654535f697884919eabaa998d807366564c41362a1e1105000000000000000000000000020e1a26313a46535f69727f8c949fa8afa49a938b817a736e696866666667686d7279818b919ba4aea49e92857a6d61574d42372b1d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8796a0aca9988b7e7265584b535f6a7884919eabaa9a8d807367574d42362a1e2a36424d576774808d9aaaada297897c6f62564d576875818e9ba8aa9d908377685e5246392d20130700000000000000000000000005121e2b37424d57616e7b86929fa6afa59f93887f746d68615e57595959565d60676d747f8b929ca7ada1978e8174695f5346392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a8ada297887b6f6255484e586774818e9aabaa9d908477695e52463a2d202d3a46525e697784919daaab9f9285796c60534b5865727e8b98a9ac9f93877a6d6154473a2e21140a0000000000000000000000000714212d3a46535f6974818e98a2aeaa9e938c7f726d605d56524d4d4c4d4c52555c606d73808d95a0aca99f93877b6e61554b4034291c10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e586875818e9ba8ab9f9285796c6053464a5764707d8a99a3aca095877b6e6154473b2d222e3b4854616e7b8795a0aca89b8e8275665b504855626e7b8897a1ada49a8a7e7164574b3e31261b0f0300000000000000000000030f1c28333f4a54616e7b87929faaaea2988e81756d625b524c4642403f4041454b515b606c7883909da7afa49a8d8073675c5145382c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3a47535f6a7885919eaba89c8f8275655b50444754606d7a86929faca7978b7e7164544a3f3328343f4a5465717e8b98a7b1a8988b7e7165544a47535f6a7885929eabac9b8e817468584e43372b1f12060000000000000000000006121f2b3844505b6673808d99a3afab9f92857a6d615b5145413a3630332f35394045505b66707d8995a0acac9e9285796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b8897a1adab998c7f726653493f45515d677683909ca9a89b8e8275665b5044382b3844505c6675828e9ba8aca096887b6e615548424e576875828e9ba8ab9e9185786a5f53473a2e211507000000000000000000000613202d394653606c7884919eabafa4998d8073685e52493f352f2a252624292f343f4a54606b7783909daaada2978a7d7164574a3e2f24180d01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5465727f8b98a9aea399897c706356493d414b5566727f8c99a9ab9e9285796c605346392d3a4653606d7985929fabaa9d918477695f53463f4c5865727f8b98a9ada197887c6f6255483c2f24180c000000000000000000000916232f3c4956626f7c8996a1adac9f93877b6e61564c413729241e1a19191d232d38424f5966727f8c99a9a8a99a8d807467554b4035291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844505c6675828f9ca8ac9f92867a6d6053473a3c4955626f7c8897a1ada297897c6f6256493c303c4956626f7c8997a2adaa9a8d807467574d423c4855626f7c8897a2ada9988c7f7265554b4035291d10040000000000000000000d192633404c5966737f8c99a9b2a99d908376695e52443a302519130e090d121c262f3d4855616e7b88979d9b9a98908377675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929faba99d908376675d514538394653606c7885919eaba9998c7f7366564c4135414c5666737f8c99a9aea398897d7063564a3d394653606c7985929faba99c8f8276675d5145382c1f1306000000000000000005111e2a36414c566976828f9ca9b2a6998c7f7366574d4232291e13080100010a14212d3a47535f69788592908f8d8b8a877a6d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8998a2aea69a8d807367554b40353744505b6574818e9baba99d908376685d52453945525d687683909da9ac9f9286796d6053473a3744505b6575828f9ca8ac9f9286796d6053473a2d20140900000000000000000714202d3946525e687885929eabb3a996897d706356493d3023170d0000000006121e2b37424d57697682858482807f7d7c786d6053463a2d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935404b556673808c99aab2a8978a7d7064574a3d2f333f495364717e8a99a4ac9f92867a6d6054473a4754606d7a86929faca99c8f8276675d514538333f495365727f8c98aaaea398897d7063564a3d3025190e02000000000000000814212e3b4754616e7a8797a1adada297877a6d6154473a2e21140700000000020e1a26313c4753606d797877757372706e6d665c5044382b1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d677683909ca9aca096877a6d6154473a2e2d3a4754616d7a86939faca3998a7d7164574a3e4a5764717d8a99a3afa8988b7f7265554b40352d3c4956626f7c8998a2aeaa9a8d807367564d42362a1e1105000000000000000916232f3c4956626f7c8995a9b3ab9f928578685e5246392d201307000000000009151f2c3845515c676d676a6867656362605c544a3f34281c1003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7a86929facaa9e918477685e5246392d2d3946525d687683909da9ab9a8e817467584e434e576774818e9aabaca096887b6e6255483b2f2d3a4653606d7985929fabaa9d908477695e52463a2d201406000000000000000a1724313d4a5764707d8a97a3b0aa9d9084776a564c4135291d1105000000000004101c2934404b555c605c555c5a58575553504a42382e23170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a99a3aea79b8e817468564c41362a2935414c5666737f8c99a9ab9e9184786a5f5347535f6a7884919eabaa9e918477695f53473a2e2b3844505c6676828f9ca9aca095877b6e6154473b2d22170b000000000000000b1825323e4b5865717e8b98a4b1a99c8f8376695c50433025190d010000000000000c18232f39434b5153514b4f4d4c4a4846443f3830261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c566774808d9aabb3a9988b7e7165584b3e302524303c4956626f7c8997a1ada196887b6e62554855626e7b8896a1acab9a8d817467574d42372b28343f4a5466727f8c99aab1a7978b7e716453493f33271b0f030000000000000c1925323f4c5865727f8b98a5b2a89b8f8275685c4f4235291c080000000000000007121d273139404547454042403f3d3b3a38342e261e140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e687784909daaada197887b6e6255483b2f22202d394653606c7985929eaba8988c7f7265554b5565727f8b98a8aea3998a7d7063574a3d3126232e3c4956636f7c8998a2aea89b8e8175655b5044372b1f12050000000000000c1926333f4c5966727f8c99a5b2a89b8e8275685b4f4235281c0f02000000000000010b151f272f34383a38342f3432302f2d2b28231c140c0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8795a0acab9e9285796c605346392d201f2b3844505b6675818e9baca99c8f8276675d515c6775828f9ca8ac9f92867a6d6053473a2d20202d3a4653606d7985929facab9e9285786c605346392d2013070000000000000c1926333f4c5966727f8c99a5b2a89b8e8175685b4e4235281b0f0200000000000000030d151d23292c2d2c292327252422201f1c17110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e8a97a7b1a89b8f8275655b5044372b1f1c28333f4a5464717e8b9aa4ac9f9286796d6053606d7985929faca99c8f8276675d5145392c201f2c3845515c6676838f9ca9ada197887c6f6255493c2f24180d0100000000000c1925323f4c5865727f8b98a5b2a89b8e8275685b4f4235281c060000000000000000040c13191d202121201f1b171917151312100b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424d576874818e9ba7b4aa998c7f726653493f33271b17222d3b4754616e7a87939faca398897d70635663707d8998a2aea8988c7f7265554b4035291d1c2834404b546673808c99abb3a9998c7f7266554b4035291d100400000000000b1825323e4b5865717e8b98a4b1a89c8f8275695c4f422e23170b00000000000000040d161e24292c2d2e2d2b27222422201f1c18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f697884919eabaea398897c6f6356493c2d221714202d3946525e687783909daaaa9a8d807467576773808d9aaaada196887b6f6255483c2f241818232e3d495663707c8999a3aea99c8f8376675d5145392c20130600000000000b1724313e4a5764717d8a97a4b0a99c90837669544a3f34281c10030000000000010c1620282f35393a3b3937332d312f2d2c29231d150d0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8896a1adac9f9286796d6053463a2d2013111e2a36414c566673808d99aaaa9d918477695e687783909daaab9e9184786a5f53473a2e1d1214202d3a4753606d7a86929facac9f92867a6d6053473a2d2014090000000000091623303c4956636f7c8996aab4aa9e918477665c5044382b1f1206000000000008131e28323a4145474846443f403e3c3a38342f271f150b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5465727e8b98a8b2a99c908376675c5145382c1f130d1925303c4956636f7c8998a2aca095877b6e616e7a87939facab9a8e817467584e43372b1f0c131f2c3845515d677683909ca9aea3998a7d7063574a3d31251a0e02000000000814212e3b4754616e7a8798a2aeac9f9286796d6053463a2d20130600000000010d19242f3a444c5254545350494d4b494745403931271d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c6675828f9ba8b6ac998d807366554b4034281c100813202d3a4653606d7985929faba7988b7e7165717e8b9aa4afa3998a7d7064574a3d31261a0f101d2935404b556673808d99abb4ab9a8d807467574d42362a1e1205000000000714202d3946525e687985929facaea399887b6e6155483b2d22170b0000000004111d2935414c565d6061605b5359575553514b43392f23180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929fabafa49a8a7d7063574a3d2e23180c06121f2c3844505c6675828f9ba8a89b8e82756675818e9bacac9f92867a6d6054473a2d21140a0c18242f3d4a5663707d8999a3afaa9d918477695e53463a2d2114060000000005111e2a36414d566a7783909daab4ab978a7e7164544a3f33281c0f050000000713202c3945525d686d6e6c6568666462605c554b4034291c100400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8997a2adac9f93867a6d6154473a2e21140703101c28343f4a5465717e8b98a7ab9f9285796c7885929eaba99c8f8376675d5145392c2013060714212d3a4754606d7a86929facaca095877b6e6154483b2d22170b00000000020e192530404d5a6773808d9aabb5a79a8e8174665b5044382b21170e0704040d16212d3a4754606d7a7b79777573716f6d675c5145382c1f13060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5566737f8c99a9b3aa9d918477685e5246392d201307000c17232e3b4854616e7b8795a0aca297887c6f7c8897a1ada9998c7f7266554c4135291d11040613202c3945515d677783909daab1a8988b7e7165544a3f33281c0f0300000000081724313d4a5764707d8a99a3aeab9e9285786c6053463e3329201813101116202b37434e5866737f87858381807e7c796d6053473a2d2014070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d6776838f9ca9b4a79a8e817467564c4135291d1105000614202d3a46525e697784919daaa9998c7f727f8c99a9ada197887c6f6255493c2f24190d0104111d2935414b556773808d9aacb6a89b8e8275665b5044382b1f1206000000000714212d3a4754606d7a86929facada1978a7d70635a50453b3229241f1c1d2028323a47535f6a76839092908e8c8a887d7063564a3d3023170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986929facb3a9978b7e7164584b3e3025190d010005121e2a36424d576773808d9aaaa89c8f8276838f9ca9ab9e9185786a5f53473b2e1e130800010d18242f3d4a5764707d8a9aa4afab9e9285796c605346392d201308000000000713202c3945525d6875828f9ba8b2a99c9083766c61574d443c352f2c28292c313a444e58626f7c88959f9d9b999286796d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303d4a5663707d8998a3aeada197887b6e6155483b2e2215080000020e1a25303d4a5663707d8998a2ab9f92857a86929facab9b8e817468584e43372b1f0c0100000714212d3a4754606d7a86939facada297897c6f6256493c2f24190d0100000004111d2935414c5664707d8a96a1adab9f948a7e71695e564e45403a383435393d434c56606a74818e9ba7aaa99c8f8276675d5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c566773808d9aaab4ab9e928578695f53463a2d2114070000000913202d3a4653606d7985929faca2978c7f8c98a3aea3998a7d7164574a3e32261b0f0000000713202c3945525d687783909daab3a9998c7f7366554c4135291d1104000000010d19242f3a4653606d7984919ea8b0a69e92857b6e685f58514b4645404145474f565d686f7c87939facada2978b7f7265554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e687783909daab5a89b8f827568574d42372b1e120500000006131f2c3845515c6775828f9ca8a99e9185919eaaac9f92867a6d6054473a2d21140a00000004111d2935414c566774808d9aa7b3a99c908376675d5145392c2013060000000008131f2c3844515c66717e8b96a0abada19791837a6e6a605d5553514b4c52545960686d7a849199a4afa99e9285796d6053473a2f24180c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212e3a4754616d7a87939facb4aa988c7f7265594c3f31261a0e0200000004101c2834404b5565727f8b98a8ada1979197a1ada99c908376685d5245392c201307000000010d1924303e4a5764717d8a97a8b2ac9f92867a6d6054473a2d2114090000000004101c2834404a54606d78849199a3afa9a09591847c726d6763605c55565d60646b6f7a839096a0abada1978c8073675d5145392c1d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a9aa4afaea298897c6f6256493c2f23160900000000000c18232e3b4855616e7b8896a0aca9a19ea1a9b3a9998c7f7366564c4135291d1104000000000814212e3a4754616d7a8796a0acafa3998a7d7064574a3d31261a0e02000000000c18232e3944505c666f7d87929fa5aea7a09691867f79736f6d676a6a686d70767c8490959fa8aea49e91857a6d61554b4035291d0b0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774818e9aacb6ac9f9285796d6053463a2d20130700000000000714212d3a46535f697784919eaab3adabadb3ada197887c6f6255493c3024190d01000000000713202d3946525e687784919daab5ab9a8d817467574d42362a1e12050000000007121c28343f4a54606b727f8c939da4aea8a098928c85807c79787777787a7d828991969fa7aea59d928a7d70685e5243392f24180d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697784919eaab2a99c8f8376665c5144382c1f1206000000000005121e2a36424d576774808d9aaab4b2b2b2b2ab9e9285786c605346392d201308000000000005111e2a36414c566774818e9aa7b2aa9e918477695f53463a2d21140700000000000b17232e38424f59606c77818d929fa3aaaaa29f97918d898684848485868a8f949ea0a8ada49d938d80746b61564c4131281d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8896a0a5a5ab998d807366544a4034281c10040000000000020e1a26313d4a5763707d8a98a3a5a5a5a5a5ab9b8e8175655b5044372b1f12050000000000010d1925303e4b5764717e8a97a8a5a5a096887b6e6155483b2e221508000000000006111c26303d44505b656c78808c92989fa7aba9a19e9a99939190909193999c9fa6aca9a19e928d81786d60594f443a301f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b9898989898998a7d7063574a3d2e23180c000000000000000914202d3a4753606d7a869298989898989898998a7e716453493f33271b0f030000000000000815212e3b4854616e7b879698989898988b7e7265584b3f3225180c0000000000000a141e27333f49535b666c747f8690959c9fa6aaababa49f9e9d9d9e9fa4abacaaa29f97928a80776d665c50473e32281e0d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875818b8b8b8b8b8b8b877a6d6054473a2d2114070000000000000006131f2c3945515d6776828b8b8b8b8b8b8b8b8b877a6d6154473a2d22170b000000000000000714202d3a46525e6977848b8b8b8b8b8b8b8275685c4f4235291c0f000000000000020c17222d38414a545b606d727c838a9094999ea0a8a5a7a8a8a8a7a6aba39f9d98928d857e746c655c544a3f352c20160c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4b5764717e7f7f7f7f7f7f7f7e71685d5245392c2013070000000000000004101d2935404b55626f7c7f7f7f7f7f7f7f7f7f7e71685e5246392d1b11060000000000000005121e2a36424d5763707d7f7f7f7f7f7f7f7e7164584b3e3125180b0000000000000006111b262f38424a505b626a6e767d83888d919696999a9b9c9b9a99989992908b86817a716c605b534a42382e231a0e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4955616c7172727272727272716c62564c4135291d110400000000000000000c18242f394854606a6f727272727272727272716c61564c41362a1d0a0000000000000000020e1a25303b4855616b7072727272727272716c6156493d3024170a00000000000000000a141d262f383f4451585f626b70767c8084878a8c8d8e8f8e8e8d8c8986837f7a746d68615a5049413830261c1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212d3945505a61646565656565656564625a50443a2f24190d01000000000000000007121d2c38434e58606265656565656565656564615a50443a3025190d00000000000000000009141f2c38444f5961636565656565656564615a5045392d2115080000000000000000020b141d262d333f464e535961636a6f73777b7d7f8181828281807f7c7a76726d68615e5650443f382f261e140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d28343e4850555758585858585858585650483e32281e1308000000000000000000010f1b27323d464e5456585858585858585858585650483e32281e130800000000000000000002101c28333e474f555758585858585858585650483e34281d1105000000000000000000020b141c2228333c43474f55585f6266696e7072747575757473726f6d6765605d56524c443e332d261d140c020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222c363e45494b4c4c4c4c4c4c4c4b49453e362d20160c01000000000000000000000a16212b343d4348494c4c4c4c4c4c4c4c4c4b49453e362d20160c02000000000000000000000b16212c353e44484a4c4c4c4c4c4c4c4b49453e362d22170c0000000000000000000000020a1117212a31373e44484e5455575e6163666768696867666563605d5554524c46413a3227221b140b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006101a242c34393d3e3f3f3f3f3f3f3f3e3d39342d241b0d040000000000000000000000040f19222b32383b3c3f3f3f3f3f3f3f3f3f3e3d39342d241b0e05000000000000000000000005101a232c33383c3d3f3f3f3f3f3f3f3e3d39342d241b100600000000000000000000000000060f1820262b33383c4347494d525457595a5b5c5b5b5a595653514b4745413a3530282017110a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009121a22282d30313232323232323231302d29221b12090000000000000000000000000007101921272c2e2f32323232323232323231302d28221b12090000000000000000000000000008111a21282c2f303232323232323231302d28221b1209000000000000000000000000000000060e151a21282c32373b3c4246474a4c4e4e4f4f4e4d4c494745403a39352f29251e160e060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000910171d212424252525252525252524211d171109000000000000000000000000000000070f161b1f22232525252525252525252524211d1710090000000000000000000000000000000810161c202324252525252525252524211d171009000000000000000000000000000000000003090f161c20262b2e30363a3b3d3f4142424241403f3c3a38352f2c29241e19130c040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c1115171819191919191919181715110c060000000000000000000000000000000000040a0f131516191919191919191919181715110c060000000000000000000000000000000000050b1014161719191919191919181715110c060000000000000000000000000000000000000000050b10151b1f22252a2d2e303334353635343332302d2c2924201d19130d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005080a0b0c0c0c0c0c0c0c0b0a0805000000000000000000000000000000000000000000030709090c0c0c0c0c0c0c0c0c0b0a08050000000000000000000000000000000000000000000407090a0c0c0c0c0c0c0c0b0a0805000000000000000000000000000000000000000000000000040a0f13151a1e202124262728292828272623201f1d1813110d080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000306090e11141417191b1b1c1c1b1a19161413100c070401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010407071313131313131311100e0b060000000000000000000000000003090d1012131313131313131312100d08020000000000000000000000000306131313131313131312110f0b070100000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080a0c0e0f0f0f0e0d0c09070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d111314202020202020201e1d1b17120b0400000000000000000000070e14191d1f202020202020201f1f1c19140d06000000000000000000060c101220202020202020201f1e1b17120c05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d202d2d2d2d2d2d2d2d2b2a27231d160e0500000000000000000811191f25292b2c2d2d2d2d2d2d2c2b29251f181008000000000000030a11171c1f2d2d2d2d2d2d2d2d2b2a28231e170f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161e24292c39393939393939393736332e2820170e0400000000000007111a232a31353839393939393939393835302a221a100600000000030c151c23282c39393939393939393837342f2821180f050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c1620282f3539464646464646464644433f39322920160b0000000000030e19232c353c4145464646464646464644413b342c22180d020000000a151e262e343846464646464646464543403a332a21170c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28323a41455353535353535353514f4b443b32281d12060000000009141f2a353e474d515353535353535352514d463e342a1f1408000006111c2630383f44535353535353535352504b453c33281e1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a444c525f606060606060605e5b564d44392e23170b000000010d1925313c4750585e5f6060606060605f5d5850463b3025190d00000c17232e38424a505f606060606060605e5c564e453a2f23170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c565d6c6c6c6c6c6c6c6c6a675f564b3f33271b0e02000004101d2935414d58626a6c6c6c6c6c6c6c6c6962584d4135291c100003101c28343f4a545c6c6c6c6c6c6c6c6c6b6860564b4034281b0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c3945525d6876797979797979797771675b4f43362a1d1004000005121f2b3845515e6a74797979797979797974695d5144382b1f120006121f2c3844505c6676797979797979797872685c5043372a1e110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8686868686868684776a5e5144372b1e110400000613202c3946535f6c798686868686868686796c5f5246392c1f13000713202d3a4653606d788686868686868684786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793939393939184776a5e5144372b1e110400000613202c3946535f6c798692939393939285796c5f5246392c1f13000713202d3a4653606d798693939393939185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a87939f9f9f9d9184776a5e5144372b1e110400000613202c3946535f6c7986929f9f9f9f9285796c5f5246392c1f13000713202d3a4653606d7986939f9f9f9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0acaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e110400000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e080000000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adab9e9184786b5e51453024190d0100000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adab9e9185786b564c4135291d110500000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adac9f928579685d5246392d20130700000613202c3946535f6c7986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaea298877a6d6154473a2e211406000006131f2c3845515c667986929facac9f9285796c5f5246392c1f13000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb4aa95887c6f6255493c2e23170c02000713202d3a4653606d798699a3aeab9e9285786b5f5245382c1f12000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb1a4988b7e7165544a3f34281d130d070614212e3a4754616d7a8794abb4ab9e9184786b5e5145382b1e12000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb4a79a8e8174665c5044392e241e18151517222f3c4855626f7b8895a2aeaa9e9184776b5e5144382b1e11000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb8ab9e9285796d60554b40353029242221222834404b5564717e8b97a4b1a99c908376695d5043362a1d10000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb9ada1978a7e71675c5146413a352f2e2e2d333b45515c6774818d9aa7b4a89b8e8275685b4f4235281c0f000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbeb3a99d9184796d605c524c45403c3b3b3c3f444d57606d7985929eabb3a69a8d8073675a4d4034271a0d000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbab8aca0968d80746e615d56514b494848494a50575e69717e8b97a1adb2a8978a7e7164574b3e3124180b000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbabdb2a89d928d80756d68605d5556555455545b60696e7b85929ea9b3aca096887b6e6155483b2e221508000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adbbb3adaba49c928d817a726d67656261616264666c717b839097a2adb3aa9d918477695f53463a2d211407000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adb3a9a19e9ea09c938e857f7975726f6e6e6f7073787e859095a0a9b3aea2988c7f7366574d42362a1e1205000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adada197919196a09e97928c86817e7c7b7b7c7d80848a9197a0a7b1b0a69f92857a6d6154473b31261a0e02000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adab9e9185849196a0a19e98928e8b898887888a8d91969ea1a9b1afa69e948c7f72685e524639291f140900000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d91847b8490959da5a29f9b9895949495979a9da0a8adb1aca59d948f82786c60564c41362a170d0300000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184777b838e929d9fa7a8a5a2a1a1a2a3a6aaacadaba7a09d938e82796d665b50443a302519060000000713202d3a4653606d798693a0a8a89e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776e79818990959b9fa2aaa7a8a8a8a7a6a9a29f9b95908981786d675d544a3f32291e13080000000713202d3a4653606d7886939b9b9b9b9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d918477676d747d83898e9298989a9b9c9b9b9a9897928e89837d746d665d554c42382d20170d020000000713202d3a4653606d78868e8e8e8e8e8e84786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a606b70777d8185898b8d8e8f8f8e8d8b8985817d77706b605c544c433a2f261c0e05000000000613202d394653606c78818282828282828074675b4e4134281b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5960636b7075797c7f8081828281807e7c7975706b636059514b423a31281d140a000000000006121f2b3844505b666c75757575757575746e64584c4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e54596063666d6f72747575757473716f6d66636059544f45403930281f160b020000000000030f1c28333f4a545b606868686868686867645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e514f54545c6063656768696868676562605c54544f48443d342e271e160d04000000000000000b17222d38424a50535b5b5b5b5b5b5b5b58534a41362b2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144484a515356585a5b5c5c5b5a585653504a48443d383228231d150c04000000000000000006111c262f383f44464f4f4f4f4f4f4f4e4c4841382f251a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e514439404446494c4d4e4f4f4e4d4b4946443f3838332c272118120b0300000000000000000006111c262f383f44464f4f4f4f4f4f4f4e4c4841382f251a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e51442e34383a3c3f4142424241403e3c3a38342e2c27211b160c0700000000000000000000000b17222d38424a50535b5b5b5b5b5b5b5b58534a41362b2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e514437282c2d3032343536353534322f2d2c28231c1c16100b040000000000000000000000030f1c28333f4a545b606868686868686867645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1f2023252728292928272523201f1c1711100b050000000000000000000000000006121f2b3844505b666c75757575757575746e64584c4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e1316191a1b1c1c1b1a18161312100c06000000000000000000000000000000000613202d394653606c78818282828282828074675b4e4134281b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e11090c0e0f0f0f0e0d0b090706030000000000000000000000000000000000000713202d3a4653606d79868e8e8e8e8e8e84786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e11040001020302020100000000000000000000000000000000000000000000000713202d3a4653606d7986939b9b9b9b9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0a8a89e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0adaa9d9184776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0acab9e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793a0a5a59d9184776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d798693a0a5a59e9185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8793989898989184776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d788693989898989185786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a878b8b8b8b8b8b84776a5e5144372b1e11040000000000000000000000000000000000000000000000000000000000000713202d3a4653606d78868b8b8b8b8b8b84786b5e5245382b1f120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d797f7f7f7f7f7f7f7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000613202d394653606c777f7f7f7f7f7f7f7e7164584b3e3125180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515c666d72727272727272716c6155493d3024170a0000000000000000000000000000000000000000000000000000000000000005121f2b3744505b656c72727272727272716c6256493d3024170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b545c606565656565656564615a5045392d21150800000000000000000000000000000000000000000000000000000000000000030f1b27333f49535b606565656565656564625a5045392d211508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39424b515358585858585858575550483e34281d110500000000000000000000000000000000000000000000000000000000000000000b17222d384149505358585858585858585650483e34291d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d2730394045464c4c4c4c4c4c4c4b49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000006111b262f383f44464c4c4c4c4c4c4c4b49453e362d22170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e272e34383a3f3f3f3f3f3f3f3e3d39342c241a1006000000000000000000000000000000000000000000000000000000000000000000000a141d262d3337393f3f3f3f3f3f3f3e3d39342d241b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c151d23282c2d3232323232323231302d28221a12090000000000000000000000000000000000000000000000000000000000000000000000020b141b22272b2d3232323232323231302d29221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f20252525252525252424211d17100900000000000000000000000000000000000000000000000000000000000000000000000000020a11171b1f20252525252525252524211d1711090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070c10131319191919191919181715110c0600000000000000000000000000000000000000000000000000000000000000000000000000000000060b0f121319191919191919181715110c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000406070c0c0c0c0c0c0c0b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000305060c0c0c0c0c0c0c0b0a080500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + offset: 0 + size: 0 + path: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset.meta b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset.meta new file mode 100644 index 00000000..7d0ff00d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e3c311fc27694a419baca451fc975d1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF new file mode 100644 index 0000000000000000000000000000000000000000..abc899cd55086105f439df7a6d01db84168aebb5 GIT binary patch literal 778552 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�~L; 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 z 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

%_(Aj7q33!xs4IE+IDaLfo1Ni*OlT3|2Q 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≻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

^0r7XT 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 =6j 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

okG(z1$EL-Iw)0HFW9 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

5T4(J7RUssJ3lH8XDc6u&1)6 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 literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF.meta b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF.meta new file mode 100644 index 00000000..a054310b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/ARIAL.TTF.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 56c59f4ecd2348d41abca4cc46a07e11 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontName: Arial + fontNames: + - Arial + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 1 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References.meta new file mode 100644 index 00000000..bd943563 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8185afa3e746d0844aa1f12b00922841 +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs.meta new file mode 100644 index 00000000..db738c88 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e9dc93a6e3540f245880fbe88d7f68f2 +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab new file mode 100644 index 00000000..22a30330 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab @@ -0,0 +1,83 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &100000 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 4 + m_Component: + - 4: {fileID: 400000} + - 33: {fileID: 3300000} + - 135: {fileID: 13500000} + - 23: {fileID: 2300000} + m_Layer: 0 + m_Name: Mesh_FR + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &400000 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.00846481, z: 0} + m_LocalScale: {x: 3, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!23 &2300000 +Renderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_LightmapIndex: 255 + m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0} + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_SubsetIndices: + m_StaticBatchRoot: {fileID: 0} + m_UseLightProbes: 0 + m_LightProbeAnchor: {fileID: 0} + m_ScaleInLightmap: 1 + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3300000 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!135 &13500000 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 100000} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: .5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 100000} + m_IsPrefabParent: 1 + m_IsExploded: 1 diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab.meta new file mode 100644 index 00000000..e86c8061 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Prefabs/Mesh_FR.prefab.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: f9bccdf9387c20f4ebb647274ab6d1fb +NativeFormatImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds.meta new file mode 100644 index 00000000..7bfcb360 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fe6a518a321912f42bd7647ee7e9f65d +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav new file mode 100644 index 0000000000000000000000000000000000000000..2bc8013f2d5ccf5004e6fbde3d8b3e3f091770c4 GIT binary patch literal 419406 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

= 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�D+AFcq6P%#Y+1WtobNc_xWKr; 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 literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav.meta new file mode 100644 index 00000000..599ea0dc --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sounds/espannol.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: be316fa0cb281b241bb2f1e1a00c55c3 +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/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites.meta new file mode 100644 index 00000000..c1ba46cd --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 542fa85d5f6afa144a96aa68ae69b4f2 +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_EN.png b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_EN.png new file mode 100644 index 0000000000000000000000000000000000000000..19172368a87e1b1589e33bb26258b5020e0bb489 GIT binary patch literal 9692 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 e6R)Vp{~Z98qw(f|NPyZo&W$9{>FaO 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 literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_FR.png.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_FR.png.meta new file mode 100644 index 00000000..dddc155b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Sprites/L_FR.png.meta @@ -0,0 +1,91 @@ +fileFormatVersion: 2 +guid: bd755c6631de9b64f85257f46f8719f6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + 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: 1024 + 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: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + 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/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures.meta new file mode 100644 index 00000000..22cbc7bb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aced31ed82b8e2d4b9e68db74e8b163d +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_AR.png b/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_AR.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ca95dfab2a490eea0d2462867604ccad018c28 GIT binary patch literal 11236 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

K@5aga0iZn#pxSrQG5`yp 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 O0000qw(f|NPyZo&W$9{>FaO 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 e6R)Vp{~Z98qw(f|NPyZo&W$9{>FaO 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 literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_FR.png.meta b/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_FR.png.meta new file mode 100644 index 00000000..80a700be --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Resources/References/Textures/L_FR.png.meta @@ -0,0 +1,47 @@ +fileFormatVersion: 2 +guid: fdd6d36bfa4c41c4f988be3be486b5f8 +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + seamlessCubemap: 0 + textureFormat: 5 + maxTextureSize: 1024 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 2 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes.meta b/popcorn/Assets/I2/Localization/Examples/Scenes.meta new file mode 100644 index 00000000..e9901342 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9cdc0f86f5890b1448f493fbe798c7ba +folderAsset: yes +timeCreated: 1463338425 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity new file mode 100644 index 00000000..a63f38d0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity @@ -0,0 +1,2211 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &98661343 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 98661344} + - component: {fileID: 98661346} + - component: {fileID: 98661345} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &98661344 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98661343} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 649764120} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.0349026, y: 0.042410713} + m_AnchorMax: {x: 0.97483766, y: 0.18080357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &98661345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98661343} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &98661346 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 98661343} + m_CullTransparentMesh: 0 +--- !u!1 &144851223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 144851227} + - component: {fileID: 144851226} + - component: {fileID: 144851225} + - component: {fileID: 144851228} + - component: {fileID: 144851224} + m_Layer: 0 + m_Name: Text Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &144851224 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144851223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc44345ca9310574fa50c645e6a7254f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!102 &144851225 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144851223} + m_Text: El jugador {PLAYER_COLOR} ha ganado! + m_OffsetZ: 0 + m_CharacterSize: 1 + m_LineSpacing: 1 + m_Anchor: 0 + m_Alignment: 0 + m_TabSize: 4 + m_FontSize: 16 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!23 &144851226 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144851223} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!4 &144851227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144851223} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.02, y: 0.49, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &144851228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 144851223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: MyCallBack + mTermSecondary: Arial + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 144851224} + m_MethodName: OnModifyLocalization + 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 + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1452279190} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_TextMesh +--- !u!1 &167348268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 167348269} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167348269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167348268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.5763136, y: -0.7923176, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1099668625} + - {fileID: 941646752} + - {fileID: 663069740} + - {fileID: 276461885} + - {fileID: 1666749074} + - {fileID: 144851227} + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &272055859 +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: 007f2c3f7b0e4a048ae89d65dcd38729, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1099668624} +--- !u!1 &276461884 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 100002, guid: de53e8bc2cb2dbc43abb70cc57070ef6, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 276461885} + - component: {fileID: 276461886} + m_Layer: 0 + m_Name: Prefab + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &276461885 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 400002, guid: de53e8bc2cb2dbc43abb70cc57070ef6, + type: 2} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276461884} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -5.1373014, y: -1.7532818, z: 1.865202} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1723805336} + m_Father: {fileID: 167348269} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &276461886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276461884} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Prefab + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: + - {fileID: 100000, guid: d243bb55d50b4424cb4d5e5036104aef, type: 3} + - {fileID: 100000, guid: a5c71238940815045b04992831c96352, type: 3} + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 293388874} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!114 &293388874 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1723805335} +--- !u!114 &386100401 +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: 3b29d7ab09a96634a9f704e6a1f21193, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1666749076} +--- !u!1 &386833631 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 386833634} + - component: {fileID: 386833633} + - component: {fileID: 386833632} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &386833632 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 386833631} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &386833633 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 386833631} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &386833634 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 386833631} + m_LocalRotation: {x: 0, y: 0, z: 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: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &431326927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 431326928} + - component: {fileID: 431326933} + - component: {fileID: 431326932} + - component: {fileID: 431326931} + - component: {fileID: 431326930} + - component: {fileID: 431326929} + m_Layer: 0 + m_Name: Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &431326928 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 649764120} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.20949675, y: 0.063616075} + m_AnchorMax: {x: 0.2973214, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -0.0000009536743, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &431326929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 0} +--- !u!114 &431326930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &431326931 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 431326932} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 431326929} + m_MethodName: ApplyLanguage + 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: 1 +--- !u!114 &431326932 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &431326933 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 431326927} + m_CullTransparentMesh: 0 +--- !u!1 &574518342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 574518344} + - component: {fileID: 574518343} + 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 &574518343 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574518342} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &574518344 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574518342} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261} + m_LocalPosition: {x: -2.589727, y: -5.6618614, z: 6.31061} + 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 &649764119 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 649764120} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &649764120 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649764119} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 98661344} + - {fileID: 2059278659} + - {fileID: 431326928} + - {fileID: 1540298483} + m_Father: {fileID: 977845523} + 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 &663069739 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 663069740} + - component: {fileID: 663069744} + - component: {fileID: 663069743} + - component: {fileID: 663069742} + - component: {fileID: 663069741} + m_Layer: 0 + m_Name: MeshRenderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &663069740 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663069739} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.5943017, y: -1.7532818, z: 1.865202} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &663069741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663069739} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: MeshRenderer + mTermSecondary: MeshRendererMaterial + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: + - {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} + - {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1744296199} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_MeshRenderer +--- !u!23 &663069742 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663069739} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &663069743 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663069739} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &663069744 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 663069739} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &941646749 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 941646752} + - component: {fileID: 941646750} + - component: {fileID: 941646753} + - component: {fileID: 941646751} + m_Layer: 0 + m_Name: GUI Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &941646750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941646749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Standard Unity Example + mTermSecondary: Arial + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1448561449} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_TextMesh +--- !u!102 &941646751 +TextMesh: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941646749} + m_Text: 'Este ejemplo muestra como localizar componentes comunes: + + + Audio Source, GUI Text, GUI Texture, Text Mesh and Prefabs' + m_OffsetZ: 0 + m_CharacterSize: 1 + m_LineSpacing: 1 + m_Anchor: 0 + m_Alignment: 0 + m_TabSize: 4 + m_FontSize: 0 + m_FontStyle: 0 + m_RichText: 1 + m_Font: {fileID: 12800000, guid: 56c59f4ecd2348d41abca4cc46a07e11, type: 3} + m_Color: + serializedVersion: 2 + rgba: 4294967295 +--- !u!4 &941646752 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941646749} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.36, y: 3.84, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &941646753 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 941646749} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 56c59f4ecd2348d41abca4cc46a07e11, type: 3} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &977845519 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 977845523} + - component: {fileID: 977845522} + - component: {fileID: 977845521} + - component: {fileID: 977845520} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &977845520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977845519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &977845521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977845519} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &977845522 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977845519} + 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!224 &977845523 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977845519} + 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: 649764120} + m_Father: {fileID: 0} + 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, y: 0} +--- !u!1 &1099668622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1099668625} + - component: {fileID: 1099668624} + - component: {fileID: 1099668623} + m_Layer: 0 + m_Name: Audio Source + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1099668623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099668622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Audio + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: + - {fileID: 8300000, guid: d43b462874fb2a14aaca956682ba3596, type: 3} + - {fileID: 8300000, guid: e68e601305e6218408e8208f956472c7, type: 3} + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 272055859} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_AudioSource +--- !u!82 &1099668624 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099668622} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 8300000, guid: be316fa0cb281b241bb2f1e1a00c55c3, type: 3} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 1 + 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: 1 + 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 +--- !u!4 &1099668625 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099668622} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: Arial + TermType: 1 + Description: + Languages: + - ARIAL + - COMIC + - ARIAL + Flags: 000000 + Languages_Touch: [] + - Term: Audio + TermType: 3 + Description: + Languages: + - ingles + - References/Sounds/espannol + - frances + Flags: 000000 + Languages_Touch: [] + - Term: Color/Red + TermType: 0 + Description: + Languages: + - Red + - Rojo + - Rouge + Flags: 000000 + Languages_Touch: [] + - Term: Flag Texture + TermType: 5 + Description: + Languages: + - References/Textures/L_EN + - References/Textures/L_ES + - References/Textures/L_FR + Flags: 000000 + Languages_Touch: [] + - Term: MyCallBack + TermType: 0 + Description: + Languages: + - '{PLAYER_COLOR} Player Wins!' + - El jugador {PLAYER_COLOR} ha ganado! + - Joueur {PLAYER_COLOR} gagne! + Flags: 000000 + Languages_Touch: [] + - Term: MyText1 + TermType: 0 + Description: + Languages: + - This is a TextMesh + - Esto es un TextMesh + - Il s'agit d'une TextMesh + Flags: 000000 + Languages_Touch: [] + - Term: Prefab + TermType: 4 + Description: + Languages: + - Mesh_US + - Mesh_ES + - References/Prefabs/Mesh_FR + Flags: 000000 + Languages_Touch: [] + - Term: Standard Unity Example + TermType: 0 + Description: + Languages: + - 'This example shows how to localize Standard Unity Components like + + Audio Sources, GUI Text, GUI Texture, Text Mesh and Prefabs' + - 'Este ejemplo muestra como localizar componentes comunes: + + + Audio Source, GUI Text, GUI Texture, Text Mesh and Prefabs' + - "Cet exemple montre comment localiser standard Unit\uFFFD composants:\n\nAudio + Source, GUI Text, GUI Texture, Text Mesh and Prefabs" + Flags: 000000 + Languages_Touch: [] + - Term: Flag Sprites + TermType: 5 + Description: + Languages: + - References/Sprites/L_EN[L_EN] + - References/Sprites/L_ES[L_ES] + - References/Sprites/L_FR[L_FR] + Flags: 000000 + Languages_Touch: [] + - Term: MeshRenderer + TermType: 8 + Description: + Languages: + - Cube + - Capsule + - Sphere + Flags: 000000 + Languages_Touch: [] + - Term: MeshRendererMaterial + TermType: 6 + Description: + Languages: + - Default-Diffuse + - Default-Skybox + - Default-Material + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 1 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 1 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!114 &1448561449 +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: 62e865dd37373234c9d966bdd78278e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 941646751} +--- !u!114 &1452279190 +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: 62e865dd37373234c9d966bdd78278e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 144851225} +--- !u!1 &1540298482 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1540298483} + - component: {fileID: 1540298488} + - component: {fileID: 1540298487} + - component: {fileID: 1540298486} + - component: {fileID: 1540298485} + - component: {fileID: 1540298484} + m_Layer: 0 + m_Name: French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1540298483 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 649764120} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.66891235, y: 0.063616075} + m_AnchorMax: {x: 0.75933444, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1540298484 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 0} +--- !u!114 &1540298485 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1540298486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1540298487} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1540298484} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: French + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1540298487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: fdd6d36bfa4c41c4f988be3be486b5f8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1540298488 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1540298482} + m_CullTransparentMesh: 0 +--- !u!1 &1666749073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1666749074} + - component: {fileID: 1666749076} + - component: {fileID: 1666749075} + m_Layer: 0 + m_Name: Sprite Renderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1666749074 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666749073} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 5.17, z: 0} + m_LocalScale: {x: 3, y: 3, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1666749075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666749073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Flag Sprites + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + AllowParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 386100401} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_SpriteRenderer +--- !u!212 &1666749076 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1666749073} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 0ff5ba6aa9b08494bb14a8728ee51d9c, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1723805335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1723805336} + - component: {fileID: 1723805339} + - component: {fileID: 1723805338} + - component: {fileID: 1723805337} + m_Layer: 0 + m_Name: Mesh_ES + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1723805336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723805335} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 1} + m_Children: [] + m_Father: {fileID: 276461885} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1723805337 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723805335} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &1723805338 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723805335} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1723805339 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1723805335} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!114 &1744296199 +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: b4679336707a2b54caa10d99561be751, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 663069742} +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2059278658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2059278659} + - component: {fileID: 2059278664} + - component: {fileID: 2059278663} + - component: {fileID: 2059278662} + - component: {fileID: 2059278661} + - component: {fileID: 2059278660} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2059278659 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 649764120} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.43676952, y: 0.063616075} + m_AnchorMax: {x: 0.52329546, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.0000009536743, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2059278660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 0} +--- !u!114 &2059278661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &2059278662 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 2059278663} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2059278660} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &2059278663 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &2059278664 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059278658} + m_CullTransparentMesh: 0 diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity.meta new file mode 100644 index 00000000..9314e1e3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization Standard Components.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: d296d750610b0bc4a90725b0183151f6 +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity new file mode 100644 index 00000000..f344c5bf --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity @@ -0,0 +1,3982 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &12757372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 12757373} + - component: {fileID: 12757374} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &12757373 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12757372} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 317174489} + - {fileID: 51451890} + - {fileID: 586057136} + m_Father: {fileID: 1448576823} + 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: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &12757374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 12757372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 317174490} + toggleTransition: 1 + graphic: {fileID: 51451891} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &51451889 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 51451890} + - component: {fileID: 51451892} + - component: {fileID: 51451891} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &51451890 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51451889} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 12757373} + 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: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &51451891 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51451889} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &51451892 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 51451889} + m_CullTransparentMesh: 0 +--- !u!1 &77474266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 77474267} + m_Layer: 5 + m_Name: Extras + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &77474267 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77474266} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1268790944} + - {fileID: 653617884} + - {fileID: 1452851461} + - {fileID: 1420320822} + m_Father: {fileID: 722395055} + 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!1 &167348268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 167348269} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167348269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167348268} + m_LocalRotation: {x: 0, y: 0, z: 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!1 &221523713 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 221523714} + - component: {fileID: 221523716} + - component: {fileID: 221523715} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &221523714 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221523713} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1172968458} + 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: -7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &221523715 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221523713} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &221523716 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 221523713} + m_CullTransparentMesh: 0 +--- !u!1 &274686397 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274686398} + m_Layer: 0 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &274686398 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274686397} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1306373065} + m_Father: {fileID: 1468075148} + 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: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &313464588 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 313464589} + - component: {fileID: 313464591} + - component: {fileID: 313464590} + m_Layer: 0 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &313464589 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313464588} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1293268103} + 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 &313464590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313464588} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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!222 &313464591 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 313464588} + m_CullTransparentMesh: 0 +--- !u!1 &317174488 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 317174489} + - component: {fileID: 317174491} + - component: {fileID: 317174490} + 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 &317174489 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317174488} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 12757373} + 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 &317174490 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317174488} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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!222 &317174491 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 317174488} + m_CullTransparentMesh: 0 +--- !u!1 &326863485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326863486} + - component: {fileID: 326863490} + - component: {fileID: 326863489} + - component: {fileID: 326863488} + - component: {fileID: 326863487} + - component: {fileID: 326863491} + m_Layer: 0 + m_Name: Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326863486 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.20941558, y: 0.07589286} + m_AnchorMax: {x: 0.32629868, y: 0.22321428} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &326863487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &326863488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 326863489} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 326863491} + m_MethodName: ApplyLanguage + 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: 1 +--- !u!114 &326863489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &326863490 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_CullTransparentMesh: 0 +--- !u!114 &326863491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 1364070359} +--- !u!1 &476591209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 476591210} + - component: {fileID: 476591213} + - component: {fileID: 476591212} + - component: {fileID: 476591211} + m_Layer: 0 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &476591210 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476591209} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1989499585} + - {fileID: 1468075148} + m_Father: {fileID: 1072564159} + 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: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &476591211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476591209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 970248308} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1989499585} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 1468075149} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &476591212 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476591209} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &476591213 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476591209} + m_CullTransparentMesh: 0 +--- !u!114 &536453383 +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: a58a0cb6f0764ca42b2877aa2c6fa0af, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1383460143} +--- !u!1 &586057135 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 586057136} + - component: {fileID: 586057138} + - component: {fileID: 586057137} + 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 &586057136 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586057135} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 12757373} + 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!114 &586057137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586057135} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &586057138 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 586057135} + m_CullTransparentMesh: 0 +--- !u!1 &653617883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 653617884} + - component: {fileID: 653617887} + - component: {fileID: 653617886} + m_Layer: 5 + m_Name: textSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &653617884 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653617883} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 77474267} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5002597, y: 0.6610714} + m_AnchorMax: {x: 0.73727286, y: 0.7414286} + m_AnchoredPosition: {x: -0.000030517578, y: 0} + m_SizeDelta: {x: -0.000061035156, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &653617886 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653617883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: RawImage +--- !u!222 &653617887 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653617883} + m_CullTransparentMesh: 0 +--- !u!1 &699861513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 699861514} + 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 &699861514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 699861513} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1096552524} + m_Father: {fileID: 977608279} + 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: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &722395052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 722395055} + - component: {fileID: 722395054} + - component: {fileID: 722395053} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &722395053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &722395054 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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!224 &722395055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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: 1045395102} + - {fileID: 77474267} + - {fileID: 1277673355} + m_Father: {fileID: 0} + 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: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &970248307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 970248308} + m_Layer: 0 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &970248308 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 970248307} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1293268103} + m_Father: {fileID: 1989499585} + 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: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &977608278 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 977608279} + - component: {fileID: 977608282} + - component: {fileID: 977608281} + - component: {fileID: 977608280} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &977608279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977608278} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 699861514} + m_Father: {fileID: 1915528343} + 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: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &977608280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977608278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1096552525} + m_HandleRect: {fileID: 1096552524} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &977608281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977608278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &977608282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 977608278} + m_CullTransparentMesh: 0 +--- !u!1 &1045395101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1045395102} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1045395102 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045395101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1405865223} + - {fileID: 1714070056} + - {fileID: 326863486} + - {fileID: 1962922074} + m_Father: {fileID: 722395055} + 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 &1072564158 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1072564159} + - component: {fileID: 1072564163} + - component: {fileID: 1072564162} + - component: {fileID: 1072564161} + - component: {fileID: 1072564160} + m_Layer: 0 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1072564159 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072564158} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1668354635} + - {fileID: 2092503783} + - {fileID: 476591210} + m_Father: {fileID: 1277673355} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.12204579, y: 0.80803573} + m_AnchorMax: {x: 0.4148377, y: 0.8750009} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1072564160 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072564158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 33897b093844df84a8e8a0258a1fb0dd, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1072564161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072564158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 853051423, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1072564162} + m_Template: {fileID: 476591210} + m_CaptionText: {fileID: 1668354636} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 1505079329} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: [] + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1072564162 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072564158} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1072564163 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072564158} + m_CullTransparentMesh: 0 +--- !u!1 &1096552523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1096552524} + - component: {fileID: 1096552526} + - component: {fileID: 1096552525} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1096552524 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096552523} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 699861514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1096552525 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096552523} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1096552526 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1096552523} + m_CullTransparentMesh: 0 +--- !u!1 &1115346775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1115346776} + - component: {fileID: 1115346779} + - component: {fileID: 1115346778} + - component: {fileID: 1115346777} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1115346776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.06168831, y: 0.2812804} + m_AnchorMax: {x: 0.9383117, y: 0.45985183} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1115346777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Basic Text + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 2139795395} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1115346778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Este es un Texto del Unity UI +--- !u!222 &1115346779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_CullTransparentMesh: 0 +--- !u!1 &1172968457 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1172968458} + - component: {fileID: 1172968462} + - component: {fileID: 1172968461} + - component: {fileID: 1172968460} + - component: {fileID: 1172968459} + m_Layer: 5 + m_Name: Dropdown + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1172968458 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172968457} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 221523714} + - {fileID: 1731226343} + - {fileID: 1915528343} + m_Father: {fileID: 1277673355} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.6038961, y: 0.8080357} + m_AnchorMax: {x: 0.8636364, y: 0.875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1172968459 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172968457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a5379d3aeaf18a24fa23c26a749edfe5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Terms: + - Option A + - Option B + - Option C +--- !u!114 &1172968460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172968457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 853051423, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1172968461} + m_Template: {fileID: 1915528343} + m_CaptionText: {fileID: 221523715} + m_CaptionImage: {fileID: 0} + m_ItemText: {fileID: 586057137} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_Options: + m_Options: + - m_Text: Option A + m_Image: {fileID: 0} + - m_Text: Option B + m_Image: {fileID: 0} + - m_Text: Option C + m_Image: {fileID: 0} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1172968461 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172968457} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1172968462 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1172968457} + m_CullTransparentMesh: 0 +--- !u!1 &1268790943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1268790944} + - component: {fileID: 1268790947} + - component: {fileID: 1268790946} + m_Layer: 5 + m_Name: textSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1268790944 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268790943} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 77474267} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.28564933, y: 0.6610714} + m_AnchorMax: {x: 0.48045456, y: 0.7414286} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1268790946 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268790943} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: Image +--- !u!222 &1268790947 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1268790943} + m_CullTransparentMesh: 0 +--- !u!1 &1277673354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277673355} + m_Layer: 5 + m_Name: Localized Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1277673355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277673354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1115346776} + - {fileID: 1778691769} + - {fileID: 1383460141} + - {fileID: 1172968458} + - {fileID: 1072564159} + m_Father: {fileID: 722395055} + 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 &1293268102 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1293268103} + - component: {fileID: 1293268104} + m_Layer: 0 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1293268103 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293268102} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 313464589} + - {fileID: 2039927563} + - {fileID: 1505079328} + m_Father: {fileID: 970248308} + 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: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1293268104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1293268102} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 313464590} + toggleTransition: 1 + graphic: {fileID: 2039927564} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &1306373064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1306373065} + - component: {fileID: 1306373067} + - component: {fileID: 1306373066} + m_Layer: 0 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1306373065 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306373064} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 274686398} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0.2} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1306373066 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306373064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1306373067 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1306373064} + m_CullTransparentMesh: 0 +--- !u!1 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: Basic Text + TermType: 0 + Description: + Languages: + - This is a localized Unity UI Text + - Este es un Texto del Unity UI + - Il s'agit d'un texte localise Unity UI + Flags: 000000 + Languages_Touch: [] + - Term: Sprite + TermType: 5 + Description: + Languages: + - References/Sprites/L_EN[L_EN] + - References/Sprites/L_ES[L_ES] + - References/Sprites/L_FR[L_FR] + Flags: 000000 + Languages_Touch: [] + - Term: RawImage + TermType: 2 + Description: + Languages: + - References/Textures/L_EN + - References/Textures/L_ES + - References/Textures/L_FR + Flags: 000000 + Languages_Touch: [] + - Term: Option A + TermType: 0 + Description: + Languages: + - Option A + - "Opci\xF3n A" + - Un Choix + Flags: 020202 + Languages_Touch: [] + - Term: Option B + TermType: 0 + Description: + Languages: + - Option B + - "Opci\xF3n B" + - L'option B + Flags: 020202 + Languages_Touch: [] + - Term: Option C + TermType: 0 + Description: + Languages: + - Option C + - "Opci\xF3n C" + - Option C + Flags: 020202 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1383460140 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1383460141} + - component: {fileID: 1383460144} + - component: {fileID: 1383460143} + - component: {fileID: 1383460142} + m_Layer: 5 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1383460141 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383460140} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.54545456, y: 0.45982143} + m_AnchorMax: {x: 0.7077922, y: 0.6830357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1383460142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383460140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: RawImage + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 536453383} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_RawImage +--- !u!114 &1383460143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383460140} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1383460144 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1383460140} + m_CullTransparentMesh: 0 +--- !u!1 &1405865220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1405865223} + - component: {fileID: 1405865222} + - component: {fileID: 1405865221} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1405865221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1405865222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_CullTransparentMesh: 0 +--- !u!224 &1405865223 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.0349026, y: 0.042410713} + m_AnchorMax: {x: 0.97483766, y: 0.25223213} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1420320821 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1420320822} + - component: {fileID: 1420320824} + - component: {fileID: 1420320823} + m_Layer: 5 + m_Name: textSprite (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1420320822 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420320821} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 77474267} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5963311, y: 0.88008934} + m_AnchorMax: {x: 0.8771754, y: 0.9425893} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1420320823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420320821} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Localized Dropdown +--- !u!222 &1420320824 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420320821} + m_CullTransparentMesh: 0 +--- !u!1 &1448576822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1448576823} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1448576823 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448576822} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 12757373} + m_Father: {fileID: 1567796371} + 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: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &1452851460 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1452851461} + - component: {fileID: 1452851463} + - component: {fileID: 1452851462} + m_Layer: 5 + m_Name: textSprite (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1452851461 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1452851460} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 77474267} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.1136363, y: 0.88008934} + m_AnchorMax: {x: 0.3084416, y: 0.9425893} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1452851462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1452851460} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: 'Languages:' +--- !u!222 &1452851463 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1452851460} + m_CullTransparentMesh: 0 +--- !u!1 &1468075147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1468075148} + - component: {fileID: 1468075151} + - component: {fileID: 1468075150} + - component: {fileID: 1468075149} + m_Layer: 0 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1468075148 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468075147} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 274686398} + m_Father: {fileID: 476591210} + 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: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!114 &1468075149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468075147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1306373066} + m_HandleRect: {fileID: 1306373065} + m_Direction: 2 + m_Value: 0 + m_Size: 0.2 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1468075150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468075147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1468075151 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1468075147} + m_CullTransparentMesh: 0 +--- !u!1 &1505079327 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1505079328} + - component: {fileID: 1505079330} + - component: {fileID: 1505079329} + m_Layer: 0 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1505079328 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505079327} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1293268103} + 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!114 &1505079329 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505079327} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Option A +--- !u!222 &1505079330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505079327} + m_CullTransparentMesh: 0 +--- !u!1 &1567796370 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1567796371} + - component: {fileID: 1567796374} + - component: {fileID: 1567796373} + - component: {fileID: 1567796372} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1567796371 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1567796370} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1448576823} + m_Father: {fileID: 1915528343} + 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: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1567796372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1567796370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 10917, 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 +--- !u!222 &1567796373 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1567796370} + m_CullTransparentMesh: 0 +--- !u!114 &1567796374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1567796370} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &1668354634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1668354635} + - component: {fileID: 1668354637} + - component: {fileID: 1668354636} + m_Layer: 0 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1668354635 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668354634} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1072564159} + 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: -7.5, y: 0.8336487} + m_SizeDelta: {x: -35, y: -10.333} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1668354636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668354634} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!222 &1668354637 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668354634} + m_CullTransparentMesh: 0 +--- !u!1 &1714070055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1714070056} + - component: {fileID: 1714070060} + - component: {fileID: 1714070059} + - component: {fileID: 1714070058} + - component: {fileID: 1714070057} + - component: {fileID: 1714070061} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1714070056 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.43668833, y: 0.07366072} + m_AnchorMax: {x: 0.55357146, y: 0.22098215} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1714070057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1714070058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1714070059} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1714070061} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1714070059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1714070060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_CullTransparentMesh: 0 +--- !u!114 &1714070061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 1364070359} +--- !u!1 &1731226342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731226343} + - component: {fileID: 1731226345} + - component: {fileID: 1731226344} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731226343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731226342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1172968458} + 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: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731226344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731226342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 10915, 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 +--- !u!222 &1731226345 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731226342} + m_CullTransparentMesh: 0 +--- !u!114 &1748292408 +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: bedef2aeaac8da04faa9a07b7241d0ad, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1778691771} +--- !u!1 &1778691768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1778691769} + - component: {fileID: 1778691772} + - component: {fileID: 1778691771} + - component: {fileID: 1778691770} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1778691769 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778691768} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.3181818, y: 0.45982143} + m_AnchorMax: {x: 0.48051947, y: 0.6830357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1778691770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778691768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Sprite + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1748292408} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Image +--- !u!114 &1778691771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778691768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0ff5ba6aa9b08494bb14a8728ee51d9c, 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!222 &1778691772 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1778691768} + m_CullTransparentMesh: 0 +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1912490372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1912490376} + - component: {fileID: 1912490375} + - component: {fileID: 1912490374} + - component: {fileID: 1912490373} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1912490373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1912490374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &1912490375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1912490376 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_LocalRotation: {x: 0, y: 0, z: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1915528342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1915528343} + - component: {fileID: 1915528346} + - component: {fileID: 1915528345} + - component: {fileID: 1915528344} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1915528343 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1915528342} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1567796371} + - {fileID: 977608279} + m_Father: {fileID: 1172968458} + 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: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1915528344 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1915528342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 1448576823} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 1567796371} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 977608280} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1915528345 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1915528342} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1915528346 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1915528342} + m_CullTransparentMesh: 0 +--- !u!1 &1962922073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962922074} + - component: {fileID: 1962922078} + - component: {fileID: 1962922077} + - component: {fileID: 1962922076} + - component: {fileID: 1962922075} + - component: {fileID: 1962922079} + m_Layer: 0 + m_Name: French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962922074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.66883117, y: 0.07589286} + m_AnchorMax: {x: 0.7857143, y: 0.22321428} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962922075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1962922076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1962922077} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1962922079} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: French + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1962922077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: fdd6d36bfa4c41c4f988be3be486b5f8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1962922078 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_CullTransparentMesh: 0 +--- !u!114 &1962922079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 1364070359} +--- !u!1 &1989499584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1989499585} + - component: {fileID: 1989499588} + - component: {fileID: 1989499587} + - component: {fileID: 1989499586} + m_Layer: 0 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1989499585 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989499584} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 970248308} + m_Father: {fileID: 476591210} + 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: -18, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &1989499586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989499584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 10917, 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 +--- !u!222 &1989499587 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989499584} + m_CullTransparentMesh: 0 +--- !u!114 &1989499588 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1989499584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!1 &2039927562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2039927563} + - component: {fileID: 2039927565} + - component: {fileID: 2039927564} + m_Layer: 0 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2039927563 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039927562} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1293268103} + 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: 10, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2039927564 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039927562} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &2039927565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039927562} + m_CullTransparentMesh: 0 +--- !u!1 &2092503782 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2092503783} + - component: {fileID: 2092503785} + - component: {fileID: 2092503784} + m_Layer: 0 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2092503783 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092503782} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1072564159} + 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: -15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2092503784 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092503782} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 10915, 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 +--- !u!222 &2092503785 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2092503782} + m_CullTransparentMesh: 0 +--- !u!114 &2139795395 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1115346778} diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity.meta new file mode 100644 index 00000000..411b07fe --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization UnityUI.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 1440060592636ac4facf33d40c9df67c +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity new file mode 100644 index 00000000..3d35be13 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity @@ -0,0 +1,1631 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + 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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 1 + m_BakeResolution: 1 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &5 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666666 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &167348268 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 167348269} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167348269 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 167348268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &258109821 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 740420939} +--- !u!1 &326863485 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 326863486} + - 222: {fileID: 326863490} + - 114: {fileID: 326863489} + - 114: {fileID: 326863488} + - 114: {fileID: 326863487} + - 114: {fileID: 326863491} + m_Layer: 0 + m_Name: Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326863486 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 2 + m_AnchorMin: {x: 0.20266216, y: 0.13830356} + m_AnchorMax: {x: 0.30891833, y: 0.27205357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &326863487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &326863488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 326863489} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 326863491} + m_MethodName: ApplyLanguage + 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: 1 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &326863489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &326863490 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} +--- !u!114 &326863491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 1364070359} +--- !u!1 &695539928 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 695539930} + - 114: {fileID: 695539929} + m_Layer: 5 + m_Name: GlobalParameters + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &695539929 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 695539928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bcf154e686692e8468e3813f885633e8, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &695539930 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 695539928} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 613.5, y: 256} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &722395052 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 722395055} + - 223: {fileID: 722395054} + - 114: {fileID: 722395053} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &722395053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 722395052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &722395054 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 722395052} + m_Enabled: 1 + serializedVersion: 2 + 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_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &722395055 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1045395102} + - {fileID: 1277673355} + m_Father: {fileID: 0} + m_RootOrder: 4 + 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!1 &740420936 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 740420937} + - 222: {fileID: 740420940} + - 114: {fileID: 740420939} + - 114: {fileID: 740420938} + m_Layer: 5 + m_Name: Text with Globall Parameters + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &740420937 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740420936} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 3 + m_AnchorMin: {x: 0.005109489, y: 0.39125} + m_AnchorMax: {x: 1.0007299, y: 0.45875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &740420938 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740420936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: LocalParams Text + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 1364070359} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + AlwaysForceLocalize: 1 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: OnModifyLocalization + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 258109821} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &740420939 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740420936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: '{[WINNER]} is the first of {[NUM PLAYERS]} players.' +--- !u!222 &740420940 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 740420936} +--- !u!114 &764471934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1115346778} +--- !u!1 &1045395101 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1045395102} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1045395102 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1045395101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1405865223} + - {fileID: 1714070056} + - {fileID: 326863486} + - {fileID: 1962922074} + m_Father: {fileID: 722395055} + m_RootOrder: 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 &1115346775 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1115346776} + - 222: {fileID: 1115346779} + - 114: {fileID: 1115346778} + - 114: {fileID: 1115346777} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1115346776 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 0 + m_AnchorMin: {x: 0.005109489, y: 0.9} + m_AnchorMax: {x: 1.0007299, y: 0.94} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1115346777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Basic Text + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 1364070359} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + AlwaysForceLocalize: 1 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 764471934} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1115346778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: This is a localized Unity UI Text +--- !u!222 &1115346779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1115346775} +--- !u!1 &1277673354 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1277673355} + m_Layer: 5 + m_Name: Localized Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1277673355 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1277673354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1115346776} + - {fileID: 2121495947} + - {fileID: 2062717369} + - {fileID: 740420937} + m_Father: {fileID: 722395055} + m_RootOrder: 1 + 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 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1364070358} + - 114: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateDelay: 5 + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + mTerms: + - Term: Basic Text + TermType: 0 + Description: + Languages: + - This is a localized Unity UI Text + - Se trata de un texto Unidad de interfaz de usuario localizada + - "Ceci est une unit\xE9 localis\xE9e UI texte" + Flags: 000101 + Languages_Touch: [] + - Term: Callback Text + TermType: 0 + Description: + Languages: + - The winner is the {PLAYER_COLOR} player + - El ganador es el jugador {PLAYER_COLOR} + - Le gagnant est le joueur {PLAYER_COLOR} + Flags: 000000 + Languages_Touch: [] + - Term: Color/Red + TermType: 0 + Description: + Languages: + - Red + - Rojo + - Rouge + Flags: 010101 + Languages_Touch: [] + - Term: LocalParams Text + TermType: 0 + Description: + Languages: + - '{[WINNER]} is the first of {[NUM PLAYERS]} players.' + - '{[WINNER]} es el primero de los {[NUM PLAYERS]} jugadores.' + - "{[WINNER]} est la premi\xE8re de {[NUM PLAYERS]} joueurs." + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: +--- !u!1 &1405865220 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1405865223} + - 222: {fileID: 1405865222} + - 114: {fileID: 1405865221} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1405865221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 8d412f782b72d2d49a240c947362048f, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1405865222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1405865220} +--- !u!224 &1405865223 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 0 + m_AnchorMin: {x: 0.009857897, y: 0.1075} + m_AnchorMax: {x: 0.9991135, y: 0.29785714} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1714070055 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1714070056} + - 222: {fileID: 1714070060} + - 114: {fileID: 1714070059} + - 114: {fileID: 1714070058} + - 114: {fileID: 1714070057} + - 114: {fileID: 1714070061} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1714070056 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 1 + m_AnchorMin: {x: 0.4425985, y: 0.13580357} + m_AnchorMax: {x: 0.54885465, y: 0.26955357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1714070057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1714070058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1714070059} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1714070061} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1714070059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1714070060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} +--- !u!114 &1714070061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 1364070359} +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1797551111} + - 20: {fileID: 1797551110} + - 124: {fileID: 1797551108} + - 81: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + 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: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 +--- !u!1 &1912490372 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1912490376} + - 114: {fileID: 1912490375} + - 114: {fileID: 1912490374} + - 114: {fileID: 1912490373} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1912490373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1912490374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &1912490375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1912490376 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 +--- !u!1 &1962922073 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 1962922074} + - 222: {fileID: 1962922078} + - 114: {fileID: 1962922077} + - 114: {fileID: 1962922076} + - 114: {fileID: 1962922075} + - 114: {fileID: 1962922079} + m_Layer: 0 + m_Name: French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962922074 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1045395102} + m_RootOrder: 3 + m_AnchorMin: {x: 0.6857677, y: 0.13830356} + m_AnchorMax: {x: 0.79202384, y: 0.27205357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962922075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1962922076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1962922077} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1962922079} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: French + m_BoolArgument: 0 + m_CallState: 1 + m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, + Culture=neutral, PublicKeyToken=null +--- !u!114 &1962922077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 2800000, guid: fdd6d36bfa4c41c4f988be3be486b5f8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1962922078 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} +--- !u!114 &1962922079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 1364070359} +--- !u!1 &2062717368 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2062717369} + - 222: {fileID: 2062717373} + - 114: {fileID: 2062717372} + - 114: {fileID: 2062717371} + - 114: {fileID: 2062717370} + m_Layer: 5 + m_Name: Text with Local Parameters + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2062717369 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062717368} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 2 + m_AnchorMin: {x: 0.005109489, y: 0.56125} + m_AnchorMax: {x: 1.0007299, y: 0.62875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2062717370 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062717368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: WINNER + Value: Frank + - Name: NUM PLAYERS + Value: 3 + _AutoRegister: 0 +--- !u!114 &2062717371 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062717368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: LocalParams Text + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 1364070359} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + AlwaysForceLocalize: 1 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: OnModifyLocalization + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 1 + mLocalizeTarget: {fileID: 2121009178} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &2062717372 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062717368} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: '{[WINNER]} is the first of {[NUM PLAYERS]} players.' +--- !u!222 &2062717373 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2062717368} +--- !u!114 &2121009178 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 2062717372} +--- !u!1 &2121495946 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 224: {fileID: 2121495947} + - 222: {fileID: 2121495951} + - 114: {fileID: 2121495950} + - 114: {fileID: 2121495949} + - 114: {fileID: 2121495948} + m_Layer: 5 + m_Name: Text with Callback + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2121495947 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2121495946} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 1 + m_AnchorMin: {x: 0.005109489, y: 0.73125} + m_AnchorMax: {x: 1.0007299, y: 0.79875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2121495948 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2121495946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc44345ca9310574fa50c645e6a7254f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &2121495949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2121495946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Callback Text + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 1364070359} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2121495948} + m_MethodName: OnModifyLocalization + m_Mode: 0 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 + m_TypeName: UnityEngine.Events.UnityEvent, UnityEngine, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + AlwaysForceLocalize: 1 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 2140075592} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &2121495950 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2121495946} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 1 + m_LineSpacing: 1 + m_Text: The winner is the {PLAYER_COLOR} player +--- !u!222 &2121495951 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2121495946} +--- !u!114 &2140075592 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 2121495950} diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity.meta new file mode 100644 index 00000000..08a6c1aa --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Callbacks and Parameters.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6a59dc271eb27c4b888619b11923a66 +timeCreated: 1468127705 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity new file mode 100644 index 00000000..4ac934e7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity @@ -0,0 +1,1376 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &212256506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 212256507} + - component: {fileID: 212256509} + - component: {fileID: 212256508} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &212256507 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212256506} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1102590965} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.1652763} + m_AnchorMax: {x: 1, y: 0.8787974} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &212256508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212256506} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Spanish +--- !u!222 &212256509 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 212256506} + m_CullTransparentMesh: 0 +--- !u!1 &486188279 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 486188280} + - component: {fileID: 486188284} + - component: {fileID: 486188283} + - component: {fileID: 486188282} + - component: {fileID: 486188281} + m_Layer: 5 + m_Name: Button English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &486188280 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 486188279} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1297731049} + m_Father: {fileID: 1751589546} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.07642616, y: 0.20877483} + m_AnchorMax: {x: 0.35873947, y: 0.31} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &486188281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 486188279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1cbcdd875c93e1e4fb87f997228fbd7a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &486188282 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 486188279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 486188283} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 486188281} + m_MethodName: SetLanguage + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 653692970} + m_MethodName: Start + 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 &486188283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 486188279} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &486188284 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 486188279} + m_CullTransparentMesh: 0 +--- !u!1 &605339273 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 605339275} + - component: {fileID: 605339274} + m_Layer: 0 + m_Name: Global Parameters + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &605339274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605339273} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: VALUE + Value: Frank Puig + - Name: VALUE2 + Value: 123 + _IsGlobalManager: 1 +--- !u!4 &605339275 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 605339273} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 344, y: 220.5, 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 &642855044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 642855045} + - component: {fileID: 642855047} + - component: {fileID: 642855046} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &642855045 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642855044} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1751589546} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.0771561, y: 0.4414884} + m_AnchorMax: {x: 0.94747895, y: 0.84725} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &642855046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642855044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 31 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'This is an example of how to use the LocalizeString class to access Translations. + + + Clicking the buttons will show the translations of the selected term in the console + + + Check the console to see the results of the script after pressing the language + buttons' +--- !u!222 &642855047 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 642855044} + m_CullTransparentMesh: 0 +--- !u!1 &653692969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 653692971} + - component: {fileID: 653692970} + m_Layer: 5 + m_Name: LocalizedString <-- Check this script + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &653692970 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653692969} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60b32d3b3e0ad124aa1fed397539a9ad, type: 3} + m_Name: + m_EditorClassIdentifier: + _MyLocalizedString: + mTerm: Term1 + mRTL_IgnoreArabicFix: 0 + mRTL_MaxLineLength: 0 + mRTL_ConvertNumbers: 0 + m_DontLocalizeParameters: 0 + _NormalString: Term1 + _StringWithTermPopup: Term1 +--- !u!224 &653692971 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 653692969} + m_LocalRotation: {x: -0, y: -0, z: -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.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 520, y: 226.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &674536240 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 674536243} + - component: {fileID: 674536242} + - component: {fileID: 674536241} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &674536241 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674536240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &674536242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674536240} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &674536243 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 674536240} + m_LocalRotation: {x: 0, y: 0, z: 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: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1102590964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1102590965} + - component: {fileID: 1102590969} + - component: {fileID: 1102590968} + - component: {fileID: 1102590967} + - component: {fileID: 1102590966} + m_Layer: 5 + m_Name: Button Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1102590965 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102590964} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 212256507} + m_Father: {fileID: 1751589546} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.37086275, y: 0.20627482} + m_AnchorMax: {x: 0.6516788, y: 0.3075} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1102590966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102590964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1cbcdd875c93e1e4fb87f997228fbd7a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1102590967 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102590964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1102590968} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1102590966} + m_MethodName: SetLanguage + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Spanish + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 653692970} + m_MethodName: Start + 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 &1102590968 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102590964} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1102590969 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1102590964} + m_CullTransparentMesh: 0 +--- !u!1 &1191223536 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1191223537} + - component: {fileID: 1191223539} + - component: {fileID: 1191223538} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1191223537 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191223536} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1872411005} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.1652763} + m_AnchorMax: {x: 1, y: 0.8787974} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1191223538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191223536} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Arabic +--- !u!222 &1191223539 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191223536} + m_CullTransparentMesh: 0 +--- !u!1 &1297731048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1297731049} + - component: {fileID: 1297731051} + - component: {fileID: 1297731050} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1297731049 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1297731048} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 486188280} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.1652763} + m_AnchorMax: {x: 1, y: 0.8787974} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1297731050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1297731048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: English +--- !u!222 &1297731051 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1297731048} + m_CullTransparentMesh: 0 +--- !u!1 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LanguageSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: Term1 + TermType: 0 + Description: + Languages: + - Translation in English + - "La traducci\xF3n en espa\xF1ol" + - "\u062A\u0631\u062C\u0645\u0629 \u0628\u0627\u0644\u0644\u063A\u0629 \u0627\u0644\u0625\u0646\u062C\u0644\u064A\u0632\u064A\u0629" + Flags: 000000 + Languages_Touch: [] + - Term: Term2 + TermType: 0 + Description: + Languages: + - Another translation + - "Otra traducci\xF3n" + - "\u062A\u0631\u062C\u0645\u0629 \u0623\u062E\u0631\u0649" + Flags: 000000 + Languages_Touch: [] + - Term: Term3 + TermType: 0 + Description: + Languages: + - This is an example with numbers like 1, 2, 3 and tags [color=#ffffff] like + this one [/color] and parameters like {[VALUE]} and {[VALUE2]}. + - "Este es un ejemplo con n\xFAmeros como 1, 2, 3 y etiquetas [color=#ffffff] + como \xE9sta [/color] y par\xE1metros como {[VALUE]} y {[VALUE2]}." + - "\u0647\u0630\u0627 \u0647\u0648 \u0645\u062B\u0627\u0644 \u0645\u0639 \u0623\u0631\u0642\u0627\u0645 + \u0645\u062B\u0644 1\u060C 2\u060C 3 \u0648\u0627\u0644\u0639\u0644\u0627\u0645\u0627\u062A + [color=#ffffff] \u0645\u062B\u0644 \u0647\u0630\u0627 \u0648\u0627\u062D\u062F + [/color] \u0648\u0627\u0644\u0645\u0639\u0644\u0645\u0627\u062A \u0645\u062B\u0644 + {[VALUE]} \u0648 {[VALUE2]}." + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: Arabic + Code: ar + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1751589542 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1751589546} + - component: {fileID: 1751589545} + - component: {fileID: 1751589544} + - component: {fileID: 1751589543} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1751589543 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751589542} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1751589544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751589542} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1751589545 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751589542} + 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!224 &1751589546 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1751589542} + 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: 642855045} + - {fileID: 486188280} + - {fileID: 1102590965} + - {fileID: 1872411005} + m_Father: {fileID: 0} + 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, y: 0} +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + m_Layer: 0 + m_Name: Main Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1872411004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1872411005} + - component: {fileID: 1872411009} + - component: {fileID: 1872411008} + - component: {fileID: 1872411007} + - component: {fileID: 1872411006} + m_Layer: 5 + m_Name: Button Arabic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1872411005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872411004} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1191223537} + m_Father: {fileID: 1751589546} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.68195397, y: 0.2062086} + m_AnchorMax: {x: 0.96426725, y: 0.3075} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1872411006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872411004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1cbcdd875c93e1e4fb87f997228fbd7a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1872411007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872411004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1872411008} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1872411006} + m_MethodName: SetLanguage + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Arabic + m_BoolArgument: 0 + m_CallState: 2 + - m_Target: {fileID: 653692970} + m_MethodName: Start + 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 &1872411008 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872411004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1872411009 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1872411004} + m_CullTransparentMesh: 0 diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity.meta new file mode 100644 index 00000000..4196e2dd --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features LocalizedString.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 4d999b05c44207e49ad70ed30077eb9a +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity new file mode 100644 index 00000000..e1d8f68e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity @@ -0,0 +1,1638 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &255260278 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 255260279} + - component: {fileID: 255260282} + - component: {fileID: 255260281} + - component: {fileID: 255260280} + - component: {fileID: 255260283} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &255260279 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 255260278} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.16584158, y: 0.29285845} + m_AnchorMax: {x: 0.8341584, y: 0.4183313} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &255260280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 255260278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Plural Example1 + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 460679103} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &255260281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 255260278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: You have {[VALUE]} points +--- !u!222 &255260282 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 255260278} + m_CullTransparentMesh: 0 +--- !u!114 &255260283 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 255260278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: VALUE + Value: 4 + _IsGlobalManager: 0 +--- !u!114 &271473799 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 2139607924} +--- !u!1 &348688339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 348688340} + - component: {fileID: 348688342} + - component: {fileID: 348688341} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &348688340 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348688339} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 353506514} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.06374711, y: 0.21663244} + m_AnchorMax: {x: 0.928158, y: 0.8449692} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &348688341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348688339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Russian +--- !u!222 &348688342 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 348688339} + m_CullTransparentMesh: 0 +--- !u!1 &353506513 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 353506514} + - component: {fileID: 353506518} + - component: {fileID: 353506517} + - component: {fileID: 353506516} + - component: {fileID: 353506515} + m_Layer: 0 + m_Name: Button Russian + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &353506514 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353506513} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 348688340} + m_Father: {fileID: 1045395102} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.6828147, y: 0.3082175} + m_AnchorMax: {x: 0.8560615, y: 0.74363965} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &353506515 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353506513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Russian + mSource: {fileID: 1364070359} +--- !u!114 &353506516 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353506513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 353506517} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 353506515} + m_MethodName: ApplyLanguage + 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 &353506517 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353506513} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &353506518 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 353506513} + m_CullTransparentMesh: 0 +--- !u!114 &460679103 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 255260281} +--- !u!1 &722395052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 722395055} + - component: {fileID: 722395054} + - component: {fileID: 722395053} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &722395053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &722395054 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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!224 &722395055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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: 1045395102} + - {fileID: 1277673355} + m_Father: {fileID: 0} + 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, y: 0} +--- !u!1 &1045395101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1045395102} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1045395102 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045395101} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1405865223} + - {fileID: 1571160601} + - {fileID: 353506514} + m_Father: {fileID: 722395055} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.1519174, y: 0.15370862} + m_AnchorMax: {x: 0.85791546, y: 0.36121413} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1115346775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1115346776} + - component: {fileID: 1115346779} + - component: {fileID: 1115346778} + - component: {fileID: 1115346777} + - component: {fileID: 1115346780} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1115346776 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.16584158, y: 0.6284426} + m_AnchorMax: {x: 0.8341584, y: 0.7540639} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1115346777 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Plural Example1 + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1413017613} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1115346778 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: You have {[VALUE]} points +--- !u!222 &1115346779 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_CullTransparentMesh: 0 +--- !u!114 &1115346780 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115346775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: VALUE + Value: 0 + _IsGlobalManager: 0 +--- !u!1 &1277673354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277673355} + m_Layer: 5 + m_Name: Localized Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1277673355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277673354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1115346776} + - {fileID: 2139607922} + - {fileID: 255260279} + - {fileID: 1646706519} + m_Father: {fileID: 722395055} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.37527594} + 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 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LanguageSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: Plural Example1 + TermType: 0 + Description: + Languages: + - You have {[VALUE]} points[i2p_Zero]You have no points[i2p_One]You have 1 point + - "\u0423 \u0432\u0430\u0441 {[VALUE]} \u043E\u0447\u043A\u043E\u0432.[i2p_Zero]\u0423 + \u0432\u0430\u0441 \u043D\u0435\u0442 \u043E\u0447\u043A\u043E\u0432.[i2p_One]\u0423 + \u0432\u0430\u0441 \u0435\u0441\u0442\u044C {[VALUE]} \u043E\u0447\u043A\u043E.[i2p_Few]\u0423 + \u0432\u0430\u0441 {[VALUE]} \u0431\u0430\u043B\u043B\u0430." + Flags: 0000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Russian + Code: ru + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1405865220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1405865223} + - component: {fileID: 1405865222} + - component: {fileID: 1405865221} + m_Layer: 0 + m_Name: Windows + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1405865221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.29044116, g: 0.5808823, b: 0.34051722, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Texture: {fileID: 2800000, guid: 8d412f782b72d2d49a240c947362048f, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1405865222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_CullTransparentMesh: 0 +--- !u!224 &1405865223 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + 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 &1413017613 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1115346778} +--- !u!114 &1563843695 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1646706522} +--- !u!1 &1571160600 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1571160601} + - component: {fileID: 1571160605} + - component: {fileID: 1571160604} + - component: {fileID: 1571160603} + - component: {fileID: 1571160602} + m_Layer: 0 + m_Name: Button English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1571160601 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571160600} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1656053494} + m_Father: {fileID: 1045395102} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.10912367, y: 0.30821753} + m_AnchorMax: {x: 0.28237045, y: 0.7436397} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1571160602 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571160600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 1364070359} +--- !u!114 &1571160603 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571160600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_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: 1571160604} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1571160602} + m_MethodName: ApplyLanguage + 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 &1571160604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571160600} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1571160605 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1571160600} + m_CullTransparentMesh: 0 +--- !u!1 &1646706518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1646706519} + - component: {fileID: 1646706523} + - component: {fileID: 1646706522} + - component: {fileID: 1646706521} + - component: {fileID: 1646706520} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1646706519 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646706518} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.16584158, y: 0.12952098} + m_AnchorMax: {x: 0.8341584, y: 0.25499383} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1646706520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646706518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: VALUE + Value: 10 + _IsGlobalManager: 0 +--- !u!114 &1646706521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646706518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Plural Example1 + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1563843695} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1646706522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646706518} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: You have {[VALUE]} points +--- !u!222 &1646706523 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1646706518} + m_CullTransparentMesh: 0 +--- !u!1 &1656053493 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1656053494} + - component: {fileID: 1656053496} + - component: {fileID: 1656053495} + m_Layer: 0 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1656053494 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1656053493} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1571160601} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.06374711, y: 0.21663244} + m_AnchorMax: {x: 0.92006314, y: 0.8449692} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.00000047683716, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1656053495 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1656053493} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 14 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: English +--- !u!222 &1656053496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1656053493} + m_CullTransparentMesh: 0 +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1912490372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1912490376} + - component: {fileID: 1912490375} + - component: {fileID: 1912490374} + - component: {fileID: 1912490373} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1912490373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1912490374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &1912490375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1912490376 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_LocalRotation: {x: 0, y: 0, z: 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2139607921 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2139607922} + - component: {fileID: 2139607925} + - component: {fileID: 2139607924} + - component: {fileID: 2139607923} + - component: {fileID: 2139607926} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2139607922 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139607921} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.16584158, y: 0.4561959} + m_AnchorMax: {x: 0.8341584, y: 0.58166873} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2139607923 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139607921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Plural Example1 + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 271473799} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &2139607924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139607921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 1 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: You have {[VALUE]} points +--- !u!222 &2139607925 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139607921} + m_CullTransparentMesh: 0 +--- !u!114 &2139607926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2139607921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c9586cfd190ca384a8dd72aa92c86152, type: 3} + m_Name: + m_EditorClassIdentifier: + _Params: + - Name: VALUE + Value: 1 + _IsGlobalManager: 0 diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity.meta new file mode 100644 index 00000000..87b43bc0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Plurals.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5fdd7b713bef81f418e2ff121bc4745d +timeCreated: 1508906910 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity new file mode 100644 index 00000000..240a9544 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity @@ -0,0 +1,248 @@ +%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.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 50 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &1273751619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1273751621} + - component: {fileID: 1273751620} + m_Layer: 0 + m_Name: Translation << Click Play >> + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1273751620 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273751619} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c09397e14dc19fb4ab38f8216b0759a4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &1273751621 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273751619} + m_LocalRotation: {x: 0, y: 0, z: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1962683259 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962683264} + - component: {fileID: 1962683263} + - component: {fileID: 1962683261} + - component: {fileID: 1962683260} + 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 &1962683260 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962683259} + m_Enabled: 1 +--- !u!124 &1962683261 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962683259} + m_Enabled: 1 +--- !u!20 &1962683263 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962683259} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1962683264 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962683259} + 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} diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity.meta new file mode 100644 index 00000000..171628d7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features Realtime Translation.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: c79e8762cdeadd24ab3a1e27a98874c3 +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity new file mode 100644 index 00000000..1ed22893 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity @@ -0,0 +1,1847 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!114 &31636047 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1506865250} +--- !u!1 &75209577 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 75209580} + - component: {fileID: 75209579} + - component: {fileID: 75209578} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &75209578 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75209577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &75209579 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75209577} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &75209580 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75209577} + m_LocalRotation: {x: 0, y: 0, z: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &311464223 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 311464224} + - component: {fileID: 311464226} + - component: {fileID: 311464225} + m_Layer: 5 + m_Name: WrongLineWrap Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &311464224 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 311464223} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 805394856} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.677305, y: 0.24107143} + m_AnchorMax: {x: 0.9787234, y: 0.4955357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &311464225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 311464223} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ".\uFEBA\uFEE8\uFEDF\u0627 \uFEDE\uFECC\uFE9F \uFE84\uFEC4\uFEA8\uFEDF\u0627\u0648 + \u0628\u0627\uFEEE\uFEBC\uFEDF\u0627 \uFEA2\uFEBF\uFEEE\uFEF3 \u0644\uFE8E\uFE9C\uFEE3 + \uFEBA\uFEE7 \uFEEE\uFEEB \u0627\uFEAC\uFEEB" +--- !u!222 &311464226 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 311464223} + m_CullTransparentMesh: 0 +--- !u!1 &528937037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 528937038} + m_Layer: 5 + m_Name: Titles + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &528937038 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 528937037} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1601102845} + - {fileID: 1801269861} + - {fileID: 680269090} + - {fileID: 1296757691} + m_Father: {fileID: 805394856} + m_RootOrder: 5 + 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 &574518342 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 574518344} + - component: {fileID: 574518343} + 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 &574518343 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574518342} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &574518344 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574518342} + m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261} + m_LocalPosition: {x: -2.589727, y: -5.6618614, z: 6.31061} + 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 &680269089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 680269090} + - component: {fileID: 680269092} + - component: {fileID: 680269091} + m_Layer: 5 + m_Name: RightLineWrap Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &680269090 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680269089} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 528937038} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.677305, y: 0.8738839} + m_AnchorMax: {x: 0.9787234, y: 0.9296875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &680269091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680269089} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.5147059, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Correct Line Wrap:' +--- !u!222 &680269092 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 680269089} + m_CullTransparentMesh: 0 +--- !u!1 &700952811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 700952812} + - component: {fileID: 700952815} + - component: {fileID: 700952814} + - component: {fileID: 700952813} + m_Layer: 5 + m_Name: RightLineWrap Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &700952812 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700952811} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 805394856} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.677305, y: 0.6183036} + m_AnchorMax: {x: 0.9787234, y: 0.87276787} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &700952813 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700952811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Text Example + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 20 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 893795303} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &700952814 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700952811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u0644\uFE8E\uFE9C\uFEE3 \uFEBA\uFEE7 \uFEEE\uFEEB \u0627\uFEAC\uFEEB\r\n\uFE84\uFEC4\uFEA8\uFEDF\u0627\u0648 + \u0628\u0627\uFEEE\uFEBC\uFEDF\u0627 \uFEA2\uFEBF\uFEEE\uFEF3\r\n.\uFEBA\uFEE8\uFEDF\u0627 + \uFEDE\uFECC\uFE9F" +--- !u!222 &700952815 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 700952811} + m_CullTransparentMesh: 0 +--- !u!114 &732550129 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1506865250} +--- !u!1 &805394852 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 805394856} + - component: {fileID: 805394855} + - component: {fileID: 805394854} + - component: {fileID: 805394853} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &805394853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805394852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &805394854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805394852} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &805394855 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805394852} + 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!224 &805394856 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 805394852} + 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: 1654165532} + - {fileID: 1176328331} + - {fileID: 1506865247} + - {fileID: 700952812} + - {fileID: 311464224} + - {fileID: 528937038} + m_Father: {fileID: 0} + 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: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &881740141 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 881740142} + - component: {fileID: 881740147} + - component: {fileID: 881740146} + - component: {fileID: 881740145} + - component: {fileID: 881740144} + - component: {fileID: 881740143} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &881740142 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1654165532} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.62817025, y: 0.050781254} + m_AnchorMax: {x: 0.7389869, y: 0.1733259} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.00000047683716, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &881740143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 1364070359} +--- !u!114 &881740144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &881740145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 881740146} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 881740143} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &881740146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &881740147 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 881740141} + m_CullTransparentMesh: 0 +--- !u!114 &893795303 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 700952814} +--- !u!1 &1176328330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1176328331} + - component: {fileID: 1176328334} + - component: {fileID: 1176328333} + - component: {fileID: 1176328332} + m_Layer: 5 + m_Name: Right Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1176328331 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176328330} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 805394856} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.040780142, y: 0.6183036} + m_AnchorMax: {x: 0.46631205, y: 0.87276787} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1176328332 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176328330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Text Example + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1871480941} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1176328333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176328330} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 2 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: ".\uFEBA\uFEE8\uFEDF\u0627 \uFEDE\uFECC\uFE9F \uFE84\uFEC4\uFEA8\uFEDF\u0627\u0648 + \u0628\u0627\uFEEE\uFEBC\uFEDF\u0627 \uFEA2\uFEBF\uFEEE\uFEF3 \u0644\uFE8E\uFE9C\uFEE3 + \uFEBA\uFEE7 \uFEEE\uFEEB \u0627\uFEAC\uFEEB" +--- !u!222 &1176328334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1176328330} + m_CullTransparentMesh: 0 +--- !u!1 &1296757690 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1296757691} + - component: {fileID: 1296757693} + - component: {fileID: 1296757692} + m_Layer: 5 + m_Name: WrongLineWrap Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1296757691 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1296757690} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 528937038} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.677305, y: 0.4966518} + m_AnchorMax: {x: 0.9787234, y: 0.55245537} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1296757692 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1296757690} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.5147059, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Wrong Line Wrap:' +--- !u!222 &1296757693 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1296757690} + m_CullTransparentMesh: 0 +--- !u!1 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: Text Example + TermType: 0 + Description: + Languages: + - "This is an example text showing \nright and wrong text rendering." + - "\u0647\u0630\u0627 \u0647\u0648 \u0646\u0635 \u0645\u062B\u0627\u0644 \u064A\u0648\u0636\u062D + \u0627\u0644\u0635\u0648\u0627\u0628 \u0648\u0627\u0644\u062E\u0637\u0623 + \u062C\u0639\u0644 \u0627\u0644\u0646\u0635." + - + - + - + - + - + - + Flags: 0000000000000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Arabic + Code: ar + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: + - {fileID: 12800000, guid: 769d4a2288b99004184236f5fc4469c8, type: 3} + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1483615947 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1483615948} + - component: {fileID: 1483615950} + - component: {fileID: 1483615949} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1483615948 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483615947} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1654165532} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.0349026, y: 0.042410713} + m_AnchorMax: {x: 0.97483766, y: 0.18080357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1483615949 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483615947} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1483615950 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1483615947} + m_CullTransparentMesh: 0 +--- !u!1 &1506865246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1506865247} + - component: {fileID: 1506865251} + - component: {fileID: 1506865250} + - component: {fileID: 1506865249} + - component: {fileID: 1506865248} + m_Layer: 5 + m_Name: Wrong Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1506865247 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506865246} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 805394856} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.040780142, y: 0.24107143} + m_AnchorMax: {x: 0.46631205, y: 0.4955357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1506865248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506865246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Text Example + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 1 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 31636047} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1506865249 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506865246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Text Example + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 1 + MaxCharactersInRTL: 20 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 732550129} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityUI_Text +--- !u!114 &1506865250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506865246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 20 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u0647\u0630\u0627 \u0647\u0648 \u0646\u0635 \u0645\u062B\u0627\u0644 + \u064A\u0648\u0636\u062D \u0627\u0644\u0635\u0648\u0627\u0628 \u0648\u0627\u0644\u062E\u0637\u0623 + \u062C\u0639\u0644 \u0627\u0644\u0646\u0635." +--- !u!222 &1506865251 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1506865246} + m_CullTransparentMesh: 0 +--- !u!1 &1576287307 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1576287308} + - component: {fileID: 1576287313} + - component: {fileID: 1576287312} + - component: {fileID: 1576287311} + - component: {fileID: 1576287310} + - component: {fileID: 1576287309} + m_Layer: 0 + m_Name: Arabic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1576287308 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1654165532} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.2946918, y: 0.050781254} + m_AnchorMax: {x: 0.40361574, y: 0.1733259} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1576287309 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Arabic + mSource: {fileID: 1364070359} +--- !u!114 &1576287310 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1576287311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1576287312} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1576287309} + m_MethodName: ApplyLanguage + 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: 1 +--- !u!114 &1576287312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1576287313 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576287307} + m_CullTransparentMesh: 0 +--- !u!1 &1601102844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1601102845} + - component: {fileID: 1601102847} + - component: {fileID: 1601102846} + m_Layer: 5 + m_Name: Right Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1601102845 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1601102844} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 528937038} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.040780142, y: 0.8738839} + m_AnchorMax: {x: 0.46631205, y: 0.9296875} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1601102846 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1601102844} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.5147059, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Right Rendering:' +--- !u!222 &1601102847 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1601102844} + m_CullTransparentMesh: 0 +--- !u!1 &1654165531 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1654165532} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1654165532 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1654165531} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1483615948} + - {fileID: 881740142} + - {fileID: 1576287308} + m_Father: {fileID: 805394856} + 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 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1801269860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1801269861} + - component: {fileID: 1801269863} + - component: {fileID: 1801269862} + m_Layer: 5 + m_Name: Wrong Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1801269861 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801269860} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 528937038} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.040780142, y: 0.4966518} + m_AnchorMax: {x: 0.46631205, y: 0.55245537} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1801269862 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801269860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.5147059, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 16 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 1 + m_MaxSize: 40 + m_Alignment: 0 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Wrong Rendering +--- !u!222 &1801269863 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1801269860} + m_CullTransparentMesh: 0 +--- !u!114 &1871480941 +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: 332e36893e7cf4a49b3c1f72f76cd5e1, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 1176328333} diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity.meta new file mode 100644 index 00000000..33893097 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization features RightToLeft Text Rendering.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 6c2ef0a4fea17b24daea6d945f40158b +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity new file mode 100644 index 00000000..607a051a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity @@ -0,0 +1,2447 @@ +%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.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!1 &13 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25} + - component: {fileID: 39} + - component: {fileID: 84} + - component: {fileID: 74} + - component: {fileID: 80} + m_Layer: 8 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &14 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 26} + - component: {fileID: 49} + - component: {fileID: 40} + - component: {fileID: 67} + - component: {fileID: 66} + - component: {fileID: 59} + - component: {fileID: 87} + m_Layer: 8 + m_Name: Button_French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &15 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 27} + - component: {fileID: 50} + - component: {fileID: 41} + - component: {fileID: 68} + - component: {fileID: 69} + - component: {fileID: 60} + - component: {fileID: 85} + m_Layer: 8 + m_Name: Button_English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &16 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 28} + - component: {fileID: 42} + - component: {fileID: 65} + - component: {fileID: 51} + - component: {fileID: 79} + m_Layer: 8 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &17 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 29} + - component: {fileID: 43} + - component: {fileID: 71} + - component: {fileID: 52} + - component: {fileID: 81} + m_Layer: 8 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &18 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 30} + - component: {fileID: 53} + - component: {fileID: 44} + - component: {fileID: 73} + - component: {fileID: 72} + - component: {fileID: 61} + - component: {fileID: 83} + - component: {fileID: 86} + m_Layer: 8 + m_Name: Button_Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &19 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 31} + - component: {fileID: 45} + - component: {fileID: 54} + - component: {fileID: 70} + - component: {fileID: 76} + m_Layer: 0 + m_Name: TextMesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &20 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 32} + - component: {fileID: 46} + - component: {fileID: 55} + - component: {fileID: 75} + - component: {fileID: 82} + - component: {fileID: 48} + m_Layer: 0 + m_Name: Sprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &21 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 33} + - component: {fileID: 63} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &22 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 34} + - component: {fileID: 56} + - component: {fileID: 57} + - component: {fileID: 47} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &23 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 35} + - component: {fileID: 37} + - component: {fileID: 78} + m_Layer: 0 + m_Name: GuiCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &24 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 36} + - component: {fileID: 38} + - component: {fileID: 64} + - component: {fileID: 58} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &25 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.06787187, z: -0.020000458} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 26} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &26 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.8027859, y: -0.8436719, z: 10} + m_LocalScale: {x: 0.8552129, y: 0.8552129, z: 0.8552129} + m_Children: + - {fileID: 25} + m_Father: {fileID: 35} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &27 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.89666367, y: -0.8398513, z: 10} + m_LocalScale: {x: 0.8552129, y: 0.8552129, z: 0.8552129} + m_Children: + - {fileID: 28} + m_Father: {fileID: 35} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &28 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.06787187, z: -0.020000458} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 27} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &29 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -0.06787187, z: -0.020000458} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 30} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &30 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.040815353, y: -0.8396124, z: 10} + m_LocalScale: {x: 0.8552129, y: 0.8552129, z: 0.8552129} + m_Children: + - {fileID: 29} + m_Father: {fileID: 35} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &31 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19} + m_LocalRotation: {x: 0, y: -0.575719, z: 0, w: 0.81764764} + m_LocalPosition: {x: -0.56, y: 0.57, z: -1.41} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 34} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &32 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: -0.7071068} + m_LocalPosition: {x: 0.5338029, y: 0.14883651, z: 0.000000044478032} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 34} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &33 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.08863126, y: -0.0074581355, z: -0.0015500784} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &34 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22} + m_LocalRotation: {x: -0.27909058, y: 0.4551833, z: 0.057969317, w: 0.8435379} + m_LocalPosition: {x: -0.08863126, y: -1.24, z: -0.0015500784} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 32} + - {fileID: 31} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &35 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 16.630077, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 30} + - {fileID: 27} + - {fileID: 26} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &36 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -4.7100325} + 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!20 &37 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 3 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: -0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 10 + field of view: 60 + orthographic: 1 + orthographic size: 1 + m_Depth: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 256 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!20 &38 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 1 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967039 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!23 &39 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4f7adb5944587434eb05c98ae8cf0936, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &40 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c588c2d12d3f5514195827aeb65feb8a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &41 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c588c2d12d3f5514195827aeb65feb8a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &42 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4f7adb5944587434eb05c98ae8cf0936, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &43 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4f7adb5944587434eb05c98ae8cf0936, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &44 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c588c2d12d3f5514195827aeb65feb8a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &45 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4f7adb5944587434eb05c98ae8cf0936, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &46 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 32286741c6a400a44a969d7d318b1ca5, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!23 &47 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &48 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.203125, y: 0.20625, z: 0.2} + m_Center: {x: 0.0015624985, y: 0, z: 0} +--- !u!33 &49 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Mesh: {fileID: 0} +--- !u!33 &50 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Mesh: {fileID: 0} +--- !u!114 &51 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 994457055a9434b4aa7b65ad37262d67, type: 3} + m_Name: + m_EditorClassIdentifier: + _font: {fileID: 0} + _text: + _color: {r: 1, g: 1, b: 1, a: 1} + _color2: {r: 1, g: 1, b: 1, a: 1} + _useGradient: 0 + _textureGradient: 0 + _anchor: 6 + _scale: {x: 1, y: 1, z: 1} + _kerning: 0 + _maxChars: 16 + _inlineStyling: 0 + _formatting: 0 + _wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 + data: + version: 1 + font: {fileID: 11400000, guid: e7a6b09a73c6b2b4f8060096ddbd3b5e, type: 2} + text: English + color: {r: 1, g: 1, b: 1, a: 1} + color2: {r: 1, g: 1, b: 1, a: 1} + useGradient: 0 + textureGradient: 0 + anchor: 7 + renderLayer: 0 + scale: {x: 1, y: 1, z: 1} + kerning: 0 + maxChars: 16 + inlineStyling: 0 + formatting: 0 + wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 +--- !u!114 &52 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 994457055a9434b4aa7b65ad37262d67, type: 3} + m_Name: + m_EditorClassIdentifier: + _font: {fileID: 0} + _text: + _color: {r: 1, g: 1, b: 1, a: 1} + _color2: {r: 1, g: 1, b: 1, a: 1} + _useGradient: 0 + _textureGradient: 0 + _anchor: 6 + _scale: {x: 1, y: 1, z: 1} + _kerning: 0 + _maxChars: 16 + _inlineStyling: 0 + _formatting: 0 + _wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 + data: + version: 1 + font: {fileID: 11400000, guid: e7a6b09a73c6b2b4f8060096ddbd3b5e, type: 2} + text: Spanish + color: {r: 1, g: 1, b: 1, a: 1} + color2: {r: 1, g: 1, b: 1, a: 1} + useGradient: 0 + textureGradient: 0 + anchor: 7 + renderLayer: 0 + scale: {x: 1, y: 1, z: 1} + kerning: 0 + maxChars: 16 + inlineStyling: 0 + formatting: 0 + wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 +--- !u!33 &53 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Mesh: {fileID: 0} +--- !u!33 &54 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19} + m_Mesh: {fileID: 0} +--- !u!33 &55 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_Mesh: {fileID: 0} +--- !u!33 &56 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!65 &57 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 22} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!81 &58 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24} + m_Enabled: 1 +--- !u!82 &59 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + 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: 1 + 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 +--- !u!82 &60 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + 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: 1 + 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 +--- !u!82 &61 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + 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: 1 + 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 +--- !u!108 &63 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 21} + m_Enabled: 1 + serializedVersion: 8 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!124 &64 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 24} + m_Enabled: 1 +--- !u!33 &65 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16} + m_Mesh: {fileID: 0} +--- !u!114 &66 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7eeb7d27f0df004e90cb9fda2d821bd, type: 3} + m_Name: + m_EditorClassIdentifier: + viewCamera: {fileID: 0} + buttonDownSprite: button_down + buttonUpSprite: button_up + buttonPressedSprite: button_up + buttonDownSound: {fileID: 0} + buttonUpSound: {fileID: 0} + buttonPressedSound: {fileID: 0} + targetObject: {fileID: 14} + messageName: ApplyLanguage + targetScale: 1.1 + scaleTime: 0.05 + pressedWaitTime: 0.3 +--- !u!114 &67 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fac570381f34f647b768dc5a5aa1364, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: {fileID: 11400000, guid: a7b2ba5d04adf144faffa96ff7497955, type: 2} + _color: {r: 1, g: 1, b: 1, a: 1} + _scale: {x: 4.61, y: 1, z: 1} + _spriteId: 0 + boxCollider2D: {fileID: 0} + polygonCollider2D: [] + edgeCollider2D: [] + boxCollider: {fileID: 0} + meshCollider: {fileID: 0} + meshColliderPositions: [] + meshColliderMesh: {fileID: 0} + renderLayer: 0 +--- !u!114 &68 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fac570381f34f647b768dc5a5aa1364, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: {fileID: 11400000, guid: a7b2ba5d04adf144faffa96ff7497955, type: 2} + _color: {r: 1, g: 1, b: 1, a: 1} + _scale: {x: 4.61, y: 1, z: 1} + _spriteId: 0 + boxCollider2D: {fileID: 0} + polygonCollider2D: [] + edgeCollider2D: [] + boxCollider: {fileID: 0} + meshCollider: {fileID: 0} + meshColliderPositions: [] + meshColliderMesh: {fileID: 0} + renderLayer: 0 +--- !u!114 &69 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7eeb7d27f0df004e90cb9fda2d821bd, type: 3} + m_Name: + m_EditorClassIdentifier: + viewCamera: {fileID: 0} + buttonDownSprite: button_down + buttonUpSprite: button_up + buttonPressedSprite: button_up + buttonDownSound: {fileID: 0} + buttonUpSound: {fileID: 0} + buttonPressedSound: {fileID: 0} + targetObject: {fileID: 15} + messageName: ApplyLanguage + targetScale: 1.1 + scaleTime: 0.05 + pressedWaitTime: 0.3 +--- !u!114 &70 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 994457055a9434b4aa7b65ad37262d67, type: 3} + m_Name: + m_EditorClassIdentifier: + _font: {fileID: 0} + _text: + _color: {r: 1, g: 1, b: 1, a: 1} + _color2: {r: 1, g: 1, b: 1, a: 1} + _useGradient: 0 + _textureGradient: 0 + _anchor: 6 + _scale: {x: 1, y: 1, z: 1} + _kerning: 0 + _maxChars: 16 + _inlineStyling: 0 + _formatting: 0 + _wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 + data: + version: 1 + font: {fileID: 11400000, guid: e7a6b09a73c6b2b4f8060096ddbd3b5e, type: 2} + text: 2D-ToolKit Localisation Exemple + color: {r: 1, g: 1, b: 1, a: 1} + color2: {r: 1, g: 1, b: 1, a: 1} + useGradient: 0 + textureGradient: 0 + anchor: 6 + renderLayer: 0 + scale: {x: 1, y: 1, z: 1} + kerning: 0 + maxChars: 160 + inlineStyling: 0 + formatting: 0 + wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 +--- !u!33 &71 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17} + m_Mesh: {fileID: 0} +--- !u!114 &72 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7eeb7d27f0df004e90cb9fda2d821bd, type: 3} + m_Name: + m_EditorClassIdentifier: + viewCamera: {fileID: 0} + buttonDownSprite: button_down + buttonUpSprite: button_up + buttonPressedSprite: button_up + buttonDownSound: {fileID: 0} + buttonUpSound: {fileID: 0} + buttonPressedSound: {fileID: 0} + targetObject: {fileID: 18} + messageName: ApplyLanguage + targetScale: 1.1 + scaleTime: 0.05 + pressedWaitTime: 0.3 +--- !u!114 &73 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fac570381f34f647b768dc5a5aa1364, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: {fileID: 11400000, guid: a7b2ba5d04adf144faffa96ff7497955, type: 2} + _color: {r: 1, g: 1, b: 1, a: 1} + _scale: {x: 4.61, y: 1, z: 1} + _spriteId: 0 + boxCollider2D: {fileID: 0} + polygonCollider2D: [] + edgeCollider2D: [] + boxCollider: {fileID: 83} + meshCollider: {fileID: 0} + meshColliderPositions: [] + meshColliderMesh: {fileID: 0} + renderLayer: 0 +--- !u!114 &74 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 994457055a9434b4aa7b65ad37262d67, type: 3} + m_Name: + m_EditorClassIdentifier: + _font: {fileID: 0} + _text: + _color: {r: 1, g: 1, b: 1, a: 1} + _color2: {r: 1, g: 1, b: 1, a: 1} + _useGradient: 0 + _textureGradient: 0 + _anchor: 6 + _scale: {x: 1, y: 1, z: 1} + _kerning: 0 + _maxChars: 16 + _inlineStyling: 0 + _formatting: 0 + _wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 + data: + version: 1 + font: {fileID: 11400000, guid: e7a6b09a73c6b2b4f8060096ddbd3b5e, type: 2} + text: French + color: {r: 1, g: 1, b: 1, a: 1} + color2: {r: 1, g: 1, b: 1, a: 1} + useGradient: 0 + textureGradient: 0 + anchor: 7 + renderLayer: 0 + scale: {x: 1, y: 1, z: 1} + kerning: 0 + maxChars: 16 + inlineStyling: 0 + formatting: 0 + wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 +--- !u!114 &75 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3fac570381f34f647b768dc5a5aa1364, type: 3} + m_Name: + m_EditorClassIdentifier: + collection: {fileID: 11400000, guid: b5aec6ebd1a8ffc458a2e46a3236acab, type: 2} + _color: {r: 1, g: 1, b: 1, a: 1} + _scale: {x: 1, y: 1, z: 1} + _spriteId: 20 + boxCollider2D: {fileID: 0} + polygonCollider2D: [] + edgeCollider2D: [] + boxCollider: {fileID: 48} + meshCollider: {fileID: 0} + meshColliderPositions: [] + meshColliderMesh: {fileID: 0} + renderLayer: 0 +--- !u!114 &76 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Language Window s Title + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 702637707} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!196 &77 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!114 &78 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1cbcdd875c93e1e4fb87f997228fbd7a, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &79 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 16} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: English + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1282930313} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!114 &80 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: French + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1657844648} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!114 &81 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 17} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Spanish + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1813393269} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!114 &82 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 20} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: ExampleSprite + mTermSecondary: ExampleCollection + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 453048066} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!65 &83 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.6, y: 1.6, z: 2} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &84 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 13} + m_Mesh: {fileID: 0} +--- !u!114 &85 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 0} +--- !u!114 &86 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 18} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 0} +--- !u!114 &87 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 14} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 0} +--- !u!1 &44565824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 44565826} + - component: {fileID: 44565825} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &44565825 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44565824} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: English + TermType: 0 + Description: + Languages: + - English + - Ingles + - Anglais + Flags: 000000 + Languages_Touch: [] + - Term: ExampleCollection + TermType: 10 + Description: + Languages: + - DemoSpriteCollection + - DemoSpriteCollection + - UIDemoSpriteCollection + Flags: 000000 + Languages_Touch: [] + - Term: ExampleSprite + TermType: 0 + Description: + Languages: + - Chest Closed + - crate + - Checkbox + Flags: 000000 + Languages_Touch: [] + - Term: Flag + TermType: 0 + Description: + Languages: + - crosshairs-highlight + - grid + - list + Flags: 000000 + Languages_Touch: [] + - Term: French + TermType: 0 + Description: + Languages: + - French + - Frances + - Fransais + Flags: 000000 + Languages_Touch: [] + - Term: Language Buttons Description + TermType: 0 + Description: + Languages: + - Click on any of the buttons bellow to change the language + - Haga clic en los botones de abajo para cambiar el idioma + - Cliquez sur un des boutons ci-dessous pour changer la langue + Flags: 000000 + Languages_Touch: [] + - Term: Language Window s Title + TermType: 0 + Description: + Languages: + - 2D-ToolKit Localization Example + - Ejemplo de Localization 2D ToolKit + - 2D-ToolKit Localisation Exemple + Flags: 000000 + Languages_Touch: [] + - Term: OpenSansSemibold18 + TermType: 0 + Description: + Languages: + - OpenSansSemibold18 + - OpenSansSemibold14 + - OpenSansSemibold18 + Flags: 000000 + Languages_Touch: [] + - Term: Spanish + TermType: 0 + Description: + Languages: + - Spanish + - Espannol + - Espagnol + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-AU + Flags: 0 + - Name: Spanish + Code: es-AR + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: [] + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 1 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!4 &44565826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 44565824} + m_LocalRotation: {x: 0, y: 0, z: 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: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &453048066 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!114 &702637707 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!114 &1282930313 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!1 &1398319543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1398319544} + m_Layer: 0 + m_Name: text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1398319544 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1398319543} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.0030691037, y: 0.015356608, z: -0.96700823} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1515510067} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1515510066 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1515510067} + - component: {fileID: 1515510070} + - component: {fileID: 1515510069} + - component: {fileID: 1515510068} + - component: {fileID: 1515510071} + m_Layer: 0 + m_Name: TextMesh Desc + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1515510067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515510066} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.709316, y: 0.10504996, z: 0.060000002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1398319544} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1515510068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515510066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 994457055a9434b4aa7b65ad37262d67, type: 3} + m_Name: + m_EditorClassIdentifier: + _font: {fileID: 0} + _text: + _color: {r: 1, g: 1, b: 1, a: 1} + _color2: {r: 1, g: 1, b: 1, a: 1} + _useGradient: 0 + _textureGradient: 0 + _anchor: 6 + _scale: {x: 1, y: 1, z: 1} + _kerning: 0 + _maxChars: 16 + _inlineStyling: 0 + _formatting: 0 + _wordWrapWidth: 0 + spacing: 0 + lineSpacing: 0 + data: + version: 1 + font: {fileID: 11400000, guid: e7a6b09a73c6b2b4f8060096ddbd3b5e, type: 2} + text: Click on any of the buttons bellow to change the language + color: {r: 1, g: 1, b: 1, a: 1} + color2: {r: 1, g: 1, b: 1, a: 1} + useGradient: 0 + textureGradient: 0 + anchor: 6 + renderLayer: 0 + scale: {x: 6, y: 2, z: 0} + kerning: 0 + maxChars: 160 + inlineStyling: 0 + formatting: 1 + wordWrapWidth: 2000 + spacing: 0 + lineSpacing: 0 +--- !u!33 &1515510069 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515510066} + m_Mesh: {fileID: 0} +--- !u!23 &1515510070 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515510066} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4f7adb5944587434eb05c98ae8cf0936, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!114 &1515510071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1515510066} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Language Buttons Description + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1947894978} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!114 &1657844648 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!114 &1813393269 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!114 &1947894978 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity.meta new file mode 100644 index 00000000..4eade142 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization 2DToolKit.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 0cd6ab4cb00926c4bb2580688e442b07 +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity new file mode 100644 index 00000000..51da0314 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity @@ -0,0 +1,2392 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +SceneSettings: + m_ObjectHideFlags: 0 + m_PVSData: + m_PVSObjectsArray: [] + m_PVSPortalsArray: [] + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + 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.2, g: 0.2, b: 0.2, a: 1} + m_AmbientEquatorColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientGroundColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 1 + m_BakeResolution: 1 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &142 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + accuratePlacement: 0 + minRegionArea: 2 + cellSize: 0.16666666 + manualCellSize: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &47460365 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 47460366} + - 114: {fileID: 47460367} + m_Layer: 8 + m_Name: TiledSprite (Wooden Background) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &47460366 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 47460365} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 6 +--- !u!114 &47460367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 47460365} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 1, g: 0.90940404, b: 0.76865673, a: 1} + mPivot: 4 + mWidth: 498 + mHeight: 498 + mDepth: 0 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 1 + mType: 2 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Wooden Background + mFillCenter: 1 +--- !u!1 &58861211 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 58861212} + - 114: {fileID: 58861214} + - 114: {fileID: 58861213} + m_Layer: 8 + m_Name: Label - Description + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &58861212 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 58861211} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -214, y: 82, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 135712070} + m_RootOrder: 0 +--- !u!114 &58861213 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 58861211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Paragraph + mTermSecondary: Arial + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 0} + mTarget: {fileID: 58861214} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: + - {fileID: 11400000, guid: 0f5e030a8cdc292438f880d3ec49ef64, type: 2} + - {fileID: 11400000, guid: 93e68f7902ba67545ba1e60502873fb5, type: 2} + - {fileID: 11400000, guid: 800fce3d977b52d4cadf1a0790a413f0, type: 2} + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + AlwaysForceLocalize: 0 + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 +--- !u!114 &58861214 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 58861211} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9d0b5f3bbe925a408bd595c79d0bf63, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.23880595, g: 0.16229041, b: 0.09801737, a: 1} + mPivot: 0 + mWidth: 432 + mHeight: 80 + mDepth: 18 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 5.4 + keepCrispWhenShrunk: 1 + mTrueTypeFont: {fileID: 0} + mFont: {fileID: 11400000, guid: 800fce3d977b52d4cadf1a0790a413f0, type: 2} + mText: "Este ejemplo muestra como localizar NGUI.\r\n[000000]UILabels, UISprites + y UITextures[-] pueden traducirse con solo a\xF1adirles un componente [0000FF]Localize[-] + y la crear un [0000FF]LanguageSource[-] en la escena / Proyecto." + mFontSize: 20 + mFontStyle: 0 + mAlignment: 1 + mEncoding: 1 + mMaxLineCount: 0 + mEffectStyle: 1 + mEffectColor: {r: 0.91791046, g: 0.71133053, b: 0.5000557, a: 1} + mSymbols: 1 + mEffectDistance: {x: 1, y: 1} + mOverflow: 3 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.5, g: 0.5, b: 0.5, a: 1} + mSpacingX: 0 + mSpacingY: 0 + mUseFloatSpacing: 0 + mFloatSpacingX: 0 + mFloatSpacingY: 0 + mOverflowEllipsis: 0 + mOverflowWidth: 0 + mModifier: 0 + mShrinkToFit: 0 + mMaxLineWidth: 0 + mMaxLineHeight: 0 + mLineWidth: 0 + mMultiline: 1 +--- !u!1 &67446545 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 67446546} + - 114: {fileID: 67446547} + m_Layer: 8 + m_Name: SlicedSprite (Border) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &67446546 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 67446545} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 0 +--- !u!114 &67446547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 67446545} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0, g: 0, b: 0, a: 1} + mPivot: 4 + mWidth: 542 + mHeight: 542 + mDepth: 2 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 1 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 0 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Glow - Outer + mFillCenter: 1 +--- !u!1 &135712069 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 135712070} + - 114: {fileID: 135712072} + - 54: {fileID: 135712071} + m_Layer: 8 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &135712070 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 135712069} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -121.03, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 58861212} + - {fileID: 835738579} + - {fileID: 801415914} + - {fileID: 997192510} + - {fileID: 829023034} + - {fileID: 1639879716} + - {fileID: 727932026} + m_Father: {fileID: 703824484} + m_RootOrder: 2 +--- !u!54 &135712071 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 135712069} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &135712072 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 135712069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ae942c9068183dc40a9d01f648273726, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + showInPanelTool: 1 + generateNormals: 0 + generateUV2: 0 + shadowMode: 0 + widgetsAreStatic: 0 + cullWhileDragging: 0 + alwaysOnScreen: 0 + anchorOffset: 0 + softBorderPadding: 1 + renderQueue: 0 + startingRenderQueue: 3001 + mClipTexture: {fileID: 0} + mAlpha: 1 + mClipping: 0 + mClipRange: {x: 0, y: 0, z: 100, w: 100} + mClipSoftness: {x: 40, y: 40} + mDepth: 2 + mSortingOrder: 0 + mSortingLayerName: + mClipOffset: {x: 0, y: 0} +--- !u!1 &144047939 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 144047940} + - 114: {fileID: 144047941} + m_Layer: 8 + m_Name: SlicedSprite + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &144047940 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 144047939} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 801415914} + m_RootOrder: 2 +--- !u!114 &144047941 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 144047939} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.738806, g: 0.54429054, b: 0.3418356, a: 1} + mPivot: 3 + mWidth: 150 + mHeight: 34 + mDepth: 24 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 4.4117646 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Button + mFillCenter: 1 +--- !u!1 &191174248 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 191174249} + - 114: {fileID: 191174250} + m_Layer: 8 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &191174249 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 191174248} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 703824484} + m_RootOrder: 1 +--- !u!114 &191174250 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 191174248} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5c5ca47aa5c01740810b7c66662099f, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 703824484} + relative: -0.1 + absolute: 0 + rightAnchor: + target: {fileID: 703824484} + relative: 1.1 + absolute: 0 + bottomAnchor: + target: {fileID: 703824484} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 703824484} + relative: 1 + absolute: 2 + updateAnchors: 1 + mColor: {r: 1, g: 1, b: 1, a: 1} + mPivot: 4 + mWidth: 1202 + mHeight: 381 + mDepth: -8 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 3.1548557 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + mTexture: {fileID: 2800000, guid: 20f7cab44eaf6e849a8b7131f390055a, type: 3} + mShader: {fileID: 4800000, guid: e75727d9555d9d14ca51d91908c681bc, type: 3} + mBorder: {x: 0, y: 0, z: 0, w: 0} + mFixedAspect: 0 +--- !u!1 &273434654 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 273434655} + - 114: {fileID: 273434656} + m_Layer: 8 + m_Name: Sprite (Screw) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &273434655 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 273434654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 230, y: 230, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 2 +--- !u!114 &273434656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 273434654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.7761194, g: 0.7482533, b: 0.72978395, a: 1} + mPivot: 4 + mWidth: 30 + mHeight: 32 + mDepth: 8 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 0.9375 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Screw + mFillCenter: 1 +--- !u!1 &419819764 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 419819768} + - 20: {fileID: 419819767} + - 81: {fileID: 419819766} + - 114: {fileID: 419819765} + m_Layer: 8 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &419819765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 419819764} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a92b5d748695fd44aac9feef17ba415, type: 3} + m_Name: + m_EditorClassIdentifier: + eventType: 1 + eventsGoToColliders: 0 + eventReceiverMask: + serializedVersion: 2 + m_Bits: 4294967295 + processEventsIn: 0 + debug: 0 + useMouse: 1 + useTouch: 1 + allowMultiTouch: 1 + useKeyboard: 1 + useController: 1 + stickyTooltip: 1 + tooltipDelay: 1 + longPressTooltip: 0 + mouseDragThreshold: 4 + mouseClickThreshold: 10 + touchDragThreshold: 40 + touchClickThreshold: 40 + rangeDistance: -1 + horizontalAxisName: Horizontal + verticalAxisName: Vertical + horizontalPanAxisName: + verticalPanAxisName: + scrollAxisName: Mouse ScrollWheel + commandClick: 1 + submitKey0: 13 + submitKey1: 330 + cancelKey0: 27 + cancelKey1: 331 + autoHideCursor: 1 +--- !u!81 &419819766 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 419819764} + m_Enabled: 1 +--- !u!20 &419819767 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 419819764} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: -2 + far clip plane: 2 + field of view: 60 + orthographic: 1 + orthographic size: 1 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 256 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &419819768 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 419819764} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 703824484} + m_RootOrder: 0 +--- !u!1 &546858249 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 546858250} + - 114: {fileID: 546858253} + - 65: {fileID: 546858252} + - 114: {fileID: 546858251} + m_Layer: 8 + m_Name: Sprite (NGUI) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &546858250 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 546858249} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 727932026} + m_RootOrder: 1 +--- !u!114 &546858251 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 546858249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b90fc8427bee38c478f5b2f6f0ae9580, type: 3} + m_Name: + m_EditorClassIdentifier: + target: {fileID: 0} + panelRegion: {fileID: 0} + scrollMomentum: {x: 0, y: 0, z: 0} + restrictWithinPanel: 0 + contentRect: {fileID: 0} + dragEffect: 0 + momentumAmount: 35 + scale: {x: 1, y: 1, z: 0} + scrollWheelFactor: 0 +--- !u!65 &546858252 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 546858249} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 255.00003, y: 76, z: 0} + m_Center: {x: 0, y: 0, z: -5.25} +--- !u!114 &546858253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 546858249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 1, g: 1, b: 1, a: 1} + mPivot: 4 + mWidth: 256 + mHeight: 76 + mDepth: 20 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 3.368421 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: NGUI + mFillCenter: 1 +--- !u!1 &592293685 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 592293686} + - 114: {fileID: 592293687} + m_Layer: 8 + m_Name: Sprite (Screw) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &592293686 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 592293685} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -232, y: 230, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 4 +--- !u!114 &592293687 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 592293685} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.7761194, g: 0.7482533, b: 0.72978395, a: 1} + mPivot: 4 + mWidth: 30 + mHeight: 32 + mDepth: 8 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 0.9375 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Screw + mFillCenter: 1 +--- !u!1 &703824483 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 703824484} + - 114: {fileID: 703824487} + - 114: {fileID: 703824486} + - 54: {fileID: 703824485} + m_Layer: 8 + m_Name: UI Root (2D) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &703824484 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703824483} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.005277045, y: 0.005277045, z: 0.005277045} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 419819768} + - {fileID: 191174249} + - {fileID: 135712070} + m_Father: {fileID: 0} + m_RootOrder: 1 +--- !u!54 &703824485 +Rigidbody: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703824483} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &703824486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703824483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ae942c9068183dc40a9d01f648273726, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + showInPanelTool: 1 + generateNormals: 0 + generateUV2: 0 + shadowMode: 0 + widgetsAreStatic: 0 + cullWhileDragging: 0 + alwaysOnScreen: 0 + anchorOffset: 0 + softBorderPadding: 1 + renderQueue: 0 + startingRenderQueue: 3000 + mClipTexture: {fileID: 0} + mAlpha: 1 + mClipping: 0 + mClipRange: {x: 0, y: 0, z: 0, w: 0} + mClipSoftness: {x: 40, y: 40} + mDepth: 0 + mSortingOrder: 0 + mSortingLayerName: + mClipOffset: {x: 0, y: 0} +--- !u!114 &703824487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 703824483} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c5ecb5660b11414fb042fb826e03b73, type: 3} + m_Name: + m_EditorClassIdentifier: + scalingStyle: 1 + manualWidth: 490 + manualHeight: 379 + minimumHeight: 320 + maximumHeight: 1536 + fitWidth: 1 + fitHeight: 1 + adjustByDPI: 0 + shrinkPortraitUI: 0 +--- !u!1 &727932025 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 727932026} + m_Layer: 8 + m_Name: Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &727932026 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 727932025} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 268, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1782326303} + - {fileID: 546858250} + m_Father: {fileID: 135712070} + m_RootOrder: 6 +--- !u!1 &801415913 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 801415914} + - 65: {fileID: 801415919} + - 114: {fileID: 801415918} + - 114: {fileID: 801415917} + - 114: {fileID: 801415916} + - 114: {fileID: 801415915} + m_Layer: 8 + m_Name: Popup List + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &801415914 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -28, y: 176, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1037161335} + - {fileID: 1488745743} + - {fileID: 144047940} + m_Father: {fileID: 135712070} + m_RootOrder: 2 +--- !u!114 &801415915 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 36d92fc19cfafc84d8014a1589d64233, type: 3} + m_Name: + m_EditorClassIdentifier: + Source: {fileID: 1849336303} +--- !u!114 &801415916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d44bc69c2ca5f943b845318866dc1bd, type: 3} + m_Name: + m_EditorClassIdentifier: + audioClip: {fileID: 8300000, guid: b5083cfe83bb875479bd797c61594131, type: 3} + trigger: 0 + volume: 1 + pitch: 1 +--- !u!114 &801415917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 15cc9c62605319f4a9b20b15918913fa, type: 3} + m_Name: + m_EditorClassIdentifier: + tweenTarget: {fileID: 144047939} + hover: {r: 0.6, g: 1, b: 0.2, a: 1} + pressed: {r: 0.47014928, g: 0.28811607, b: 0.12630877, a: 1} + disabledColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + duration: 0.2 +--- !u!114 &801415918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57e428c9b6087304da439ec665b56a2d, type: 3} + m_Name: + m_EditorClassIdentifier: + atlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + bitmapFont: {fileID: 11400000, guid: 29056518aafb01b49a5b08faf8e30cff, type: 2} + trueTypeFont: {fileID: 0} + fontSize: 20 + fontStyle: 0 + backgroundSprite: Button + highlightSprite: Button + background2DSprite: {fileID: 0} + highlight2DSprite: {fileID: 0} + position: 0 + alignment: 1 + items: + - Language + padding: {x: 5, y: 5} + textColor: {r: 1, g: 1, b: 1, a: 1} + backgroundColor: {r: 0.33446294, g: 0.48507464, b: 0.1882379, a: 1} + highlightColor: {r: 0.59607846, g: 1, b: 0.2, a: 1} + isAnimated: 1 + isLocalized: 0 + separatePanel: 1 + overlap: 0 + openOn: 0 + onChange: + - mTarget: {fileID: 1037161336} + mMethodName: SetCurrentSelection + mParameters: [] + oneShot: 0 + mSelectedItem: + mPanel: {fileID: 0} + mBackground: {fileID: 0} + mHighlight: {fileID: 0} + mHighlightedLabel: {fileID: 0} + mLabelList: [] + mBgBorder: 0 + keepValue: 0 + eventReceiver: {fileID: 0} + functionName: + textScale: 0 + font: {fileID: 0} + textLabel: {fileID: 0} + source: {fileID: 0} +--- !u!65 &801415919 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 801415913} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 150, y: 34, z: 0} + m_Center: {x: 75, y: 0, z: -6.5} +--- !u!1 &829023033 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 829023034} + - 114: {fileID: 829023035} + m_Layer: 8 + m_Name: SlicedSprite (Row Outline) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &829023034 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829023033} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 104, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 135712070} + m_RootOrder: 4 +--- !u!114 &829023035 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 829023033} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.22745098, g: 0.13333334, b: 0.050980393, a: 0.6784314} + mPivot: 4 + mWidth: 426 + mHeight: 30 + mDepth: 16 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 14.2 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Row Outline + mFillCenter: 1 +--- !u!1 &835738578 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 835738579} + - 114: {fileID: 835738581} + - 114: {fileID: 835738580} + - 114: {fileID: 835738582} + m_Layer: 8 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &835738579 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835738578} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4, y: 104, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 135712070} + m_RootOrder: 1 +--- !u!114 &835738580 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835738578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: MyCallBack + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 1849336303} + mTarget: {fileID: 835738581} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeCallBack: + Target: {fileID: 835738582} + MethodName: OnModifyLocalization + AlwaysForceLocalize: 0 + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 +--- !u!114 &835738581 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835738578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9d0b5f3bbe925a408bd595c79d0bf63, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.2835821, g: 0.18351865, b: 0.09946536, a: 1} + mPivot: 4 + mWidth: 356 + mHeight: 20 + mDepth: 28 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 17.8 + keepCrispWhenShrunk: 1 + mTrueTypeFont: {fileID: 0} + mFont: {fileID: 11400000, guid: 29056518aafb01b49a5b08faf8e30cff, type: 2} + mText: El jugador {PLAYER_COLOR} ha ganado! + mFontSize: 20 + mFontStyle: 0 + mAlignment: 0 + mEncoding: 1 + mMaxLineCount: 0 + mEffectStyle: 1 + mEffectColor: {r: 0.8862745, g: 0.654902, b: 0.41568628, a: 1} + mSymbols: 1 + mEffectDistance: {x: 1, y: 1} + mOverflow: 2 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.5, g: 0.5, b: 0.5, a: 1} + mSpacingX: 0 + mSpacingY: 0 + mUseFloatSpacing: 0 + mFloatSpacingX: 0 + mFloatSpacingY: 0 + mOverflowEllipsis: 0 + mOverflowWidth: 0 + mModifier: 0 + mShrinkToFit: 0 + mMaxLineWidth: 0 + mMaxLineHeight: 0 + mLineWidth: 0 + mMultiline: 1 +--- !u!114 &835738582 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 835738578} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fc44345ca9310574fa50c645e6a7254f, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &952985842 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 952985843} + - 114: {fileID: 952985845} + - 65: {fileID: 952985844} + m_Layer: 8 + m_Name: SlicedSprite (Glow - Inner) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &952985843 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 952985842} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 1 +--- !u!65 &952985844 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 952985842} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 0.99999994, z: 0} + m_Center: {x: -0.000000059604645, y: 0, z: -0.25} +--- !u!114 &952985845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 952985842} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0, g: 0, b: 0, a: 0.4117647} + mPivot: 4 + mWidth: 500 + mHeight: 500 + mDepth: 1 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 1 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Glow - Inner + mFillCenter: 1 +--- !u!1 &997192509 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 997192510} + - 114: {fileID: 997192512} + - 114: {fileID: 997192511} + m_Layer: 8 + m_Name: Sprite (Flag-US) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &997192510 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 997192509} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -85, y: 179, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 135712070} + m_RootOrder: 3 +--- !u!114 &997192511 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 997192509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: Flag + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + Source: {fileID: 0} + mTarget: {fileID: 997192512} + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + TranslatedObjects: [] + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + AlwaysForceLocalize: 0 + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 +--- !u!114 &997192512 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 997192509} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 1, g: 1, b: 1, a: 1} + mPivot: 4 + mWidth: 32 + mHeight: 32 + mDepth: 23 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 1 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: X Mark + mFillCenter: 1 +--- !u!1 &1037161334 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1037161335} + - 114: {fileID: 1037161336} + m_Layer: 8 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1037161335 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037161334} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 5, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 801415914} + m_RootOrder: 0 +--- !u!114 &1037161336 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1037161334} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e9d0b5f3bbe925a408bd595c79d0bf63, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.2835821, g: 0.18351865, b: 0.09946536, a: 1} + mPivot: 3 + mWidth: 86 + mHeight: 20 + mDepth: 25 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 4.3 + keepCrispWhenShrunk: 1 + mTrueTypeFont: {fileID: 0} + mFont: {fileID: 11400000, guid: 29056518aafb01b49a5b08faf8e30cff, type: 2} + mText: Language + mFontSize: 20 + mFontStyle: 0 + mAlignment: 0 + mEncoding: 1 + mMaxLineCount: 0 + mEffectStyle: 0 + mEffectColor: {r: 0, g: 0, b: 0, a: 1} + mSymbols: 1 + mEffectDistance: {x: 1, y: 1} + mOverflow: 2 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.5, g: 0.5, b: 0.5, a: 1} + mSpacingX: 0 + mSpacingY: 0 + mUseFloatSpacing: 0 + mFloatSpacingX: 0 + mFloatSpacingY: 0 + mOverflowEllipsis: 0 + mOverflowWidth: 0 + mModifier: 0 + mShrinkToFit: 0 + mMaxLineWidth: 0 + mMaxLineHeight: 0 + mLineWidth: 0 + mMultiline: 1 +--- !u!1 &1417586481 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1417586482} + - 114: {fileID: 1417586483} + m_Layer: 8 + m_Name: Sprite (Screw) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1417586482 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1417586481} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 230, y: -230, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 5 +--- !u!114 &1417586483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1417586481} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.7761194, g: 0.7482533, b: 0.72978395, a: 1} + mPivot: 4 + mWidth: 30 + mHeight: 32 + mDepth: 8 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 0.9375 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Screw + mFillCenter: 1 +--- !u!1 &1488745742 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1488745743} + - 114: {fileID: 1488745744} + m_Layer: 8 + m_Name: SlicedSprite (Highlight - Shadowed) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1488745743 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1488745742} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 801415914} + m_RootOrder: 1 +--- !u!114 &1488745744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1488745742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 1, g: 1, b: 1, a: 0.6431373} + mPivot: 3 + mWidth: 156 + mHeight: 40 + mDepth: 23 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 3.9 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 0 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Highlight - Shadowed + mFillCenter: 1 +--- !u!1 &1535978932 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1535978933} + - 114: {fileID: 1535978934} + m_Layer: 8 + m_Name: Sprite (Screw) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1535978933 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1535978932} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -232, y: -230, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 1639879716} + m_RootOrder: 3 +--- !u!114 &1535978934 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1535978932} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0.7761194, g: 0.7482533, b: 0.72978395, a: 1} + mPivot: 4 + mWidth: 30 + mHeight: 32 + mDepth: 8 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 0.9375 + mType: 0 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 1 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Screw + mFillCenter: 1 +--- !u!1 &1639879715 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1639879716} + m_Layer: 8 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1639879716 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1639879715} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 67446546} + - {fileID: 952985843} + - {fileID: 273434655} + - {fileID: 1535978933} + - {fileID: 592293686} + - {fileID: 1417586482} + - {fileID: 47460366} + m_Father: {fileID: 135712070} + m_RootOrder: 5 +--- !u!1 &1782326302 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1782326303} + - 114: {fileID: 1782326304} + m_Layer: 8 + m_Name: SlicedSprite (Thick Border) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1782326303 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1782326302} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 727932026} + m_RootOrder: 0 +--- !u!114 &1782326304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1782326302} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b3dc54f924693f41b5cbecb267e647a, type: 3} + m_Name: + m_EditorClassIdentifier: + leftAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + rightAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + bottomAnchor: + target: {fileID: 0} + relative: 0 + absolute: 0 + topAnchor: + target: {fileID: 0} + relative: 1 + absolute: 0 + updateAnchors: 1 + mColor: {r: 0, g: 0, b: 0, a: 1} + mPivot: 4 + mWidth: 292 + mHeight: 116 + mDepth: 4 + mMat: {fileID: 0} + autoResizeBoxCollider: 0 + hideIfOffScreen: 0 + keepAspectRatio: 0 + aspectRatio: 2.5172415 + mType: 1 + mFillDirection: 4 + mFillAmount: 1 + mInvert: 0 + mFlip: 0 + mApplyGradient: 0 + mGradientTop: {r: 1, g: 1, b: 1, a: 1} + mGradientBottom: {r: 0.7, g: 0.7, b: 0.7, a: 1} + centerType: 0 + leftType: 1 + rightType: 1 + bottomType: 1 + topType: 1 + mAtlas: {fileID: 11400000, guid: 62adb30369acbf943a67cee0f69267a3, type: 2} + mSpriteName: Glow - Outer + mFillCenter: 1 +--- !u!1 &1849336301 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 4 + m_Component: + - 4: {fileID: 1849336302} + - 114: {fileID: 1849336303} + m_Layer: 0 + m_Name: LanguageSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1849336302 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1849336301} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 +--- !u!114 &1849336303 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1849336301} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mTerms: + - Term: Color/Red + TermType: 0 + Description: + Languages: + - Red + - Rouge + - Rojo + Languages_Touch: + - + - + - + Flags: 000000 + - Term: Flag + TermType: 0 + Description: + Languages: + - Flag-US + - Flag-FR + - X Mark + Languages_Touch: + - + - + - + Flags: 000000 + - Term: MyCallBack + TermType: 0 + Description: + Languages: + - '{PLAYER_COLOR} Player Wins!' + - Joueur {PLAYER_COLOR} gagne! + - El jugador {PLAYER_COLOR} ha ganado! + Languages_Touch: + - + - + - + Flags: 000000 + - Term: Paragraph + TermType: 0 + Description: + Languages: + - "This example shows how to localize NGUI.\r\n[000000]UILabels, UISprites and + UITextures[-] are supported by simply adding a [000000]Localize[-] component + to them and setting up a [000000]LanguageSource[-] in the Scene/Project." + - "Cet exemple montre comment localiser NGUI.\r\n[000000]UILabels, UISprites et + UITextures[-] sont pris en charge par le simple ajout d'un composant [0000FF]Localize[-] + pour eux et la mise en place d'une [0000FF]LanguageSource[-] dans la Sc\xE8ne + / projet." + - "Este ejemplo muestra como localizar NGUI.\r\n[000000]UILabels, UISprites y + UITextures[-] pueden traducirse con solo a\xF1adirles un componente [0000FF]Localize[-] + y la crear un [0000FF]LanguageSource[-] en la escena / Proyecto." + Languages_Touch: + - + - + - + Flags: 000000 + - Term: Arial + TermType: 8 + Description: + Languages: + - + - + - + Languages_Touch: + - Arimo18 + - Coalition + - Arimo14 + Flags: 000000 + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + CaseInsensitiveTerms: 0 + Assets: [] + NeverDestroy: 1 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + OnMissingTranslation: 1 + mTerm_AppName: + IgnoreDeviceLanguage: 0 + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity.meta new file mode 100644 index 00000000..b68ae0d8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization NGUI.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: 24242c1420a4d3543b31f00e0366e1ca +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity new file mode 100644 index 00000000..8384e5b6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity @@ -0,0 +1,1439 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 0 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 1024 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &77474266 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 77474267} + m_Layer: 5 + m_Name: Extras + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &77474267 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 77474266} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 722395055} + 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: -122, y: 66} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &167348268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 167348269} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167348269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167348268} + m_LocalRotation: {x: 0, y: 0, z: 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!1 &301812439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 301812443} + - component: {fileID: 301812442} + - component: {fileID: 301812441} + - component: {fileID: 301812440} + - component: {fileID: 301812444} + m_Layer: 0 + m_Name: Renderer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &301812440 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301812439} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: [] + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &301812441 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301812439} + m_Mesh: {fileID: 0} +--- !u!114 &301812442 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301812439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 485ddf2c093d74abf922b2a83a6cd235, type: 3} + m_Name: + m_EditorClassIdentifier: + _type: 0 + _lastTimeModified: 636040408486060870 + _vectorGraphics: {fileID: 0} + _color: {r: 1, g: 1, b: 1, a: 1} + _opaqueMaterial: {fileID: 0} + _transparentMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 3} + _sortingLayerID: 0 + _sortingLayerName: + _sortingOrder: 0 + _overrideSorter: 0 + _overrideSorterChildren: 0 +--- !u!224 &301812443 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301812439} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 100, y: 100, z: 100} + m_Children: [] + m_Father: {fileID: 1277673355} + 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: -31, y: 14.5} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &301812444 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301812439} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: cityPlane01 + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 1172369160} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab +--- !u!1 &326863485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 326863486} + - component: {fileID: 326863490} + - component: {fileID: 326863489} + - component: {fileID: 326863488} + - component: {fileID: 326863487} + - component: {fileID: 326863491} + m_Layer: 0 + m_Name: Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &326863486 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + 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: 107, y: 55} + m_SizeDelta: {x: 77, y: 66} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &326863487 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &326863488 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 326863489} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 326863491} + m_MethodName: ApplyLanguage + 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: 1 +--- !u!114 &326863489 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &326863490 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_CullTransparentMesh: 0 +--- !u!114 &326863491 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 326863485} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 1364070359} +--- !u!114 &394726437 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!1 &722395052 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 722395055} + - component: {fileID: 722395054} + - component: {fileID: 722395053} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &722395053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!223 &722395054 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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: 11 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &722395055 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 722395052} + 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: 1045395102} + - {fileID: 77474267} + - {fileID: 1277673355} + m_Father: {fileID: 0} + 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: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1045395101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1045395102} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1045395102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045395101} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -283, y: -163.87, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1405865223} + - {fileID: 1714070056} + - {fileID: 326863486} + - {fileID: 1962922074} + m_Father: {fileID: 722395055} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1172369160 +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: bd8b481d182cbcd4293524eb92ee520c, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 0} +--- !u!1 &1277673354 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1277673355} + m_Layer: 5 + m_Name: Localized Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1277673355 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1277673354} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 301812443} + - {fileID: 2113079818} + m_Father: {fileID: 722395055} + 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 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: diamond + TermType: 12 + Description: + Languages: + - island + - bubble + - conicalGradient + Flags: 000000 + Languages_Touch: [] + - Term: cityPlane01 + TermType: 12 + Description: + Languages: + - tiger + - lion + - wheel + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: [] + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 0 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1405865220 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1405865223} + - component: {fileID: 1405865222} + - component: {fileID: 1405865221} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1405865221 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8d412f782b72d2d49a240c947362048f, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1405865222 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_CullTransparentMesh: 0 +--- !u!224 &1405865223 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1405865220} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + 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: 288, y: 54} + m_SizeDelta: {x: 718, y: 94} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &1714070055 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1714070056} + - component: {fileID: 1714070060} + - component: {fileID: 1714070059} + - component: {fileID: 1714070058} + - component: {fileID: 1714070057} + - component: {fileID: 1714070061} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1714070056 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + 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: 281.01, y: 54} + m_SizeDelta: {x: 77, y: 66} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1714070057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1714070058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1714070059} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1714070061} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1714070059 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1714070060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_CullTransparentMesh: 0 +--- !u!114 &1714070061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1714070055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 1364070359} +--- !u!1 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + - component: {fileID: 1797551112} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -740} + 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!114 &1797551112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 106814ff144f04be5b396814c84d328b, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1 &1912490372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1912490376} + - component: {fileID: 1912490375} + - component: {fileID: 1912490374} + - component: {fileID: 1912490373} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1912490373 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1912490374 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &1912490375 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1912490376 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1912490372} + m_LocalRotation: {x: 0, y: 0, z: 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: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1962922073 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1962922074} + - component: {fileID: 1962922078} + - component: {fileID: 1962922077} + - component: {fileID: 1962922076} + - component: {fileID: 1962922075} + - component: {fileID: 1962922079} + m_Layer: 0 + m_Name: French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1962922074 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1045395102} + 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: 457.3, y: 55} + m_SizeDelta: {x: 77, y: 66} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1962922075 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1962922076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1962922077} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1962922079} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: French + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1962922077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: fdd6d36bfa4c41c4f988be3be486b5f8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1962922078 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_CullTransparentMesh: 0 +--- !u!114 &1962922079 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1962922073} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 1364070359} +--- !u!1 &2113079817 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2113079818} + - component: {fileID: 2113079820} + - component: {fileID: 2113079819} + - component: {fileID: 2113079821} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2113079818 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2113079817} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1277673355} + 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: 67, y: 50} + m_SizeDelta: {x: -463, y: -226} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2113079819 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2113079817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 17e34ae2138a4405182984330823b51b, 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_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + _vectorGraphics: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_UsePivot: 0 +--- !u!222 &2113079820 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2113079817} + m_CullTransparentMesh: 0 +--- !u!114 &2113079821 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2113079817} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: diamond + mTermSecondary: + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 1 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 394726437} + mLocalizeTargetName: I2.Loc.LocalizeTarget_UnityStandard_Prefab diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity.meta new file mode 100644 index 00000000..5f126be6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization SVGImporter.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62cdcfbfffab11740933684d102a7cf0 +timeCreated: 1455774701 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity new file mode 100644 index 00000000..696fd6ff --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity @@ -0,0 +1,1791 @@ +%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: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientEquatorColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientGroundColor: {r: -431602080, g: -431602080, b: -431602080, a: -431602080} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 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, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &4 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 10 + m_Resolution: 1 + m_BakeResolution: 1 + m_AtlasSize: 1024 + m_AO: 1 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 0 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 1 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringMode: 0 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ShowResolutionOverlay: 1 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 0 +--- !u!196 &5 +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.16666666 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &39299878 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 39299879} + - component: {fileID: 39299884} + - component: {fileID: 39299883} + - component: {fileID: 39299882} + - component: {fileID: 39299881} + - component: {fileID: 39299880} + m_Layer: 0 + m_Name: Spanish + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &39299879 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1484302855} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.20949675, y: 0.063616075} + m_AnchorMax: {x: 0.2973214, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -0.0000009536743, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &39299880 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: Spanish + mSource: {fileID: 0} +--- !u!114 &39299881 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &39299882 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 39299883} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 39299880} + m_MethodName: ApplyLanguage + 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: 1 +--- !u!114 &39299883 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 87e96283e85053343bc47c9691614f7c, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &39299884 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 39299878} + m_CullTransparentMesh: 0 +--- !u!114 &94185908 +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: 481ab606793a67349be805c13febeba0, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 434853231} + mAlignment_RTL: 260 + mAlignment_LTR: 257 + mAlignmentWasRTL: 0 + mInitializeAlignment: 0 +--- !u!1 &167348268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 167348269} + m_Layer: 0 + m_Name: Examples + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &167348269 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 167348268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 2027472998} + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!21 &380255778 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Anton SDF - Drop Shadow (Instance) + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + 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: 2853570, guid: 8a89fa14b10d46a99122fd4f73fca9a2, type: 2} + 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.1 + - _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.1 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8333333 + - _ScaleRatioB: 0.6770833 + - _ScaleRatioC: 0.59375 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0.5 + - _UnderlayOffsetY: -0.5 + - _UnderlaySoftness: 0.05 + - _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!1 &434853228 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 434853229} + - component: {fileID: 434853232} + - component: {fileID: 434853231} + - component: {fileID: 434853230} + m_Layer: 5 + m_Name: TextMeshPro UGUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &434853229 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 434853228} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1482511266} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.060356602, y: 0.38338655} + m_AnchorMax: {x: 0.9564211, y: 0.80411345} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &434853230 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 434853228} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: TextMesh Pro Text + mTermSecondary: ARIAL_MATERIAL + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 94185908} + mLocalizeTargetName: I2.Loc.LocalizeTarget_TextMeshPro_UGUI +--- !u!114 &434853231 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 434853228} + 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: "Texto traducido \nTextMesh Pro" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 0} + m_sharedMaterial: {fileID: 2100000, guid: 79459efec17a4d00a321bdcc27bbc385, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 380255778} + 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: 36 + m_fontSizeBase: 36 + 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: 434853231} + characterCount: 42 + spriteCount: 0 + spaceCount: 6 + wordCount: 7 + linkCount: 0 + lineCount: 2 + 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!222 &434853232 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 434853228} + m_CullTransparentMesh: 0 +--- !u!114 &523684461 +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: d96a6c3ea7d28744aacc367115a71af5, type: 3} + m_Name: + m_EditorClassIdentifier: + mTarget: {fileID: 2027472999} +--- !u!1 &566742023 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 566742024} + - component: {fileID: 566742029} + - component: {fileID: 566742028} + - component: {fileID: 566742027} + - component: {fileID: 566742026} + - component: {fileID: 566742025} + m_Layer: 0 + m_Name: French + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &566742024 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1484302855} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.66891235, y: 0.063616075} + m_AnchorMax: {x: 0.75933444, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &566742025 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: French + mSource: {fileID: 0} +--- !u!114 &566742026 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &566742027 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 566742028} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 566742025} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: French + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &566742028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: fdd6d36bfa4c41c4f988be3be486b5f8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &566742029 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 566742023} + m_CullTransparentMesh: 0 +--- !u!21 &683115511 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Anton SDF - Drop Shadow (Instance) + m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} + m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON + m_LightmapFlags: 5 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + 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: 2853570, guid: 8a89fa14b10d46a99122fd4f73fca9a2, type: 2} + 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.1 + - _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.1 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.8333333 + - _ScaleRatioB: 0.6770833 + - _ScaleRatioC: 0.59375 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 512 + - _TextureWidth: 512 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0.5 + - _UnderlayOffsetY: -0.5 + - _UnderlaySoftness: 0.05 + - _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!1 &1195434269 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1195434270} + - component: {fileID: 1195434272} + - component: {fileID: 1195434271} + m_Layer: 0 + m_Name: Window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1195434270 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195434269} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1484302855} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.0349026, y: 0.042410713} + m_AnchorMax: {x: 0.97483766, y: 0.18080357} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1195434271 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195434269} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 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 +--- !u!222 &1195434272 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1195434269} + m_CullTransparentMesh: 0 +--- !u!1 &1229809390 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1229809391} + - component: {fileID: 1229809396} + - component: {fileID: 1229809395} + - component: {fileID: 1229809394} + - component: {fileID: 1229809393} + - component: {fileID: 1229809392} + m_Layer: 0 + m_Name: English + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1229809391 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1484302855} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.43676952, y: 0.063616075} + m_AnchorMax: {x: 0.52329546, y: 0.15959822} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0.0000009536743, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1229809392 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f8d7972c568b50940a54c7f599af66c5, type: 3} + m_Name: + m_EditorClassIdentifier: + _Language: English + mSource: {fileID: 0} +--- !u!114 &1229809393 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1573420865, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_EffectColor: {r: 0, g: 0, b: 0, a: 1} + m_EffectDistance: {x: 3, y: -3} + m_UseGraphicAlpha: 1 +--- !u!114 &1229809394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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.5019608, g: 0.5019608, b: 0.5019608, a: 0.5019608} + m_HighlightedColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 0.69803923} + m_PressedColor: {r: 0.34509805, g: 0.34509805, b: 0.34509805, a: 0.69803923} + m_DisabledColor: {r: 0.2509804, g: 0.2509804, b: 0.2509804, a: 0.5019608} + m_ColorMultiplier: 2 + 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: 1229809395} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1229809392} + m_MethodName: ApplyLanguage + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: English + m_BoolArgument: 0 + m_CallState: 1 +--- !u!114 &1229809395 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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_Texture: {fileID: 2800000, guid: 8f7115ef5a3ecfd42935c3ff54434ae8, type: 3} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &1229809396 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1229809390} + m_CullTransparentMesh: 0 +--- !u!1 &1364070357 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1364070358} + - component: {fileID: 1364070359} + m_Layer: 0 + m_Name: LocalizationSource + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1364070358 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_LocalRotation: {x: 0, y: 0, z: 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 &1364070359 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1364070357} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 488051eaa73ba421e8fe4868f2e0f364, type: 3} + m_Name: + m_EditorClassIdentifier: + mSource: + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + mTerms: + - Term: TextMesh Pro Text + TermType: 0 + Description: + Languages: + - "This is a localized \nTextMesh Pro Text" + - "Texto traducido \nTextMesh Pro" + - 'Il s''agit d''un texte localise + + TextMesh Pro' + - + - + - + - + - + - + - + - + - + Flags: 000000000000000000000000 + Languages_Touch: [] + - Term: ARIAL + TermType: 7 + Description: + Languages: + - Fonts & Materials/Roboto-Bold SDF + - Fonts & Materials/Electronic Highway Sign SDF + - Fonts & Materials/Bangers SDF + Flags: 000000 + Languages_Touch: [] + - Term: ARIAL_MATERIAL + TermType: 6 + Description: + Languages: + - Fonts & Materials/Anton SDF - Drop Shadow + - Fonts & Materials/Bangers SDF - Drop Shadow + - Fonts & Materials/LiberationSans SDF - Outline + Flags: 000000 + Languages_Touch: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + mLanguages: + - Name: English + Code: en-US + Flags: 0 + - Name: Spanish + Code: es + Flags: 0 + - Name: French + Code: fr-BE + Flags: 0 + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 1 + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + Google_Password: change_this + GoogleUpdateFrequency: 3 + GoogleInEditorCheckFrequency: 2 + GoogleUpdateSynchronization: 1 + GoogleUpdateDelay: 5 + Assets: [] + Spreadsheet_LocalFileName: + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: utf-8 + Spreadsheet_SpecializationAsRows: 1 + version: 1 + NeverDestroy: 0 + UserAgreesToHaveItOnTheScene: 0 + UserAgreesToHaveItInsideThePluginsFolder: 0 + GoogleLiveSyncIsUptoDate: 1 + Assets: [] + Google_WebServiceURL: + Google_SpreadsheetKey: teVYmvqeNTF8ZkQhQ21a0Gw + Google_SpreadsheetName: + Google_LastUpdatedVersion: + GoogleUpdateFrequency: 3 + GoogleUpdateDelay: 5 + mLanguages: [] + IgnoreDeviceLanguage: 0 + _AllowUnloadingLanguages: 1 + mTerms: [] + CaseInsensitiveTerms: 0 + OnMissingTranslation: 1 + mTerm_AppName: + Spreadsheet_LocalFileName: C:/Data/Frank/Unity Projects/Unity Plugins/Localization.csv + Spreadsheet_LocalCSVSeparator: ',' + Spreadsheet_LocalCSVEncoding: Unicode (UTF-8) + Spreadsheet_SpecializationAsRows: 1 + Google_Password: change_this + GoogleInEditorCheckFrequency: 2 +--- !u!1 &1482511262 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1482511266} + - component: {fileID: 1482511265} + - component: {fileID: 1482511264} + - component: {fileID: 1482511263} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1482511263 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482511262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1482511264 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482511262} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &1482511265 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482511262} + 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!224 &1482511266 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1482511262} + 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: 434853229} + - {fileID: 1484302855} + m_Father: {fileID: 0} + 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: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1484302854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1484302855} + m_Layer: 0 + m_Name: Buttons + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1484302855 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1484302854} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1195434270} + - {fileID: 1229809391} + - {fileID: 39299879} + - {fileID: 566742024} + m_Father: {fileID: 1482511266} + 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!1 &1496215549 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1496215553} + - component: {fileID: 1496215552} + - component: {fileID: 1496215551} + - component: {fileID: 1496215550} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1496215550 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496215549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1997211142, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ForceModuleActive: 0 +--- !u!114 &1496215551 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496215549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, 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: 0 +--- !u!114 &1496215552 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496215549} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &1496215553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496215549} + m_LocalRotation: {x: 0, y: 0, z: 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 &1797551106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1797551111} + - component: {fileID: 1797551110} + - component: {fileID: 1797551108} + - component: {fileID: 1797551107} + 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 &1797551107 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!124 &1797551108 +Behaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 +--- !u!20 &1797551110 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + 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: 4294967263 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &1797551111 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797551106} + 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: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2027472997 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2027472998} + - component: {fileID: 2027473001} + - component: {fileID: 2027473000} + - component: {fileID: 2027472999} + - component: {fileID: 2027473002} + - component: {fileID: 2027473003} + m_Layer: 0 + m_Name: TextMeshPro + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2027472998 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 167348269} + 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.7, y: -0.5} + m_SizeDelta: {x: 14.21, y: 3.99} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2027472999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, 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: "Texto traducido \nTextMesh Pro" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 0} + m_sharedMaterial: {fileID: 2100000, guid: 79459efec17a4d00a321bdcc27bbc385, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 683115511} + 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: 12.55 + m_fontSizeBase: 10 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 10 + 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: 0 + 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: 2027472999} + characterCount: 42 + spriteCount: 0 + spaceCount: 6 + wordCount: 7 + linkCount: 0 + lineCount: 2 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2027473001} + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_maskType: 0 +--- !u!33 &2027473000 +MeshFilter: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_Mesh: {fileID: 0} +--- !u!23 &2027473001 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 4294967295 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 79459efec17a4d00a321bdcc27bbc385, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!114 &2027473002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3} + m_Name: + m_EditorClassIdentifier: + mTerm: TextMesh Pro Text + mTermSecondary: ARIAL_MATERIAL + PrimaryTermModifier: 0 + SecondaryTermModifier: 0 + TermPrefix: + TermSuffix: + LocalizeOnAwake: 1 + IgnoreRTL: 0 + MaxCharactersInRTL: 0 + IgnoreNumbersInRTL: 0 + CorrectAlignmentForRTL: 1 + AddSpacesToJoinedLanguages: 0 + AllowLocalizedParameters: 1 + TranslatedObjects: [] + LocalizeEvent: + m_PersistentCalls: + m_Calls: [] + AlwaysForceLocalize: 0 + LocalizeCallBack: + Target: {fileID: 0} + MethodName: + mGUI_ShowReferences: 0 + mGUI_ShowTems: 1 + mGUI_ShowCallback: 0 + mLocalizeTarget: {fileID: 523684461} + mLocalizeTargetName: I2.Loc.LocalizeTarget_TextMeshPro_Label +--- !u!222 &2027473003 +CanvasRenderer: + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027472997} + m_CullTransparentMesh: 0 diff --git a/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity.meta b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity.meta new file mode 100644 index 00000000..760c8be8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Scenes/I2Localization TextMeshPro.unity.meta @@ -0,0 +1,4 @@ +fileFormatVersion: 2 +guid: e7ed6858cb4189046a080a521e337fd1 +DefaultImporter: + userData: diff --git a/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt b/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt new file mode 100644 index 00000000..94146fa6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt @@ -0,0 +1,864 @@ +---------------------------------------------- + I2 Localization + 2.8.16 + http://www.inter-illusion.com + inter.illusion@gmail.com +---------------------------------------------- + +Thank you for buying I2 Localization! + +Documentation can be found here: http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html + +A few basic tutorials and more info: http://www.inter-illusion.com/tools/i2-localization + +If you have any questions, suggestions, comments or feature requests, please +drop by the I2 forum: http://www.inter-illusion.com/forum/index + +---------------------- + Installation +---------------------- + +1- Import the plugin package into a Unity project. +2- Enable the support for third party plugins installed on the project + (Menu: Tools\I2 Localization\Enable Plugins) +3- Open any of the example scenes to see how to setup and localize Components + (Assets/I2/Localization/Examples) +4- To create your own localizations, open the prefab I2\Localization\Resources\I2Languages +5- Create the languages you will support. +6- The I2Languages source is a global source accessible by all scenes + +The documentation provides further explanaition on each of those steps and some tutorials. +Also its presented how to convert an existing NGUI localization into the I2 Localization system. + + +----------------------- +PLAYMAKER +----------------------- + +If you use PlayMaker, please, install: + - https://www.inter-illusion.com/Downloads/I2Localization_PlayMaker.unitypackage + - PlayMaker Unity UI Addon (from the Playmaker website - only needed for the example scenes that use Unity UI) + +That will install custom actions to access and modify the localization. +More details can be found in the example scene + Assets\I2\Localization PlayMaker\Playmaker Localization.unity + + +----------------------- + Ratings +----------------------- + +If you find this plugin to be useful and want to recommend others to use it. +Please leave a review or rate it on the Asset Store. +That will help with the sales and allow me to invest more time improving the plugin!! + +----------------------- + Extras +----------------------- + +These are some of my plugins that may help you develop a better game: + +I2 Parallax - Uses the mobile gyroscope to add depth to your UI (http://bit.ly/I2_Parallax) +I2 Text Animation - Take your texts to the next level (http://bit.ly/I2_TextAnimation) +I2 MiniGames - A better way to do Rewards and Energy Systems (http://bit.ly/I2_MiniGames) +AssetStore Deals - A bot that constantly checks the Store to find you the latest Sales (http://deals.inter-illusion.com) + +----------------------- + Version History +----------------------- +2.8.17 +NEW: When generating ScriptLocalization.cs, if a term name is a C# keyword the variable now is set to start with @ +NEW: There is now LocalizationManager.CustomApplyLocalizationParams to process ALL translations before ApplyLocalizationParams runs +FIX: Translations with RTL tags were failing (thanks @d xy for looking into this) + +2.8.16 +FIX: TextMesh Pro was not correctly displaying multi-line arabic texts + +2.8.15 +NEW: Performance improvement when switching levels by not calling Resources.UnloadUnusedAssets() unless the user requests it. + For most common scenarios, there is no need to unloadUnusedAssets +NEW: Lots of stability fixes by cleaning up all warnings detected by the Roslyn Analyzers +NEW: Fixed several issues/obsolete calls when on the latest versions of Unity + +2.8.14 +NEW: Added support for localizing Video Player +NEW: Allow skipping Google Synchronization from script by creating a RegisterCallback_AllowSyncFromGoogle class + (http://www.inter-illusion.com/forum/i2-localization/1679-turning-off-auto-update-via-script#4166) +FIX: UI changes to remove dark colors in the background +FIX: Disabling Localized Parameters now work as expected (i.e. Parameters still work, but they are not localized even if a term is found with that value) +FIX: Target TextMesh now correctly changes font and materials + + +2.8.13 +NEW: Added UpdateFrequency EveryOtherDay to allow checking the spreadsheet every 48h +NEW: Added a function to retrieve an asset by using the term name (e.g. font, sprite) LocalizationManager.GetTranslatedObjectByTermName(TermName) +FIX: Replaced all events using Action<..> by delegate function that clearly show what the parameters are for +FIX: Inspector was not showing correctly when in the latest alpha/beta of Unity 2019.2+ +FIX: Bug where Languages coudn't be enabled at runtime (thanks to bschug for submitting a fix) +FIX: To reduce memory usage, Term descriptions are now only used in the editor (not in the final build) If needed, use a disabled language to store it +FIX: Inspector Width should now be detected more accurately + + +2.8.12 +NEW: Now is possible to dynamically create a LanguageSourceData without a LanguageSource and use it at runtime. +NEW: LocalizationParamsManager now have a Manager Type (Local/Global) to define if it applies to ALL Localize or just the one in the same object. +FIX: Term's list is not longer fully expanded all the time. +FIX: Specialization bar in the Term's translations now shows the selected specialization as a tab-button +FIX: Adding new specializations now copies the translation from the current specialization, so the user can create several in sequence. +FIX: Terms can now have any letter, digit or any of the following symbols .-_$#@*()[]{}+:?!&'`,^=<>~ +FIX: Removed invalid character from the StringObfucator that were causing build issues in XBox +FIX: RTL Fixer (Arabic, Persian, etc) was detecting tags like , only [xx] + + +2.8.11 +NEW: Term's name can now have any of the following symbols ".-_$#@*)(][}{+:?!&'" +NEW: Now the plugin localizes MeshRenderer (Mesh + Material) +NEW: New parameter in the Google Spreadsheet tab to control when to apply the downloaded data (OnSceneLoaded, Manual, AsSoonAsDownloaded) +FIX: Inferring terms with '/' no longer generates a Category +FIX: Updated NGUI target to be compatible with the latest version +FIX: Localize inspector, the options in the dropdown for "ForceLocalize" and "Allow Localized Parameters" were in the wrong order +FIX: Inspector for the Google Spreadsheet tab in the LanguageSource was cutting when the Inspector was too narrow +FIX: Button "Open Source" in the Localize Inspector now works for both LanguageSources and LanguageSourceAssets +FIX: Terms name can now have Non latin letters (e.g. Chinese, Korean, etc), but no symbols, extra spaces, etc + +2.8.10 +NEW: LocalizationManager.GetCurrentDevice(true) will now force get the Device Language without using the startup language from the cache +FIX: Updated Playmaker actions to new Prefab system +FIX: Menu option: Tools/I2 Localization/Open I2Languages +FIX: When inferring terms, any tag (e.g. ) or invalid characters (e.g. ^/\`) are removed to form the term name + +2.8.9 +NEW: I2Languages.prefab is now an ScriptableObject instead of a prefab to avoid the locking issues of Unity 2018.3 +FIX: Compatibility with Unity 2018.3 +FIX: Plural rules for some Slavic languages were using the wrong settings. +FIX: Improved performance when using assets from Resources and in general only calling Resource.UnloadAll when loading scenes + +2.8.8 +NEW: Added a flag to disable Localized Parameters + (http://inter-illusion.com/forum/i2-localization/1163-localization-params-auto-translating-design-flaw#3195) +NEW: Merged all checkboxes in the Localize component into an "Options" popup to make the Localize's inspector use less space +NEW: Find all terms in the Scene/Scripts now also detects those in your code using [TermsPopup] and LocalizedString +FIX: Changing the Font or Material in a TextMeshPro now updates the linkedTextComponent +FIX: Startup language now ignores the disabled Languages if the "Default Language" is set to "Device Language" +FIX: Updated Playmaker example scene to show that it needs the Unity UI Addon. +FIX: Prevented a null reference on the GetSourcePlayerPrefName function when using Google Live Synchronization in Scene's sources +FIX: Google Live Synchronization was failing to load the downloaded data from the cache. + +2.8.7 +NEW: WebService now has a password to restrict other players from modifying the localization data +NEW: Importing a CSV file from script will now update the temporal files while playing +NEW: A warning is now displayed in top of the LanguageSource when Google Live Sync is enabled but the spreadsheet is not up-to-date +NEW: New option in the Languages tab to define if Runtime Unloading of Languages happens for the source, or if only in the device +NEW: By default, the Runtime Unloading of language will not happen in the Editor (to allow for editing while playing) +NEW: Missing terms are going to show hidden by default, given that they are only suggestions and are making the list to crowded +NEW: Added function LocalizationManager.GetTranslatedObject(termName) to return the translated Sprite/Material/Font/etc from a Term +FIX: Translating and editing terms now keep the [i2nt]...[/i2nt] sections correctly +FIX: Translating texts with rich text tags was removing the tags +FIX: Modified temporal language file format to recover from errors and avoid shifting the term's translations +FIX: When source is set to show a warning when the term is not found, the Localized Parameters was showing the warning +FIX: Corrected wrong layout in Terms list when in Retina displays (contributed by @TailoraSAS) +FIX: Languages will fallback were filling their translations when doing a build + +2.8.6 +NEW: Menu "Tools/I2 Localization/Toggle Highlight Localized" changes all localized text into "LOC:" to easily spot errors +NEW: "Bake Terms" tool now generate another class (ScriptTerms) in ScriptLocalization.cs that class have variables for the Term Names +NEW: Parameters can now be localized if the parameter value is the name of an existing Term +NEW: Terms filtering in the LanguageSource list, now allow prefix 'f xxx' or 'c xx' to search in translations or category +FIX: Downloaded Spreadsheets will also save their key to avoid corrupting the cache when running different versions of the same app +FIX: Google Live Synchronization was not updating the temporal languages files used to save memory at runtime +FIX: GetCommonWordInLanguageNames now does a Case Insensitive comparison ("English (Canada)" can now match "english") +FIX: Latest unity beta was failing to detect TextMeshPro when installed using the PackageManager +FIX: Removed warning regarding Tizen +FIX: Clicking the Language names in the Term's description was not previewing the translations +FIX: Changing Fonts/Objects and Localize Targets when selecting multiple Localize components was only updating one of them +FIX: Charset tool was not removing the last ] from tags +FIX: ParameterManager activation was crashing IOS build in some Unity versions + +2.8.5 +NEW: Once a day (can be configured), the editor will check if the Spreadsheet is up-to-date to avoid issues when playing in device +NEW: Added Language code 'es-US' to support "Spanish (Latin Americas)" +NEW: Added Toggle "Separate Specializations into Rows" to Spreadsheet export inspector, to either merge or split the specializations +NEW: Startup language will now try to match an official language before trying a fallback to any custom language name or variant +FIX: Fallback languages now try finding a language of the same country, and then fallback to the first from the list +FIX: Removed harmless logs marked as error related to File not found or accessible +FIX: Disable language Loading/Unloading on the Switch console +FIX: Some character combinations where producing an error when using the CharSet tool and clicking "Copy to clipboard" +FIX: When the starting language had Fallbacks, those where not loaded correctly +FIX: If the Localize or LanguageSource inspector was open, changing the languages was not updating the inspector preview +FIX: Removed example script using OnMouseUp to avoid showing a warning when building the game (replaced with Unity UI) + +2.8.4 +NEW: Component CustomLocalizeCallback with a UnityEvent to set functions that should be called whenever the Language changes +NEW: Localize component now has the Callback as a UnityEvent which allows calling several function and even passing parameters +NEW: Customizable PlayerPrefs and FileAccess, allowing setting your own functions to handle settings and file IO +NEW: Term's list can now show and filter more than 31 categories (contributed by @71M THANKS!) +NEW: LocalizationManager.CurrentCulture to allow formating (e.g. string.Format(LocalizationManager.CurrentCulture, "{0:c}", 12)) +FIX: Tool CharSet will no longer add Plural tag characters (e.g. [i2p_Zero]) +FIX: Refactored BundlesManager to allow implementing a CustomBundlesManager +FIX: Translating a text with a plural parameter (e.g. {[#POINTS]} ) now generate all plural forms in the target language +FIX: Android devices were not auto-detecting some languages on startup +FIX: Translations that starts with characters (') or (=) can now be correctly exported and imported into Google Spreadsheets +FIX: Localize Target was not detected in Unity 2018+ +FIX: Building XCode with Append failed unless set to Replace or manually deleting the Localization files + +2.8.3 +NEW: Runtime Memory optimization by loading/unloading languages depending on which ones is in use +NEW: Added Support for the following languages: (Although Google Translate doesn't support all of them) + Abkhazian, Afar, Akan, Amharic, Aragonese, Assamese, Avaric, Avestan, Aymara, Bambara, Bashkir, Bengali, Bihari, + Bislama, Breton, Burmese, Chamorro, Chechen, Chichewa, Chuvash, Cornish, Corsican, Cree, Divehi, Dzongkha, Ewe, + Fijian, Fulah, Guaraní, Haitian, Hausa, Herero, Hiri Motu, Interlingua, Interlingue, Igbo, Inupiaq, Ido, Inuktitut, + Javanese, Kalaallisut, Kanuri, Kashmiri, Central Khmer, Kikuyu, Kinyarwanda, Kirghiz, Komi, Kongo, Kuanyama, + Luxembourgish, Ganda, Limburgan, Lingala, Lao, Luba-Katanga, Manx, Malagasy, Marshallese, Nauru, Navajo, North Ndebele, + Nepali, Ndonga, Sichuan Yi, South Ndebele, Occitan, Ojibwa, Church Slavic, Oromo, Oriya, Ossetian, Panjabi, Pali, Rundi, + Sanskrit, Sardinian, Sindhi, Northern Sami, Samoan, Sango, Scottish Gaelic, Shona, Sinhala, Somali, Southern Sotho, + Sundanese, Swati, Tajik, Tigrinya, Tibetan, Turkmen, Tagalog, Tswana, Tonga, Tsonga, Twi, Tahitian, Uighur, Venda, + Volapük, Walloon, Wolof, Frisian, Yoruba, Zhuang +NEW: Exposed a variant of the LocalizationManager.ApplyLocalizationParams that can get the parameters from a function +NEW: Localization Target now use ScriptableObject to allow keeping extra parameters to setup the targets +NEW: Android devices now properly detect the Device Language Region (no longer using Unity's Application.SystemLanguage) +FIX: Two parameters in a single translation was failing if the length of the text was not the same +FIX: 'Missing' icon was not showing in the Term's list when in Unity 2017+ +FIX: Compatibility with Window Store Apps and UWP +FIX: Support for multiple Localize component in the same GameObject +FIX: Increased the PostProcessBuild priority to avoid conflicting with other plugins +FIX: Assigning None to a Term translation's Object Field was ignored +FIX: LocalizationManager.OnLocalizeEvent now correctly releases all callbacks after finishing Play Mode in the Editor +FIX: Term list in language source was showing empty space for some seconds after unselecting a term + +2.8.2 +NEW: Improved the example scene: 'I2Localization features LocalizedString.unity' +NEW: Added a version of ForceTranslate to translate several texts at the same time +NEW: The translate/Translate All button will now skip terms that don't have type "Text" (avoid Materials, Fonts, etc) +NEW: Restored the translate button for each translation field, but this time it shows only "T" to still allow more space +NEW: Google Translate will now skip tags (e.g. [tag]..[/tag], ..) +NEW: Google Translate skips any text inside [i2nt].ignored.text.[i2nt]. Those tags are also not used when rendering translations +NEW: Basic Hindi / Devanagari support +NEW: Optimized GC Allocations, removed runtime usage of Regex +NEW: By default, all scenes will be selected in the LanguageSource tools (Parsing, Renaming, Changing Category, etc) +FIX: Issue with some unity versions failing when Translate All/Export with an error related to 'Rewinding' the POST result +FIX: Issue where clicking the translate button was failing when terms source translation had & or similar symbols +FIX: Issue with some unity versions failing when Translate All/Export with an error related to 'Rewinding' the POST result +FIX: Issue where clicking the translate button was failing when terms source translation had & or similar symbols +FIX: Button "Translate All" will not longer override non-empty translations when input type is Touch instead of Normal +FIX: Play in Editor sometimes failed to localize when changing languages +FIX: Translating all terms to a language with a variant (e.g. en-CA) was failing +FIX: Example scenes had warning loading when the project was set to serialization: Force Text +FIX: Long Key names are now clamped to 100 characters in the terms list so that it doesn't get too wide +FIX: GoogleTranslate.ForceTranslate was not handling tags and parameters +FIX: LanguageSources in the scenes were not loaded inside the editor until they were clicked +FIX: Localize target AudioSource was not playing all the time +FIX: Selecting a different Target type in the Localize component was not updating correctly +FIX: Localization failed when there where empty slots in the Assets list (LangaugeSource) or References (localizeComponent) + +2.8.1 +NEW: Plural support with multiple Plural forms based on the target language +NEW: LocalizeDropdown now supports TMPro Dropdown +NEW: Adding a Term will automatically detect the Term type (e.g. Sprite, Font,...) (instead of always defaulting to "Text") +NEW: Google Translation will now generate translation for each plural form of the target language +NEW: New Term Type: Child (it enables the child GameObject with the name matching the translation to that language) +NEW: CharSet tool now has buttons to select all languages, clear or invert the selection +NEW: Right-To-Left and Modifiers sections in the Localize inspector will now only show if the term's type is 'Text' +NEW: Confirmation dialog before deleting a Language +NEW: Modified the WebService to support translation requests using POST. This increases the reliability of translating large data sets. +NEW: Added a close button to the Error message in the inspector. +NEW: When the Verify WebService fails, it will now display the error in the inspector +NEW: LocalizationManager.ApplyLocalizationParameters can now use Global, Local parameters or a dictionary of parameters +NEW: LocalizedString inspector now has a button that opens the LanguageSource to allow editing the term +NEW: The LanguageSource now has an option to decide if default Language will be Device Language or the first in the Languages list +NEW: LanguageSource's terms list now shows 3 dots (...) after the last term if some terms were hidden by the category filter +NEW: Sub Sprite Terms will now show the full path of the sprite (e.g. "Atlas.SpriteName") +DEL: Removed the "Translate" button next to each translation to allow for more space. Instead, use the "Translate All" in term/language +FIX: Term Type 'GameObject' now works as expected +FIX: IOS AppName Localization was not exporting languages with regions +FIX: Clicking the delete button ("x") of a disable button will now correctly delete it (no need to manually enable and then delete) +FIX: Google Translation will not longer fail silently when the target language is not supported by Google translate +FIX: Building Android Apps with a name including (') was failing +FIX: Sometimes when playing in editor, changing the language didn't localize all texts +FIX: Restored the GoogleTranslation.ForceTranslate (although its noted that it may fail in some unity versions having the www blocking bug) + +2.8.0 +NEW: Downloaded Spreadsheets at runtime are now saved into a file in the persitentData folder to avoid overflowing the PlayerPrefs +NEW: Example scene showing how to use LocalizedString +NEW: Localize component now has a checkbox (Separate Spaces) to add extra spaces to the languages that don't add them between words. +NEW: All saved translations are now encrypted by default, feel free to change the password in StringObfucator.cs for added security +NEW: ScriptLocalization is no longer built by default (to speed out compilation by avoiding checking all the time) +NEW: Instead of ScriptLocalization.Get(xx), it will be better to use LocalizationManager.GetTranslation(xx) +NEW: TermsPopup attribute now has an optional filter (e.g. [TermsPopup("Tutorials")] ). This change was contributed by @michael THANKS! +NEW: LocalizationManager.GetTranslation(Term, overrideLanguage="English") allows retrieving translations outside the current Language. +NEW: Tool PARSE now also detect script reference to LocalizationManager.TryGetTranslation("term") +NEW: Importing terms from Google will now remove invalid (Non-ASCII) characters from the Terms Name +NEW: Selecting the Language Code in the Languages Tab, now shows a more compact list with languages and variants as childs +NEW: When the localize component has a LanguageSource set as Source, it will only show the terms inside that source +NEW: Added a "Detect" button after the Source selection in the Localize component to find the LanguageSource containing the selected term +NEW: Added a confirmation dialog to the delete terms button +DEL: Deprecated old TextMeshPro_Pre53 +DEL: Removed support for DFGUI (was removed from the AssetStore a while ago, if you still need support, please use I2Loc v2.7.0) +FIX: Localization targets are now AutoRegistering before the Awake function of the scene. This fixes issues with the LocalizeOnAwake flag +FIX: Export to Android was failing to create the correct Locale folders (i.e. values-en-rUS instead of values-en-US) +FIX: TextField used to filter the Terms List in the LanguageSource was not allowing Copy/Paste +FIX: Term's name can now include non-ASCII character as long as they are not controls (e.g. newline, tab, etc) +FIX: Android XML with the AppName will now properly escape the name if it contains XML-ilegal characters +FIX: Compatibility update for Unity 2017 when editor is set to .Net 4.6 (thanks to @nox_bello) +FIX: Tool PARSE was not detecting the correct term when ScriptLocalization.Get("xx", param1, param2) had 1 or more params +FIX: In some unity versions, compiling for UWP was throwing an exception when Google Live Sync was used. +FIX: Exporting Chinese Variants in ANDROID was failing because Android uses (zh-rXX instead of zh-XX) [thx to @fur contribution] +FIX: Disabling the last language in the LanguageSource list, was disabling some other UI controls outside that language +FIX: Realtime Translation example was failing when the I2Languages.prefab was not selected +FIX: TextField used to filter the Terms List in the LanguageSource will now not lose the focus when typing +FIX: When clicking Translate or Translate All int the editor, it was not showing the "Translating...." message +FIX: Translating texts with & was return wrong translations +FIX: Sometimes the inspector width was bigger than it had to be + + +2.7.0 +NEW: To separate purposely empty translations from missing ones, the empty translations should be set to --- +NEW: Google Update Frequency can now be set to "OnlyOnce" to only download data from the Spreadsheet the first time the app is executed +FIX: OnMissingTranslation in the LanguageSource now is working as expected +FIX: Compatibility with Unity2017 was causing the editor to not find some EditorStyles and the Translate function was looping forever +FIX: Changing text alignment will not be reverted when switching languages +DEL: ForceTranslate is now removed, use the GoogleTranslation.Translate instead (because Unity 2017 doesn't run www in a separate thread) + +2.6.12 +NEW: When a term is not found, its translation will be null instead of "" to diferenciate that case from terms with empty translations +FIX: Terms with empty translations will change the label's text to empty. +FIX: Internal term "-" will not longer be shown in the LanguagesSources +FIX: Several errors when LanguageCode was invalid or only had 1 letter +FIX: Renaming terms in multiple scenes will now correctly save the scenes +FIX: Clicking the inspector to preview a language and then exiting the Localize inspector was only reverting the selected object +FIX: Corrected "RightToLeft Text Rendering" example scene (added names to the labels and made the buttons select the correct language) +FIX: RTL Line Wrap (when maxCharacters>0) will not longer add extra lines at the bottom +FIX: Language Source was downloading data from google when any delay was specified (even when the frequency was set to NEVER) +FIX: Building android on some MAC was failing to resolve the staging path +FIX: RTL languages will now be fixed correctly when surrounded by [] and other simbols +FIX: Compile error (about SceneManager) when running the game in 5.2 or older +FIX: Google Live Sync now will download the data, even if the scene is changed while the spreadsheet is been downloaded +FIX: New TextMeshPro not been detected because the DLL changed its signature + + +2.6.11 +NEW: App Name can now be localized in both IOS and Android +NEW: Localize term now has two string fields to add a Prefix & Suffix to the translations (e.g. allows adding : at the end of the text) +NEW: Example of how to change the language using a Unity UI Dropdown (component SetLanguageDropdown) see the "uGUI Localization" Scene +FIX: IOS Store Integration now works automatically +FIX: Parsing terms was not updating the Term's Usage +FIX: Better support for arabic texts with tags +FIX: Previewing a language in the editor by clicking the Language name, will now respect the RTL or LTR direction depending on the language +FIX: Removed warnings in Unity 5.6 +FIX: TextMeshPro not updating the font when using a material name in a subfolder of the Resources +FIX: TextMeshPro now wraps correctly texts from Right-To-Left Languages (e.g. Arabic) +FIX: CharSet tool will now correctly find what Arabic and other RTL characters are used (will apply RTLfix when adding the characters) +FIX: TextMeshPro (paid version, the one with the source code) was not been detected correctly +FIX: Translating a term inferring from Label's text, will no longer remove the non ASCII characters +FIX: Google Live Sync will now auto-update the scene texts without needing to change the current language +FIX: LocalizationManager.GetTermData will now call InitializeIfNeeded, which also now validates that there are sources available +FIX: Added validation for undefined BuildTargetGroup.Switch in 5.6 + +2.6.10 +NEW: PlayMaker support (Actions: Get/SetCurrentLangauge, SetNextLanguage, Get/SetTerm, GetTranslation) +NEW: Button next to the plurals tab to show if the DisabledLanguages should show the translation or should be hidden +NEW: Massive inspector speed improvement when Parsing terms, selecting a LanguageSource, etc +NEW: LocalizationManager.ApplyLocalizationParams now accepts a general GameObject instead of forcing a LocalizeCmp. This allows using LOCAL parameters without localize component +NEW: added options for parameters when calling ScriptLocalization.Get(term, true, 0, false, applyParameters:true, localParamsRoot:gameObject) +NEW: Clicking a Translation in the Localize component will now Preview that language in the entire UI +NEW: Added a button at the top of the Term's List in the LanguageSource to refresh the translation shown in the Scene (calls LocalizeAll(true)) +NEW: Menu option to also call the LocalizeAll (Menu/I2/Localization/Refresh Translations). This is useful if the translation is changed and should be updated in several UI elements +NEW: LocalizationManager.GetTermsList() now can have a parameter to only show the terms of that category (e.g. .GetTermsList("Tutorial")) +NEW: LocalizationManager.HasLanguage(..) and .GetAllLanguages(..) now has optional parameter SkipDisabled to skip disabled languages. Default=true +NEW: Build ScriptLocalization.cs tool now has a button to select the terms previously built +FIX: Disabling a language will skip it when selecting the startup language +FIX: Selecting a different LanguageSource will not longer set the categories to None, instead it will revert to Everything +FIX: Now the Scene can preview the translation of disabled languages. Just click in the language name next to the Terms's description (localize component OR language Source) +FIX: Compile errors when building for Windows Phone or WSA +FIX: Generating the files for the Store Integration (Android, IOS) was also exporting the disabled languages +FIX: Alignment option for TextMeshPro now works with the latest TextMeshPro version (v1.0.55.52 Beta 3) +FIX: LocalizationManager.LocalizeAll is now internally handled at the end of the frame (using a coroutine) to handle multiple localization in the same frame and timing issues when start Playing +FIX: A term will no longer show as missing translation (yellow + italics) if the missing translation belongs to a disabled language +FIX: ResourceManager.CleanResourceCache will now only be called when a level is loaded to avoid frame rate spikes in the middle of the game +FIX: Added support for the new TextMeshPro (free version) + + +2.6.9 +NEW: AboutWindow will never open automatically, instead there will be an small warning next to the version number +NEW: LocalizedString (link to documentation) +NEW: Changing .NET CurrentCulture when the language changes is now optional. Its disabled by default and can be enabled by adding an AutoChangeCultureInfo component to your first scene +NEW: Terms can now be set to to avoid localizing it (e.g. Don't localize Label's text, but do localize Label's font) +NEW: Languages can now be disabled (useful for having data columns in the spreadsheet) Just add a $ in front of the language name in the Spreadsheet or uncheck the toggle in the LanguageSource +NEW: Clicking the Language name next to the translations will preview the text in that language +FIX: Event_OnSourceUpdateFromGoogle is now called with ReceivedNewData==false whenever the languagesource is up-to-date +FIX: Auto-detection of plugins was not working correctly for IOS +FIX: Removed warning "Unsupported encoding: 'UTF-8,text/plain'" that was happening when translating a text +FIX: RTL fix was not been applied to Right-To-Left languages when EnableChangingCultureInfo was not called or false +FIX: Changing Category was not marking the scene Dirty + +2.6.8 +DEL: [i2auto] will not longer be used (if your spreadsheets have that, you should remove all [i2auto] texts and reimport to the LanguageSource) +DEL: Translations will not longer be marked as translated by google (this speed the import/export process) +NEW: When a term is not defined for some language, it can be set to display (Empty, Fallback or a Warning) The setting is in I2Languages.prefab Language Tab +NEW: Localize components will execute the Localization Callback even without a valid Translated Term. +NEW: When creating a term in the Localize component, the first language (e.g. English) will be auto-filled with the label's text +NEW: Added two more parameters to the callback when Import_Google finishes (Event_OnSourceUpdateFromGoogle(LanguageSource, bool ReceivedNewData, string errorMsg)) +NEW: Selecting the checkbox next to the Term's list in the LanguageSource and then clicking the Term Usage button selects ALL objects using all the selected terms +NEW: Surrounding a text with the tag , ignores converting it to RTL (e.g. "2. بدفع مبلغ") +NEW: New toggle (Ignore Numbers), next to the Max Line Length in the localize component, to automatically avoid converting numbers when parsing RTL texts +NEW: .NET CurrentCulture is changed based on the current language to make all culture-dependant operations to use the properties of the selected language +NEW: Detecting if the language is Right-To-Left will now be using the CurrentCulture settings as that maybe more precise +FIX: Right-To-Left languages will not adjust the alignment if the original alignment was CENTER +FIX: 2DToolkit now allows adjusting the alignment if the language is RTL +FIX: Add/Remove language was not marking the LanguageSource as dirty and the changes could have been getting lost +FIX: Copy/Paste a Localize component into a new GameObject will properly update the Target reference +FIX: If the WebService was set in a LanguageSource inside the scene and not in the I2Languages.prefab, Google Translate/Export/Import wasn't working. +FIX: Compile erors when using an old version of TextMeshPro (requiring TextMeshPro_Pre53) +FIX: Texts for Right-To-Left languages containing multiple lines was showing extra lines when using \r\n for new lines +FIX: LanguageSourceData.Import_Google was not executing when Auto-Update was set to NEVER (even if ForceUpdate was true) +FIX: Accessing www.text was returning an Encoding error in the latest patch releases (5.4.1p3 and 5.3.5p7) + +2.6.7 +NEW: SpriteRenderer can now be localized +NEW: Translations can have Parameters (e.g. "The winner is {[WINNER}]") and at runtime the tag is replaced by its value by using a local or global parameter +NEW: Local parameters can be set by adding a LocalizationParamsManager component to the gameObject, and it has a list of parameters (i.e. pairs) +NEW: Global parameters can be set by adding a ILocalizationParamsManager class to the LocalizationManager.ParamsManager list +NEW: Example Scene named "Callbacks and Parameters" showing how to modify the translations using Callbacks, Local Parameters and Global Parameters +NEW: Unity UI Dropdowns can be localized by adding the LocalizeDropdown component +NEW: Localized objects (Textures, sprites) can now be loaded from a bundled by registering a ResourceManager_Bundles (see RegisterBundlesManager.cs example) +NEW: ScriptLocalization.Get(term) will now automatically fix it for RTL if the current language is Right-To-Left (use .Get(term, false) to avoid that) +NEW: Parse Terms in Scripts will now match terms in the form "LocalizationManager.GetTranslation" as well as "ScriptLocalization.Get" +NEW: ScriptLocalization.cs is now autogenerated to avoid overriding existing localizations. That file is also now moved into the Assets\I2 folder +NEW: Localize component now has a toogle "Force Localize" that should be true when the translation has parameters to force the localization when the object is enabled +NEW: Tool CharSet now has a button "Copy To Clipboard" +NEW: Local parameters SetParameterValue function now has an optional parameter to skip the localization (useful when setting several parameters in a frame) +NEW: LocalizationParamsManager.OnLocalize() executes the localization with the parameters previusly set. +FIX: Auto-Sync from Google Spreadsheet was not detecting the new versions correctly and wasn't loading from the cache. +FIX: Right-To-Left texts will now correctly handle ritch-text tags (e.g. .. and [FF0000]..[-], etc) +FIX: Expanding/Collapsing the Terms, References or OnLocalize Callback in the Localize component is now remembered +FIX: Changing in the terms selection list by as thats more understandable +FIX: Selecting from the list of term will use the Inferred one. +FIX: Selected Term is now drawn in a light Yellow when it is inferred (previously was dark yellow and wasn't as visible in the Editor Light Theme) +FIX: Renamed button at the bottom of the terms description to make it more understandable. From "Merge" to "Rename". +FIX: When clicking that Merge button, the current term is automatically selected as the term to rename +FIX: Exporting a csv file with auto-translated terms containing (,) was generating extra columns with "[i2auto]". +FIX: ParseTerms in scripts was not detecting the term when the function had spaces (e.g. ScriptLocalization.Get ( "term" )) + +2.6.6 +NEW: Allow multiple Localize component in the same object +NEW: TextMesh Pro localization when changing material (e.g. "ARIAL SDF - Outline") will now also find and use the corresponding font (e.g. "ARIAL SDF") +NEW: Added a Delay to the Auto-update from Google to wait some time before updating. To prevent a lag on startup +NEW: Exporting to a spreadsheet will sort the terms +NEW: Charset Tool allows adding upper and lower versions of characters even when one character variant is not found +FIX: Empty languages can not longer be added by clicking the "Add" button +FIX: Columns with empty language name in Google Spreadsheet or CSV files are now skipped +FIX: Sometimes when playing in the Devices, I2 Localization was using old localization data from PlayerPrefs +FIX: Google Live Synchronization was not detecting correctly the Spreadsheet changes +FIX: Removed a debug log that was printing the entire content of the downloaded spreadsheet, making the log file hard to read +FIX: Removing a Term from the LanguageSource was still displaying it in the Terms List even though they werent there anymore +FIX: Compile warning related missing BuildTargetGroups when detecting installed Plugins +FIX: Translation of UPPERCASE texts are now handled correctly +FIX: Categories/terms matching part of another category will export correctly (e.g. TUTORIAL and TUTORIAL1\Welcome) +FIX: I2 About Window will not longer shown when doing a build or when in batch-mode +FIX: Texts starting with a tag (e.g. [xxx]) are now accepted (useful for NGUI color tags) + +2.6.5 + (requires a new WebService: v4) +NEW: Localize.Term = xxx works now the same that executing Localize.SetTerm(xxx) +NEW: Importing a big Spreadsheet is 20-70 times faster than before +NEW: Added a Translate button next to each language to bulk Translate all missing terms for that language +NEW: Tool to find which characters are used in the languages (useful to create bitmap fonts) +NEW: Adding a term to a Language source without languages, will automatically create "English" +NEW: NGUI and TextMeshPro example scenes now also show changing Fonts based on the language +NEW: Viewing a big LanguageSource is now smoother even when seeing several thousands terms. +NEW: Added a dropdown menu to select the File Encoding (UTF8, ANSI, etc) of the local CSV file +NEW: Use of the WebService to get the Google Translations (previously it was a hack that parsed the google web but failed whenever google changed their look) +FIX: Translating Terms was skipping the first 2 letters +FIX: Translating text with Title Case (This Is An Example) was failing with google +FIX: Translation using Term Category (Tutorial/New Example) +FIX: Removed delay when selecting languageSources caused by the parsing of terms in scripts, now scripts are only parsed when using the Parse Scripts Tool +FIX: TextMeshPro labels will auto-size correctly when switching languages +FIX: 2D Toolkit example scene was corruptedLoca +FIX: localizeComponent: Button "Add term to Source" for a secondary Term will add the term to the source containing the primary term. +FIX: Selecting "None" as a referenced object will no longer produce a null reference exception +FIX: Errors reporting that DontDestroyOnLoad can only be called in Play mode +FIX: Errors when some referenced asset was destroyed and the plugin tried to release it + +2.6.4 +NEW: SVG Importer has been integrated (support for SVGImage and SVGRenderer: localizes VectorGraphic and Material) +NEW: Updated to support TextMeshPro 5.2 beta 3.1 (previous versions need to change TextMeshPro by TextMeshPro_Pre53 in the scripting define symbols) +NEW: I2Languages.prefab has been moved to I2/Resources to make update easier (just delete I2/Common and I2/Localization and import the new package) +NEW: The spreadsheet will not be auto-downloaded when running in the editor as the local language source its supposed to be the most up-to-date +NEW: Better compatibility with UnityScript (added method versions to avoid default parameters, still needs to move I2L to the Plugins folder) +NEW: Inferred terms will be changed to normal terms as soon as a matching term its found +NEW: Added variables LocalizeManager.CurrentRegion and .CurrentRegionCode to get the region part of the language (e.g. "en-US" -> "US") +FIX: When re-starting the game after downloading a modified spreadsheet, it was loading the old translations +FIX: Error shown in the console when playing the game in the editor while a Localize component its shown in the Inspector +FIX: Parsing scenes failed on Unity 5.3+ when scenes where not in Assets folder +FIX: Adding a localize term before adding a target (TMPro label, UI Text, etc) failed to get the inferred Term +FIX: Selecting a Term in the localize Secondary Terms Tab, was changing the label's text to the name of the font/atlas +FIX: TextMeshPro was producing warnings regarding materials when previewing different fonts in Editor and not in Playing mode +FIX: Marking scene dirty when Localize callback and other variables are changed +FIX: Button "Add Term To Source" in the localize inspector was sometime adding the term to the wrong LanguageSource +FIX: Selecting from the term's list made that option disapear the next time the popup was openned +FIX: IOS integragion will now correctly generate Info.plist instead of info.plist +FIX: When copying a Localize component and pasting it in other object will no longer keep a reference to the previous object + +2.6.3 +NEW: IOS Store Integration (adds the languages to the Info.plist file) +NEW: If the localize component, can find its inferred term in a source, it will use that term and stop inferring it +NEW: When adding a term to a source, the scene is parsed and every object inferring that term will start using it +NEW: In LanguageSource inspector, button "Add Terms" and "Remove Term" will use the selected term even if it doesn't have the checkbox ticked +NEW: When auto-generating ScriptLocalization.cs, if the file was moved, the plugin finds it and regenerate it in the new location +NEW: Non printable/special characters in the Terms name are removed from inferred terms to increase legibility +NEW: On the Terms list, the buttons at the bottom (All, None, Used, Not Used, Missing) now select from the visible terms not the full list. +NEW: Button "Show" next to each Language in the LanguageSource to preview all LocalizeComponents in that language +NEW: Clicking on a translation previews how it looks, but selecting another object will now stop the preview and revert to the previus language +FIX: Compile error in TitleCase(s) when building for Windows Store +FIX: Android Store Integration was using a wrong path and now all generated files are in Plugins\Android\I2Localization +FIX: Textfield used to type the new category now allows typing \ and / to create subcategories +FIX: On the Terms list, the filters (Used, NotUsed, Missing) will now work correctly with categorized terms +FIX: Improved performance on the LanguageSource and Localize inspector. Now selecting a big languageSource its around 4 times faster + +2.6.2 +NEW: Plugin now supports Unity 5.3 +NEW: Android Store Integration (adds strings.xml for each language so that the store detects the application is localized) +NEW: When editing a term, Translate and Translate All buttons will translate the Label's text instead of the Term name +NEW: Tool to find No Localized objects now saves the Include and Exclude filters +NEW: Added a Refresh button on top of the Terms list to quickly parse all localized objects in the scene +FIX: Alignment will not revert to "Left" when switching languages. RTL languages will still be adjusted correctly. +FIX: Parse terms was not detecting inferred terms used in Localize components that were not previously opened in the inspector +FIX: Importing spreadsheets with auto-translated terms having multiple lines was adding extra quotes. +FIX: Google translate Language code of all chinese variants was updated to the right code +FIX: Changing Term Categories or Renaming it will now update the language Source +FIX: Add button (+) after the Terms list is now always at the end of the terms, even when a term is expanded +FIX: When changing category in a term that its not in the source, it will display an error box showing why it fails +FIX: Sometimes the Resources folder failed to be created if it was previously created (when generating I2Languages.prefab) +FIX: TextField to edit the Term's description and translation has word wrap enabled to avoid expanding the inspector on long lines +FIX: Vertical scrollbar in the Terms list will now hide when all terms fit in the screen +DEL: Removed checking for installed plugins when scripts are compiled (will only happen at startup or if force from the menu) + +2.6.1 +NEW: Multiline texts can be fixed correctly for RTL languages by specifiying the maximum line length (Localize Inspector) +NEW: Added a checkbox to the Localize Inspector to allow changing alignment for RTL Languages (Right when RTL, Left otherwise) +NEW: Adding API for accessing translated objects: (LanguageSource and Localize).AddAsset, .HasAsset, .FindAsset +NEW: Localize.FinalTerm and .FinalSecondaryTerm are now public variables that can be used in the OnLocalizationCallback +FIX: Switched loc order of Main and SecondaryTerms to localice the text/sprite after the font/atlas was changed +FIX: Editor UI for the Terms translation was overflowing. +FIX: Automatically Importing from Google will not longer clear the localization data +FIX: Faster startup by avoding calling LanguageSourceData.UpdateDictionary multiple times +DEL: Projects using Unity new UI no longer have to add UGUI to their Scripting Define Symbols +DEL: Projects using TextMeshPro no longer have to add TMProBeta to their Scripting Define Symbols +DEL: Cleaned some variables in the Inspectors that were not longer needed + + +Thanks to 00christian00 and vicenterusso for their contributions!! + +2.6.0 +NEW: Localize component now has a "Translate ALL" button +NEW: Term can be flagged as "translated by human" or "translated by Google Translator" +NEW: The Callback in the Localize component now show all public methods of ALL monobehaviors in the Target object +NEW: Tool 'Parse Localized Terms" now allows searching for term usage in the SCENES and in the SCRIPTS +NEW: Localize was optimized to avoid localizing every time the component is enabled +NEW: Localize has now a setting for Pre-Localize on Awake or for waiting until the object is enabled. +NEW: Downloading from google uses now a custom format instead of JSON to avoid parsing errors +NEW: Method LocalizationManager.FixRTL_IfNeeded(string) does RTL fixing if the current language is RTL +NEW: TermsPopup attribute was added to display a string as a popup with the list of terms +FIX: The Plugin Manager window now allows op-out of automatic notification whenever there is a new version. +FIX: Tools tab now shows error messages and warnings +FIX: Corrected compile errors regarding ambiguous calls that happened on some projects/platforms +FIX: Fixed compile error when building for METRO about missing ToTitleCase method in the CultureInfo +FIX: NGUI LanguagePopup component now starts with the saved language instead of the first one in the list +FIX: Chinese Simplified/Traditional are now correctly detected when running on the device +FIX: SetTerm was failing when called on a disabled Object + +Thanks to tacticsofttech for its contribution to the Parse terms in Scripts!! + +2.5.0 +- NEW: Terms can now have separated translations for Touch devices. This allows specifying "tap" instead of "click" +- NEW: Increased performance when browsing the terms list in the Language Source +- NEW: Add a new version to the required Google Service +- NEW: Localize can modify case not only to UPPER and lower but to UpperFirst("This is an example") and to Title ("This Is An Example") +- NEW: Scenes List in the Tools tab can now be collapsed +- FIX: Google Translation was failing for some strings with mixed or title casing e.g. ("Not Enough Rope" was not translating) +- FIX: SetLanguage component Inspector was not showing. Now it displays a dropdown to select the language + +2.4.5 +- NEW: Import/Export CSV files now supports changing the separator character (Comma, Semicolon, Tab) +- NEW: The Localization is now initialized when calling HasLanguage to allow changing the language before requesting any Translation +- NEW: The tool to bake the terms into ScriptLocalization.cs now replaces invalid characters by '_' +- NEW: Terms in ScriptLocalization.cs can now be clamped to a maximum length, Terms that clash are enumatated (Examp_1, Examp_2) +- NEW: When creating languages, those with a variant didn't list the base language, now the list includes the base (e.g English) +- NEW: All languages in the Add Language popup show the Language Code for easier identification +- NEW: Not all international language codes are supported by Google Translator. A fallback language is now provided for those. +- FIX: Translating to some languages by using the "Translate" button on the Localize component was failing for some languages +- FIX: When the Language Source had lot of languages, the Terms list was sometimes displayed empty when scrolling + +2.4.4 +- NEW: Menu: Tools\I2 Localization\About opens a window showing if there is a new version and has shortcuts to useful information +- NEW: Whenever there is a new version the editor automatically alert you. There are options to opt-out or skip a version +- NEW: Clicking the Translate button next to the Term translations will now use the Term name if no other translation is found +- NEW: Language Source Inspector has now better performance showing the list of terms, languages and scenes +- NEW: The list of languages in the Language Source inspector is now expanded to cover the available space +- NEW: LocalizationCallback can now access the static variables CallBackTerm, CallBackSecondaryTerm, MainTranslation, SecondaryTranslation +- FIX: No longer need to call LocalizationManager.UpdateSource and UpdateDictionary before using LocalizationManager.GetTermsList() +- FIX: NGUI example scene had missing references as the example NGUI atlas changed +- FIX: The UpgradeManager was failing on Unity 5 when accessing the BuildTargetGroup.Unknown +- FIX: Importing from CSV and Google Spreadsheets was ignoring the Language Codes and merging those with identical name + +2.4.3 +- NEW: Localizing UGUI sprites now supports sprites of type "Multiple" +- NEW: Menu Options to disable/enable auto plugins detection (menu: Tools/I2 Localization/Enable Plugins/...) +- FIX: Using Localize.SetTerm(term) on the Start or Awake functions will not get reverted to the default value +- FIX: Checks for when Localizing prefabs but the referenced objects are not found. +- FIX: Added support for Unity 5.0.0f3 + +2.4.2 +- NEW: Added an optional bool to allow fixing for RTL when using translation = ScriptLocalization.Get(xxx, true) +- FIX: Realtime translation was failing on some mobile devices +- FIX: Fix error when localizing not empty or non existing terms(this caused Sprites and other Secondary Translations to fail) +- FIX: Terms are now saved after importing them from google + +2.4.1 f2 +- NEW: ScriptLocalization.cs and I2Language.prefab are now autogenerated so they will not override existing localizations +- NEW: The plugin now detects when using TextMeshPro or TextMeshPro beta, and adds a conditional TMProBeta if the beta is used +- NEW: Local Spreadsheets can now be saved as CSV or CSV renamed as TXT (this last avoids the Unity crash when on Mac) +- FIX: OnLocalize Callbacks were not called inside the IDE. +- FIX: Errors when compiling to WebPlayer + +2.4.0 +- NEW: Added support for multiple Global Sources. By default is only "I2Languages" but you can add any other in LocalizationManager.GlobalSources +- NEW: Dynamic Translation work now in the game by using Google Translator to translate chat messages and other dynamic texts. +- NEW: Localize component will detect automatically which sources contain the translation for its term +- NEW: Tool "Find No Localized Labels" can now filter which labels to include/exclude +- NEW: There is now a button to unlink the Google Spreadsheet Key +- NEW: Added quick links in the Source and Localize inspector to access the Forum, Tutorials and Documentation +- NEW: Google WebService now has a version number and the plugin will detect if that version is supported and ask you to upgrade +- FIX: Compile errors that prevented compiling for W8P and METRO +- FIX: Adding a Localize component at run time will now initialize its variables correctly +- FIX: Renamed some Example scripts to avoid conflicts. Also added them to the I2.Loc namespace +- FIX: When secondary translation is not set, it will take the value from the object (e.g. Font Name, Atlas, etc) +- FIX: Tool "Find No Localized Labels" now work with TextMesh, TextMeshPro, UI.Text, etc. +- FIX: Avoided creating multiple PlayerPrefs entries for the same language Source (LastGoogleUpdateXXXX) +- FIX: No longer is possible to rename/create a term if the new term already exists. +- DEL: The console message saying that no terms were found in the scene is now removed and only shown as part of the inspector + +2.3.2 +- NEW: import CSV fill autodetect if the Type or Desc columns are missing +- NEW: SpriteCollection shows now in the Type List in the editor for TK2D +- NEW: Added callback for when a language source is autodated from Google (Event_OnSourceUpdateFromGoogle) +- NEW: Increased translation lookup speed by using a fast string comparer in the dictionary +- NEW: Added a toggle in the Language Source to allow lookup the term with Case Insensitive comparison +- FIX: Terms list on the source will not longer cut off visible elements +- FIX: LoalizationManager.GetLanguageFromCode was returing the code instead of the language name +- FIX: Localization is now skipped if the Main and Secondary translations aren't changed + +2.3.1 +- NEW: Support for TextMeshPro UGUI objects +- NEW: Auto Update from google spreadsheets can now be set to ALWAYS, NEVER, DAILY, WEEKLY, MONTHLY +- NEW: Added functions to get/change the language based on the language code +- NEW: Added functions TryGetTranslation to both LocalizationManager and LanguageSource +- NEW: Language is now only remembered if the user changes it manually and ruled by the device language otherwise. +- FIX: The plugin is now Initialized automatically when requesting a translation or language code +- FIX: Changing the term category was not displaying correctly until the project was reopened +- FIX: Exporting to google as "Add New" was changing the order of languages +- FIX: Compile errors that prevented deploying to Windows Store +- FIX: The editor was not allowing to add language regions (e.g. English (US), English (CA)) +- FIX: Auto Update Google dropdown box was not rendering correctly on all screen sizes + +2.3.0 +- NEW: Google Synchronization now uses a Web Service to avoid using the username/password +- NEW: When playing (even on a device) the game will download the latest changes to the spreadsheet +- NEW: Added support for both the "Classic" and new Google Spreadsheets +- NEW: Button to create a new spreadsheet +- NEW: Importing/Exporting to Google is now an Async operation that doesn't lock the editor and can be canceled +- NEW: Next to the Google Spreadsheet Key there is now a button to open it in the browser +- NEW: Google Import/Export tab will be the default (instead of local file) whenever a spreadsheet Key is set +- NEW: Import/Export can now be set to Replace all Terms, Merge or only add the New Terms +- NEW: A warning is now shown when using a LanguageSource other than the recommended I2Languages.prefab +- NEW: Menu option to open the Global Source I2Languages.prefab (Menu : Tools/I2/Localization/Open GLobal Source) +- NEW: Google Spreadsheet now has a new format, where the description and term type are defined as notes +- FIX: When switching terms or tabs the textfields will not longer keep the previous text +- DEL: Removed support for the old NGUI TextAssets as NGUI has moved into CSV files +- DEL: Removed Google API libraries dependencies +- DEL: The spreadsheet Key is no longer needed. The web service will get all the keys and allow you to select + +2.2.1 b1 +- NEW: Improved Language Recognition. It will now fallback to any region of the same Language +- NEW: Right To Left text rendering example scene +- NEW: DFGUI labels and buttons will be able to localize dynamic and bitmap fonts +- NEW: UI.RawImage Localization +- FIX: UI.Sprite Localization was not loading the Sprite from the Resource folder +- FIX: Up and Down arrows on the Languages list was not ordering the languages +- FIX: Detection of Unity UI (updated to 4.6) +- FIX: Unity UI example scene now uses the 4.6 UI classes +- FIX: Right To Left languages was not detected because the language code wasn't being applied + +2.2.0 +- NEW: Added support for TextMeshPro +- NEW: Terms can now have category and subcategories (e.g. Tutorials/Tutorial1/Startup/Title) +- FIX: NGUI is now detected by looking for the NGUIDebug class instead of UIPanel + +2.1.0 f1 +- NEW: After importing CSV or Google Spreadsheets, the category filter is set to show every term +- NEW: Terms list is now fully expanded on the Language Source +- NEW: Localize Component now has an Option to convert to (Upper, Lower, DontModify) the translations +- FIX: Validations for when importing Spreadsheets with empty columns/languages + +2.1.0 b3 +- NEW: The plugin is now compatible with Unity 5 (up to alpha 11) +- NEW: Register a function in the event LocalizationManager.OnLocalizeEvent to get called when the language changes +- FIX: Updated the example scenes to use the new Language Sources +- FIX: Terms are now saved correctly after importing a CSV or a Google Spreadsheet +- FIX: Allowed methods with one argument to be used as Localization CallBacks +- FIX: SelectNoLocalizedLabels was running every frame after executed +- DEL: Removed button to select CSV file. Now the Import and Export buttons display the open/save dialog + +2.1.0 b2 +- FIX: W8P and Metro compatibility +- FIX: Compiler warnings + +2.1.0 b1 +- NEW: Terms database is now saved within the LanguageSource and not a separated Language Files +- NEW: The selected language is now saved to the PlayerPrefs into "I2 Language" +- NEW: On the Localize Component, creating a key shows a list of terms as you type and their usage +- NEW: On the Localize Component, when changing the translation of a term shows a preview in the target (label/etc) +- NEW: When selecting a Term in the Localize Component, the list can be filtered with the Create Term string +- NEW: On the Localize Component, the Terms List is now sorted Case Insensitive +- NEW: The auto-enable Plugins will set the Script Define Symbols for ALL platforms (IOS,Android,Web,etc) +- NEW: In the Localize Component, the textField thats used for create a key now has a clear button to easy editing +- NEW: If a term is not found when localizing an object the object is left untouched (Previously labels got empty) +- NEW: There is now a button in the Localize Component to quickly rename a Term in the current scene +- DEL: Removing the Editor Databased used to cache the Language Files because all the info is now in the LanguageSource +- FIX: Selecting the CSV file to export will now allow you to create a new file +- FIX: Added a message to explain when exporting fails because the file is Read-Only or its open in other program +- FIX: When exporting to a file inside the project, the "Assets/" section was been skipped +- FIX: Import and Export CSV files now also works on when the editor is set to Web Player +- FIX: Exporting CSV now uses UTF8 encoding to keep special characters +- FIX: The "Open Source" button on the Localize Component now selects the Primary or Secondary term based on the selected tab +- FIX: Terms are now trimmed because spaces at the end/beggining can lead to confusions +- FIX: The list of terms was not showing correctly when selecting MISSING but unselecting USED + +2.0.3 f1 +- NEW: Support for localizing 2D-ToolKit (TextMeshes and Sprites) + +2.0.3 b2 +- NEW: When more than one localization type is available, the plugin allows you to select which component to localize +- FIX: When localizing secondary elements (Atlas, Fonts) the system checks that they still exist to avoid null exceptions +- FIX: Localization of Prefab now have the lowest priority to easy localizing labels/sprites with childs + +2.0.3 b1 +- NEW: The plugin will now check and enable by default all Plugins included in the project (NGUI,DFGUI,UGUI) +- NEW: Global Localization Source (I2Languages) its now empty by default to make it easy to start a new project +- FIX: Moved the Terms used in each example scene to a new Language Source inside each scene +- DEL: Removed Resources.UnloadAsset when changing the localization to avoid unloading referenced assets + +2.0.2 f1 +- NEW: UIFonts fonts can now be localized on NGUI +- FIX: Some example scenes were corrupted +- FIX: Modified the plugin to be compatible with Unity5 + +2.0.1 f1 +- NEW: When an object is set as a translation, the object is also added automatically to the Reference array +- FIX: Importing from Google Spreadsheets will not longer generate 'Description' as a language +- FIX: The editor will show a message if exporting to Google fails +- FIX: The variable is IsLeft2Right was renamed as IsRight2Left to match its behavior +- FIX: Importing Google Spreadsheets no longer duplicate the languages +- FIX: Importing CSV was skipping some languages and not parsing terms after import +- FIX: Converted encoded translations into its ASCII characters ("Il s\x26#39;agit" -> "Il s'agit") +- FIX: Terms Section in the Localize custom editor can be collapsed +- FIX: Localize custom editor becomes more compact and easy to read when several sections are collapsed +- FIX: Expanded Terms in the Terms Tab of the LanguageSource will display an Arrow to make evident that they can be collapsed +- FIX: Terms description is now collapsed automatically when another term is selected +- FIX: The spreadsheet was been opened in the browser even if the Open Spreadsheet after Export flag was disabled + +2.0.0 a2 +- NEW: Support for languagges using Right To Left (RTL) with correct rendering for Arabic languages. +- NEW: Added a toggle on the Localize component to allow discarding RTL processing for selected objects. +- NEW: Languages can now have a Language code to allow for Language Regions (e.g. English Canada vs English United States) +- NEW: Automatic Translation using Google Services will use the language code instead of the Language Name +- NEW: CSV and Google Spreadsheets will save the language code if needed +- FIX: When adding a language to a source the editor will not switch to the Terms tab. That to allows adding several languages at once. +- FIX: Menu options was moved from "Menu > Assets > I2 Localization" to "Tools > I2 Localization" +- FIX: Localization Manager will not allow changing to a language that doesn't exist + +2.0.0 a1 +- NEW: Support for Daikon Forge GUI components +- NEW: Support for uGUI as of the Unity 4.6 beta 2 (this is only available for users in the beta test group) +- NEW: Terms can now have a type (Text, Object, Audio, Font, Sprite) +- NEW: Terms can be set to generate the ScriptLocalization.cs for Compile-Time-Checking of used Terms. +- FIX: Changed the Terms preview based on the Term Type +- FIX: Language Sources can now be in the Resources folder, the scene or bundled +- FIX: Component Localize allows to change the target for localizing more than one component in one GameObject + +1.8.0 +- NEW: Callbacks can be setup on the editor for correct concatenation according to the language +- NEW: Event system for callbacks with reflection +- NEW: Moved all localization calls into events for localizing more types of components without much code change +- FIX: Moved NGUI and UnityStandard localization code into separated files to minimize dependencies + +1.7.0 +- NEW: Localize component has now Primary and Secondary Terms +- NEW: Secondary term allows localizing Fonts on Labels +- NEW: Secondary term allows localizing Atlas on Sprites +- NEW: Support for localizing Prefabs +- NEW: Support for localizing GUITexture + +1.6.0 +- NEW: Added separated components to localize labels and sprites to remove the dependency with the NGUI localization +- NEW: Support for localizing Audio Clips +- NEW: Support for localizing GUIText +- NEW: Support for localizing TextMesh + +1.4.0 +- NEW: The filter on the Terms list can now have multiple values (e.g. "Tuto;Beg" will show only the terms containing "Tuto" or "Beg" +- NEW: Added References to the UILocalize component to be able of store not only text but also objects +- FIX: UILocalize will now show the Localization source it references + +1.3.0 +- NEW: Languages can now be moved up and down to organize them +- NEW: Allowed to filter by category on the Terms list +- FIX: First language in the list becomes now the starting/default language + +1.2.0 +- NEW: Merged Import and Export tabs to allow for external data sources that could be synchronized +- NEW: Ability to categorize Terms to improve organization (e.g. Tutorial, Main, Game Screen, etc) +- NEW: Each term category exports into a separated sheet when linking to Google Spreadsheets +- NEW: Parsing scenes for changing the category on selected terms + +1.0.2 +- FIX: Improved performance on the inspector by removing unneeded Layout functions +- FIX: General Code Cleanup + +1.0.1 +- NEW: Custom Editors now allow Undo the changes on the keys and startingLanguage +- FIX: Removed testing Log calls + +1.0.0 f2 +- FIX: Parsing scenes was executed several times in a row or not at all. +- FIX: Importing CSV will now parse the current scene to show Key Usages +- FIX: A message is shown when Selecting All No Localized labels in scene, if there are none +- FIX: Clicking on the usage number of unused keys will not try to select them +- FIX: Merging Keys will save scenes to avoid loosing changes +- FIX: Sometimes exporting without saving made changes to be lost. Now it automatically saves data if needed. + + +1.0.0 f1 +- NEW: The language TextAsset will be shown in the Language list instead of just the name. That allows finding the asset, moving it to another folder, etc +- NEW: Languages can now be also added by dragging a TextAsset into the Add Language bars. +- NEW: Keys that are are missing the translation in any of the languages are highlighted in the Keys List by making them Italic and Darker +- DEL: Removed button Update NGUI in the Key list. All data will be saved automatically when the inspector view changes to another object or the editor is closed +- FIX: Filter for list of keys now is case insensitive. +- FIX: Auto opening google Spreadsheet after export was opening two web pages. +- FIX: Deleting a language will not only unlink the TextAsset from NGUI but will also delete the text file. +- FIX: If a TextAsset is manually deleted, but NGUI still keeps a reference in the language list, that language is now skipped +- FIX: Removed compile warnings when in WebPlayer platform +- FIX: Removed exception when adding keys before creating a language +- FIX: Adding multiple keys to NGUI was only adding the first one and returning an exception + +1.0.0 b2 +- NEW: Added a TextField to filter the list of keys. +- NEW: Option to auto open the Google Spreadsheet doc after exporting. +- NEW: Added a centralized Error reporting. +- NEW: Option to save or not the google password. +- NEW: Added a menu option to quickly access the help. (Help\I2 Localization For NGUI). +- NEW: Key list show a warning icon on the keys that are used in the scenes but are not in the NGUI files. +- FIX: An error will show when contacting Google Translation on the WebPlayer Platform as its not yet supported. +- FIX: Google public spreadsheet Key is now remembered when the editor opens. + +1.0.0 b1 +- NEW: First Version including core features. diff --git a/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt.meta b/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt.meta new file mode 100644 index 00000000..abf09a8f --- /dev/null +++ b/popcorn/Assets/I2/Localization/I2 Localization - Readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b559e47b4c944104abfbfb9c64dc13bc +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts.meta b/popcorn/Assets/I2/Localization/Scripts.meta new file mode 100644 index 00000000..6f8123d6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 379147f1ab5034075a5b1578456aca00 +folderAsset: yes +timeCreated: 1461137613 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Configurables.meta b/popcorn/Assets/I2/Localization/Scripts/Configurables.meta new file mode 100644 index 00000000..a1cffd7c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Configurables.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8f9a3530624fd5c47a2dc16eb641ddb8 +folderAsset: yes +timeCreated: 1520745251 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Configurables/PersistentStorage.cs b/popcorn/Assets/I2/Localization/Scripts/Configurables/PersistentStorage.cs new file mode 100644 index 00000000..b17c6aa6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Configurables/PersistentStorage.cs @@ -0,0 +1,286 @@ +using System; +using System.Globalization; +using System.IO; +using System.Text; +using UnityEngine; + +namespace I2.Loc +{ + public static class PersistentStorage + { + static I2CustomPersistentStorage mStorage; + + public enum eFileType { Raw, Persistent, Temporal, Streaming } + + #region PlayerPrefs + public static void SetSetting_String(string key, string value) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + mStorage.SetSetting_String(key, value); + } + + public static string GetSetting_String(string key, string defaultValue) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.GetSetting_String(key, defaultValue); + } + + public static void DeleteSetting(string key) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + mStorage.DeleteSetting(key); + } + + public static bool HasSetting( string key ) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.HasSetting(key); + } + + public static void ForceSaveSettings() + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + mStorage.ForceSaveSettings(); + } + + #endregion + + #region File Management + + public static bool CanAccessFiles() + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.CanAccessFiles(); + } + + public static bool SaveFile(eFileType fileType, string fileName, string data, bool logExceptions = true) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.SaveFile(fileType, fileName, data, logExceptions); + } + + public static string LoadFile(eFileType fileType, string fileName, bool logExceptions=true) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.LoadFile(fileType, fileName, logExceptions); + } + + public static bool DeleteFile(eFileType fileType, string fileName, bool logExceptions = true) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.DeleteFile(fileType, fileName, logExceptions); + } + + public static bool HasFile(eFileType fileType, string fileName, bool logExceptions = true) + { + if (mStorage == null) mStorage = new I2CustomPersistentStorage(); + return mStorage.HasFile(fileType, fileName, logExceptions); + } + + #endregion + } + + public abstract class I2BasePersistentStorage + { + #region PlayerPrefs + public virtual void SetSetting_String(string key, string value) + { + try + { + // Use PlayerPrefs, but if the data is bigger than the limit, split it into multiple entries + var len = value.Length; + int maxLength = 8000; + if (len<=maxLength) + { + PlayerPrefs.SetString(key, value); + } + else + { + int numSections = Mathf.CeilToInt(len / (float)maxLength); + for (int i=0; i mSpecializationsFallbacks; + + public virtual void InitializeSpecializations() + { + mSpecializations = new[] { "Any", "PC", "Touch", "Controller", "VR", + "XBox", "PS4", "OculusVR", "ViveVR", "GearVR", "Android", "IOS" }; + mSpecializationsFallbacks = new Dictionary(System.StringComparer.Ordinal) + { + { "XBox", "Controller" }, { "PS4", "Controller" }, + { "OculusVR", "VR" }, { "ViveVR", "VR" }, { "GearVR", "VR" }, + { "Android", "Touch" }, { "IOS", "Touch" } + }; + } + + public virtual string GetCurrentSpecialization() + { + if (mSpecializations == null) + InitializeSpecializations(); + + #if UNITY_ANDROID + return "Android"; + #elif UNITY_IOS + return "IOS"; + #elif UNITY_PS4 + return "PS4"; + #elif UNITY_XBOXONE + return "XBox"; + #elif UNITY_STANDALONE || UNITY_WEBGL + return "PC"; + #else + return (Input.touchSupported ? "Touch" : "PC"); + #endif + } + + public virtual string GetFallbackSpecialization(string specialization) + { + if (mSpecializationsFallbacks == null) + InitializeSpecializations(); + + string fallback; + if (mSpecializationsFallbacks.TryGetValue(specialization, out fallback)) + return fallback; + return "Any"; + } + } + public class SpecializationManager : BaseSpecializationManager + { + public static SpecializationManager Singleton = new SpecializationManager(); + + private SpecializationManager() + { + InitializeSpecializations(); + } + + public static string GetSpecializedText(string text, string specialization = null) + { + var idxFirst = text.IndexOf("[i2s_", StringComparison.Ordinal); + if (idxFirst < 0) + return text; + + if (string.IsNullOrEmpty(specialization)) + specialization = Singleton.GetCurrentSpecialization(); + + while (!string.IsNullOrEmpty(specialization) && specialization != "Any") + { + var tag = "[i2s_" + specialization + "]"; + int idx = text.IndexOf(tag, StringComparison.Ordinal); + if (idx < 0) + { + specialization = Singleton.GetFallbackSpecialization(specialization); + continue; + } + + idx += tag.Length; + var idxEnd = text.IndexOf("[i2s_", idx, StringComparison.Ordinal); + if (idxEnd < 0) idxEnd = text.Length; + + return text.Substring(idx, idxEnd - idx); + } + + return text.Substring(0, idxFirst); + } + + public static string SetSpecializedText(string text, string newText, string specialization) + { + if (string.IsNullOrEmpty(specialization)) + specialization = "Any"; + if ((text==null || !text.Contains("[i2s_")) && specialization=="Any") + { + return newText; + } + + var dict = GetSpecializations(text); + dict[specialization] = newText; + + return SetSpecializedText(dict); + } + + public static string SetSpecializedText( Dictionary specializations ) + { + string text; + if (!specializations.TryGetValue("Any", out text)) + text = string.Empty; + + foreach (var kvp in specializations) + { + if (kvp.Key != "Any" && !string.IsNullOrEmpty(kvp.Value)) + text += "[i2s_" + kvp.Key + "]" + kvp.Value; + } + return text; + } + + public static Dictionary GetSpecializations(string text, Dictionary buffer = null) + { + if (buffer == null) + buffer = new Dictionary(StringComparer.Ordinal); + else + buffer.Clear(); + + if (text==null) + { + buffer["Any"] = ""; + return buffer; + } + + var idxFirst = 0; + var idxEnd = text.IndexOf("[i2s_", StringComparison.Ordinal); + if (idxEnd < 0) + idxEnd=text.Length; + + buffer["Any"] = text.Substring(0, idxEnd); + idxFirst = idxEnd; + + while (idxFirst list=null) + { + if (text == null) + return; + + if (list == null) + list = new List(); + + if (!list.Contains("Any")) + list.Add("Any"); + + var idxFirst = 0; + while (idxFirst mDelayedEditorCallbacks = new List(); + + #region Delayed Editor Callback + + public static void DelayedCall( Action action ) + { + if (mDelayedEditorCallbacks.Count == 0) + EditorApplication.update += OnDelayedCall; + + mDelayedEditorCallbacks.Add(action); + } + + static void OnDelayedCall() + { + EditorApplication.update -= OnDelayedCall; + var calls = mDelayedEditorCallbacks.ToArray(); + mDelayedEditorCallbacks.Clear(); + + foreach (var call in calls) + call(); + } + + + #endregion + + #region Header + public delegate void fnOnToggled(bool enabled); + static public bool DrawHeader (string text, string key, bool ShowToggle=false, bool ToggleState=false, fnOnToggled OnToggle = null, string HelpURL=default(string), Color disabledColor = default(Color)) + { + bool state = EditorPrefs.GetBool(key, false); + + bool newState = DrawHeader (text, state, ShowToggle, ToggleState, OnToggle, HelpURL, disabledColor); + + if (state!=newState) EditorPrefs.SetBool(key, newState); + return newState; + } + + static public bool DrawHeader (string text, bool state, bool ShowToggle=false, bool ToggleState=false, fnOnToggled OnToggle = null, string HelpURL=default(string), Color disabledColor = default(Color), bool allowCollapsing = true) + { + GUIStyle Style = new GUIStyle(EditorStyles.foldout); + Style.richText = true; + EditorStyles.foldout.richText = true; + if (state) + { + //GUI.backgroundColor=DarkGray; + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea/*, GUILayout.Height(1)*/); + GUILayout.BeginHorizontal(); + if (!string.IsNullOrEmpty(text)) + { + if (allowCollapsing) + state = GUILayout.Toggle(state, text, Style, GUILayout.ExpandWidth(true)); + else + GUILayout.Label(text, GUILayout.ExpandWidth(true)); + } + + if (!string.IsNullOrEmpty(HelpURL)) + { + if (GUILayout.Button (Icon_Help, EditorStyles.label, GUILayout.ExpandWidth(false))) + Application.OpenURL(HelpURL); + } + if (ShowToggle) + { + GUI.changed = false; + bool newBool = GUILayout.Toggle(ToggleState, "", "OL Toggle", GUILayout.ExpandWidth(false)); + if (GUI.changed && OnToggle!=null) + OnToggle(newBool); + } + GUILayout.EndHorizontal(); + GUILayout.Space(2); + + //GUI.backgroundColor = Color.white; + } + else + { + if (ShowToggle && !ToggleState) + GUI.color = disabledColor; + + GUILayout.BeginHorizontal("Box"); + //GUILayout.BeginHorizontal(EditorStyles.toolbar); + state = GUILayout.Toggle(state, text, Style, GUILayout.ExpandWidth(true)); + if (ShowToggle) + { + GUI.changed = false; + bool newBool = GUILayout.Toggle(ToggleState, "", "OL Toggle", GUILayout.ExpandWidth(false)); + if (GUI.changed && OnToggle!=null) + OnToggle(newBool); + } + GUILayout.EndHorizontal(); + GUI.color = White; + } + return state; + } + + static public void CloseHeader() + { + GUILayout.EndHorizontal(); + } + + public static void OnGUI_Footer(string pluginName, string pluginVersion, string helpURL, string documentationURL, string assetStoreURL) + { + GUILayout.BeginHorizontal(); + string versionTip = ""; + /*if (I2Analytics.HasNewVersion(pluginName)) + { + versionTip = "There is a new version of " + pluginName + ".\nClick here for more details"; + if (GUILayout.Button(new GUIContent("", versionTip), EditorStyles.label, GUILayout.Width(25))) + I2AboutWindow.DoShowScreen(); + + var rect = GUILayoutUtility.GetLastRect(); + rect.yMin = rect.yMax - 25; + rect.xMax = rect.xMin + 25; + rect.y += 3; + GUITools.DrawSkinIcon(rect, "CN EntryWarnIcon", "CN EntryWarn"); + }*/ + + if (GUILayout.Button(new GUIContent("v" + pluginVersion, versionTip), EditorStyles.miniLabel)) + { + Application.OpenURL(assetStoreURL); + //I2AboutWindow.DoShowScreen(); + } + + GUILayout.FlexibleSpace(); + + if (GUILayout.Button("Ask a Question", EditorStyles.miniLabel)) + Application.OpenURL(helpURL); + + GUILayout.Space(10); + + if (GUILayout.Button("Documentation", EditorStyles.miniLabel)) + Application.OpenURL(documentationURL); + GUILayout.EndHorizontal(); + } + + + #endregion + + #region Content + + static public void BeginContents () + { + EditorGUILayout.BeginHorizontal(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.MinHeight(10f)); + GUILayout.Space(2f); + EditorGUILayout.BeginVertical(); + GUILayout.Space(2f); + } + + static public void EndContents () { EndContents(true); } + static public void EndContents ( bool closeHeader ) + { + GUILayout.Space(2f); + EditorGUILayout.EndVertical(); + GUILayout.Space(3f); + GUILayout.EndHorizontal(); + + if (closeHeader) CloseHeader(); + } + + #endregion + + #region Tabs + + static public void DrawTabs( SerializedProperty mProperty, GUIStyle Style=null, int height=25 ) + { + int curIndex = mProperty.enumValueIndex; + int newIndex = DrawTabs( curIndex, mProperty.enumNames, Style, height); + + if (curIndex!=newIndex) + mProperty.enumValueIndex = newIndex; + } + + static public int DrawTabs( int Index, string[] Tabs, GUIStyle Style=null, int height=25, bool expand = true) + { + GUIStyle MyStyle = new GUIStyle(Style!=null?Style:GUI.skin.FindStyle("dragtab")); + MyStyle.fixedHeight=0; + + GUILayout.BeginHorizontal(); + for (int i=0; i0) + { + string text = Tabs[i].Substring(0, idx); + string tooltip = Tabs[i].Substring(idx+1); + if ( GUILayout.Toggle(Index==i, new GUIContent(text, tooltip), MyStyle, GUILayout.Height(height), GUILayout.ExpandWidth(expand)) && Index!=i) + { + Index=i; + GUI.FocusControl(string.Empty); + } + } + else + { + if ( GUILayout.Toggle(Index==i, Tabs[i], MyStyle, GUILayout.Height(height), GUILayout.ExpandWidth(expand)) && Index!=i) + { + Index=i; + GUI.FocusControl(string.Empty); + } + } + } + GUILayout.EndHorizontal(); + return Index; + } + + static public void DrawShadowedTabs( SerializedProperty mProperty, GUIStyle Style=null, int height=25, bool expand=true ) + { + int curIndex = mProperty.enumValueIndex; + int newIndex = DrawShadowedTabs( curIndex, mProperty.enumNames, height, expand); + + if (curIndex!=newIndex) + mProperty.enumValueIndex = newIndex; + } + + static public int DrawShadowedTabs( int Index, string[] Tabs, int height = 25, bool expand=true ) + { + GUI.backgroundColor=Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor=Color.white; + GUILayout.Space(2); + Index = DrawTabs( Index, Tabs, height: height, expand:expand ); + GUILayout.EndVertical(); + return Index; + } + + static public int DrawTabs( int Index, Texture2D[] Tabs, GUIStyle Style, int height ) + { + GUIStyle MyStyle = new GUIStyle(Style!=null?Style:GUI.skin.FindStyle("dragtab")); + MyStyle.fixedHeight=0; + + //width = Mathf.Max (width, height * Tabs[0].width/(float)Tabs[0].height); + + GUILayout.BeginHorizontal(); + float width = (EditorGUIUtility.currentViewWidth-(MyStyle.border.left+MyStyle.border.right)*(Tabs.Length-1)) / Tabs.Length; + for (int i=0; i1) + GUILayout.Space (18); + } + else + { + if (GUILayout.Button( "\u25B2", EditorStyles.toolbarButton, GUILayout.Width(18))) + MoveUpElement = i; + } + + GUILayout.EndHorizontal(); + } + + GUILayout.BeginHorizontal(EditorStyles.toolbar); + Object NewObj = EditorGUILayout.ObjectField( null, typeof(Object), allowSceneObj, GUILayout.ExpandWidth(true)); + if (testAdd != null) + { + NewObj = testAdd; + } + + if (!allowResources && NewObj != null) + { + var path = AssetDatabase.GetAssetPath(NewObj); + if (path != null && path.Contains("/Resources/")) + NewObj = null; + } + if (NewObj && (allowDuplicates || !ObjectsArrayHasReference(PropArray, NewObj))) + { + int Index = PropArray.arraySize; + PropArray.InsertArrayElementAtIndex( Index ); + PropArray.GetArrayElementAtIndex(Index).objectReferenceValue = NewObj; + hasChanged = true; + } + GUILayout.EndHorizontal(); + + if (DeleteElement>=0) + { + PropArray.DeleteArrayElementAtIndex( DeleteElement ); + //PropArray.DeleteArrayElementAtIndex( DeleteElement ); + hasChanged = true; + } + + if (MoveUpElement>=0) + { + PropArray.MoveArrayElement(MoveUpElement, MoveUpElement-1); + hasChanged = true; + } + + GUILayout.EndVertical(); + return hasChanged; + } + + static public bool ObjectsArrayHasReference(SerializedProperty PropArray, Object obj) + { + for (int i = 0, imax = PropArray.arraySize; i < imax; ++i) + { + SerializedProperty Prop = PropArray.GetArrayElementAtIndex(i); + if (Prop.objectReferenceValue == obj) + return true; + } + return false; + } + + + #endregion + + #region Toggle + + static public int ToggleToolbar( int Index, string[] Options ) + { + GUILayout.BeginHorizontal(); + for (int i=0; i 0) + return false; + + // We are not interested in Prefab, unless they are Prefab Instances + PrefabType pfType = PrefabUtility.GetPrefabType(Obj); + if(pfType == PrefabType.Prefab || pfType == PrefabType.ModelPrefab) + return false; + + // If the database contains the object then its not an scene object, + // but the previous test should get rid of them, so I will just comment this + // unless an false positive object is found in the future + //if (AssetDatabase.Contains(Obj)) + // return false; + + return true;*/ + } + + public static IEnumerable SceneRoots() + { + var prop = new HierarchyProperty(HierarchyType.GameObjects); + var expanded = new int[0]; + while (prop.Next(expanded)) { + yield return prop.pptrValue as GameObject; + } + } + + public static List SceneRootsList() + { + return new List(SceneRoots()); + } + + public static IEnumerable AllSceneObjects() + { + var queue = new Queue(); + + foreach (var root in SceneRoots()) { + var tf = root.transform; + yield return tf; + queue.Enqueue(tf); + } + + while (queue.Count > 0) { + foreach (Transform child in queue.Dequeue()) { + yield return child; + queue.Enqueue(child); + } + } + } + + public static string GetScenePath(Transform tr) + { + if (tr==null) + return string.Empty; + + string path = tr.name; + while (tr.parent != null) + { + tr = tr.parent; + path = tr.name + "/" + path; + } + return path; + } + + public static Transform FindObjectInEditor( string scenePath ) + { + if (string.IsNullOrEmpty(scenePath)) + return null; + + int index = scenePath.IndexOfAny("/\\".ToCharArray()); + string first = index<0 ? scenePath : scenePath.Substring(0, index); + + foreach (var root in AllSceneObjects()) + if (root.name==first) + { + if (index<0) + return root; + + return root.Find(scenePath.Substring(index+1)); + } + return null; + } + + + public static GUIContent Icon_Help { + get{ + if (mIconHelp == null) + mIconHelp = EditorGUIUtility.IconContent("_Help"); + return mIconHelp; + } + } + static GUIContent mIconHelp; + + public static GUIStyle FindSkinStyle(string name) + { + var allStyles = GUI.skin.customStyles; + for (int i = 0, imax = allStyles.Length; i < imax; ++i) + { + if (allStyles[i].name == name) + return allStyles[i]; + } + return null; + } + public static void DrawSkinIcon(Rect rect, params string[] iconNames) + { + foreach (var icon in iconNames) + { + var style = FindSkinStyle(icon); + if (style == null || style.normal == null || style.normal.background == null) + continue; + + GUI.DrawTexture(rect, style.normal.background); + return; + } + //Debug.Log("unable to find icon"); + } + + #endregion + + #region Angle Drawer + private static Vector2 mAngle_lastMousePosition; + static Texture mAngle_TextureCircle; + static Texture pAngle_TextureCircle { + get{ + if (mAngle_TextureCircle) return mAngle_TextureCircle; + mAngle_TextureCircle = GUI.skin.GetStyle("CN CountBadge").normal.background; + return mAngle_TextureCircle; + } + } + + public static float FloatAngle(Rect rect, float value) + { + return FloatAngle(rect, value, -1, -1, -1); + } + + public static float FloatAngle(Rect rect, float value, float snap) + { + return FloatAngle(rect, value, snap, -1, -1); + } + + public static float FloatAngle(Rect rect, float value, float snap, float min, float max) + { + int id = GUIUtility.GetControlID(FocusType.Passive, rect); + + Rect knobRect = new Rect(rect.x, rect.y, rect.height, rect.height); + + float delta; + if (min != max) + delta = (max - min) / 360; + else + delta = 1; + + if (Event.current != null) + { + if (Event.current.type == EventType.MouseDown && knobRect.Contains(Event.current.mousePosition)) + { + GUIUtility.hotControl = id; + mAngle_lastMousePosition = Event.current.mousePosition; + } + else if (Event.current.type == EventType.MouseUp && GUIUtility.hotControl == id) + GUIUtility.hotControl = -1; + else if (Event.current.type == EventType.MouseDrag && GUIUtility.hotControl == id) + { + Vector2 move = mAngle_lastMousePosition - Event.current.mousePosition; + value += delta * (-move.x - move.y); + + if (snap > 0) + { + float mod = value % snap; + + if (mod < delta * 3 || Mathf.Abs(mod - snap) < delta * 3) + value = Mathf.Round(value / snap) * snap; + } + + mAngle_lastMousePosition = Event.current.mousePosition; + GUI.changed = true; + } + } + + if (pAngle_TextureCircle) GUI.DrawTexture(knobRect, pAngle_TextureCircle); + Matrix4x4 matrix = GUI.matrix; + + if (min != max) + GUIUtility.RotateAroundPivot(value * (360 / (max - min)), knobRect.center); + else + GUIUtility.RotateAroundPivot(value, knobRect.center); + + knobRect.height = 5; + knobRect.width = 5; + if (pAngle_TextureCircle) GUI.DrawTexture(knobRect, pAngle_TextureCircle); + GUI.matrix = matrix; + + Rect label = new Rect(rect.x + rect.height, rect.y + rect.height / 2 - 9, rect.height, 18); + value = EditorGUI.FloatField(label, value); + + if (min != max) + value = Mathf.Clamp(value, min, max); + + return value; + } + + public static float AngleCircle(Rect rect, float angle, float snap, float min, float max, Texture background=null, Texture knobLine=null) + { + Rect knobRect = new Rect(rect.x, rect.y, rect.height, rect.height); + + float delta; + if (min != max) + delta = (max - min) / 360; + else + delta = 1; + + if (Event.current != null && GUIUtility.hotControl<=0 && (Event.current.type==EventType.MouseDown || Event.current.type==EventType.MouseDrag) && knobRect.Contains(Event.current.mousePosition)) + { + angle = Vector2.Angle( Vector2.right, Event.current.mousePosition-knobRect.center); + if (Event.current.mousePosition.y 0) + { + float mod = Mathf.Repeat(angle, snap); + + if (mod < delta * 3 || Mathf.Abs(mod - snap) < delta * 3) + angle = Mathf.Round(angle / snap) * snap; + } + + GUI.changed = true; + } + + if (background==null) background = pAngle_TextureCircle; + if (background) GUI.DrawTexture (knobRect, background); + + Matrix4x4 matrix = GUI.matrix; + + if (min != max) + GUIUtility.RotateAroundPivot(angle * (360 / (max - min))+90, knobRect.center); + else + GUIUtility.RotateAroundPivot(angle+90, knobRect.center); + + float Radius = Mathf.Min (knobRect.width, knobRect.height) * 0.5f; + knobRect.x = knobRect.x + 0.5f * knobRect.width - 4; + knobRect.y += 2; + knobRect.width = 8; + knobRect.height = Radius+2; + if (knobLine == null) + knobLine = GUI.skin.FindStyle ("MeBlendPosition").normal.background; + if (knobLine) GUI.DrawTexture(knobRect, knobLine); + GUI.matrix = matrix; + + return Mathf.Repeat(angle, 360); + } + #endregion + + #region Unity Version branching + + public static string Editor_GetCurrentScene() + { + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + return EditorApplication.currentScene; + #else + return SceneManager.GetActiveScene().path; + #endif + } + + public static void Editor_MarkSceneDirty() + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene()); + #else + EditorApplication.MarkSceneDirty(); + #endif + } + + public static void Editor_SaveScene() + { + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + EditorApplication.SaveScene (); + #else + EditorSceneManager.SaveOpenScenes(); + #endif + } + + public static void Editor_OpenScene( string sceneName ) + { + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + EditorApplication.OpenScene( sceneName ); + #else + EditorSceneManager.OpenScene(sceneName); + #endif + } + + #endregion + + #region Reflection + static public object Reflection_InvokeMethod ( object instanceObject, string methodName, params object[] p_args ) + { + BindingFlags _flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static; + MethodInfo mi = instanceObject.GetType().GetMethods( _flags ).Where( x => x.Name==methodName ).FirstOrDefault(); + if (mi == null) return null; + return mi.Invoke( instanceObject, p_args ); + } + static public object Reflection_InvokeMethod ( Type targetType, string methodName, params object[] p_args ) + { + BindingFlags _flags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static; + MethodInfo mi = targetType.GetMethods( _flags ).Where( x => x.Name==methodName ).FirstOrDefault(); + if (mi == null) return null; + return mi.Invoke( null, p_args ); + } + + + public static object s_RecycledEditor; + public static string TextField ( Rect position, string text, int maxLength, GUIStyle style, int controlID ) + { + if (s_RecycledEditor==null) + { + FieldInfo info = typeof(EditorGUI).GetField("s_RecycledEditor", BindingFlags.NonPublic | BindingFlags.Static); + s_RecycledEditor = info.GetValue(null); + } + + if (s_RecycledEditor == null) + return ""; + + return Reflection_InvokeMethod( typeof( EditorGUI ), "DoTextField", s_RecycledEditor, controlID, position, text, style, null, false, false, false, false ) as string; + } + + static public void RepaintInspectors() + { + EditorApplication.update -= RepaintInspectors; + var assemblyEditor = Assembly.GetAssembly(typeof(Editor)); + var typeInspectorWindow = assemblyEditor.GetType("UnityEditor.InspectorWindow"); + typeInspectorWindow.GetMethod("RepaintAllInspectors", BindingFlags.NonPublic | BindingFlags.Static).Invoke(null, null); + } + + public static void ScheduleRepaintInspectors() + { + EditorApplication.update += RepaintInspectors; + } + + + #endregion + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/EditorTools.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/EditorTools.cs.meta new file mode 100644 index 00000000..de59c6b6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/EditorTools.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df33c1000ac895241a433812e40a2096 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors.meta new file mode 100644 index 00000000..4157e6fb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a500716e59f61824ba1fa6b418ce31a7 +folderAsset: yes +timeCreated: 1461137613 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs new file mode 100644 index 00000000..474024af --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs @@ -0,0 +1,20 @@ +using UnityEditor; + +namespace I2.Loc +{ + [CustomEditor(typeof(LanguageSourceAsset))] + public class LanguageSourceAssetInspector : LocalizationEditor + { + void OnEnable() + { + var newSource = target as LanguageSourceAsset; + SerializedProperty propSource = serializedObject.FindProperty("mSource"); + + Custom_OnEnable(newSource.mSource, propSource); + } + public override LanguageSourceData GetSourceData() + { + return (target as LanguageSourceAsset).mSource; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs.meta new file mode 100644 index 00000000..ef8182c4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceAssetInspector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f03a75bf70a306a4fb36646f24c1c1f1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs new file mode 100644 index 00000000..14c1a88d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs @@ -0,0 +1,22 @@ +using UnityEditor; + +namespace I2.Loc +{ + [CustomEditor(typeof(LanguageSource))] + public class LanguageSourceInspector : LocalizationEditor + { + void OnEnable() + { + var newSource = target as LanguageSource; + SerializedProperty propSource = serializedObject.FindProperty("mSource"); + + Custom_OnEnable(newSource.mSource, propSource); + } + + public override LanguageSourceData GetSourceData() + { + return (target as LanguageSource).mSource; + } + + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs.meta new file mode 100644 index 00000000..ce993bdf --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LanguageSourceInspector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a441ed994a43a0a4a9d33be67a8d3f15 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs new file mode 100644 index 00000000..9b145ff8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs @@ -0,0 +1,199 @@ +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public abstract partial class LocalizationEditor : Editor + { + #region Variables + + SerializedProperty mProp_Assets, mProp_Languages, + mProp_Google_WebServiceURL, mProp_GoogleUpdateFrequency, mProp_GoogleUpdateDelay, mProp_Google_SpreadsheetKey, mProp_Google_SpreadsheetName, mProp_Google_Password, + mProp_Spreadsheet_LocalFileName, mProp_Spreadsheet_LocalCSVSeparator, mProp_CaseInsensitiveTerms, mProp_Spreadsheet_LocalCSVEncoding, + mProp_OnMissingTranslation, mProp_AppNameTerm, mProp_IgnoreDeviceLanguage, mProp_Spreadsheet_SpecializationAsRows, mProp_GoogleInEditorCheckFrequency, + mProp_HighlightLocalizedTargets, mProp_GoogleLiveSyncIsUptoDate, mProp_AllowUnloadingLanguages, mProp_GoogleUpdateSynchronization; + + public static LanguageSourceData mLanguageSource; + public static Object mLanguageSourceObject; + public static LocalizationEditor mLanguageSourceEditor; + public static Editor mCurrentInspector; + + static bool mIsParsing; // This is true when the editor is opening several scenes to avoid reparsing objects + + #endregion + + #region Variables GUI + + GUIStyle Style_ToolBar_Big, Style_ToolBarButton_Big; + + + public GUISkin CustomSkin; + + static Vector3 mScrollPos_Languages; + public static string mLanguages_NewLanguage = ""; + + #endregion + + #region Styles + + public static GUIStyle Style_WrapTextField { + get{ + if (mStyle_WrapTextField==null) + { + mStyle_WrapTextField = new GUIStyle(EditorStyles.textArea); + mStyle_WrapTextField.wordWrap = true; + mStyle_WrapTextField.fixedHeight = 0; + } + return mStyle_WrapTextField; + } + } + static GUIStyle mStyle_WrapTextField; + + #endregion + + #region Inspector + + public void Custom_OnEnable( LanguageSourceData sourceData, SerializedProperty propSource) + { + bool ForceParse = mLanguageSource != sourceData; + + mLanguageSource = sourceData; + mLanguageSourceEditor = this; + mCurrentInspector = this; + + if (!LocalizationManager.Sources.Contains(mLanguageSource)) + LocalizationManager.UpdateSources(); + + mProp_Assets = propSource.FindPropertyRelative("Assets"); + mProp_Languages = propSource.FindPropertyRelative("mLanguages"); + mProp_Google_WebServiceURL = propSource.FindPropertyRelative("Google_WebServiceURL"); + mProp_GoogleUpdateFrequency = propSource.FindPropertyRelative("GoogleUpdateFrequency"); + mProp_GoogleUpdateSynchronization = propSource.FindPropertyRelative("GoogleUpdateSynchronization"); + mProp_GoogleInEditorCheckFrequency = propSource.FindPropertyRelative("GoogleInEditorCheckFrequency"); + mProp_GoogleUpdateDelay = propSource.FindPropertyRelative("GoogleUpdateDelay"); + mProp_Google_SpreadsheetKey = propSource.FindPropertyRelative("Google_SpreadsheetKey"); + mProp_Google_SpreadsheetName = propSource.FindPropertyRelative("Google_SpreadsheetName"); + mProp_Google_Password = propSource.FindPropertyRelative("Google_Password"); + mProp_CaseInsensitiveTerms = propSource.FindPropertyRelative("CaseInsensitiveTerms"); + mProp_Spreadsheet_LocalFileName = propSource.FindPropertyRelative("Spreadsheet_LocalFileName"); + mProp_Spreadsheet_LocalCSVSeparator = propSource.FindPropertyRelative("Spreadsheet_LocalCSVSeparator"); + mProp_Spreadsheet_LocalCSVEncoding = propSource.FindPropertyRelative("Spreadsheet_LocalCSVEncoding"); + mProp_Spreadsheet_SpecializationAsRows = propSource.FindPropertyRelative("Spreadsheet_SpecializationAsRows"); + mProp_OnMissingTranslation = propSource.FindPropertyRelative("OnMissingTranslation"); + mProp_AppNameTerm = propSource.FindPropertyRelative("mTerm_AppName"); + mProp_IgnoreDeviceLanguage = propSource.FindPropertyRelative("IgnoreDeviceLanguage"); + mProp_GoogleLiveSyncIsUptoDate = propSource.FindPropertyRelative("GoogleLiveSyncIsUptoDate"); + mProp_AllowUnloadingLanguages = propSource.FindPropertyRelative("_AllowUnloadingLanguages"); + + if (!mIsParsing) + { + if (string.IsNullOrEmpty(mLanguageSource.Google_SpreadsheetKey)) + mSpreadsheetMode = eSpreadsheetMode.Local; + else + mSpreadsheetMode = eSpreadsheetMode.Google; + + mCurrentViewMode = mLanguageSource.mLanguages.Count>0 ? eViewMode.Keys : eViewMode.Languages; + + UpdateSelectedKeys(); + + if (ForceParse || mParsedTerms.Count < mLanguageSource.mTerms.Count) + { + mSelectedCategories.Clear(); + ParseTerms(true, false, true); + } + } + ScheduleUpdateTermsToShowInList(); + LoadSelectedCategories(); + //UpgradeManager.EnablePlugins(); + } + + void OnDisable() + { + //LocalizationManager.LocalizeAll(); + SaveSelectedCategories(); + mLanguageSourceEditor = null; + if (mCurrentInspector==this) mCurrentInspector = null; + } + + + void UpdateSelectedKeys() + { + // Remove all keys that are not in this source + string trans; + for (int i=mSelectedKeys.Count-1; i>=0; --i) + if (!mLanguageSource.TryGetTranslation(mSelectedKeys[i], out trans)) + mSelectedKeys.RemoveAt(i); + + // Remove all Categories that are not in this source + /*var mCateg = mLanguageSource.GetCategories(); + for (int i=mSelectedCategories.Count-1; i>=0; --i) + if (!mCateg.Contains(mSelectedCategories[i])) + mSelectedCategories.RemoveAt(i); + if (mSelectedCategories.Count==0) + mSelectedCategories = mCateg;*/ + + if (mSelectedScenes.Count==0) + mSelectedScenes.Add (Editor_GetCurrentScene()); + } + + public override void OnInspectorGUI() + { + // Load Test: + /*if (mLanguageSource.mTerms.Count<40000) + { + mLanguageSource.mTerms.Clear(); + for (int i=0; i<40020; ++i) + mLanguageSource.AddTerm("ahh"+i.ToString("00000"), eTermType.Text, false); + mLanguageSource.UpdateDictionary(); + }*/ + //Profiler.maxNumberOfSamplesPerFrame = -1; // REMOVE --------------------------------------------------- + + mIsParsing = false; + + //#if UNITY_5_6_OR_NEWER + // serializedObject.UpdateIfRequiredOrScript(); + //#else + // serializedObject.UpdateIfDirtyOrScript(); + //#endif + + if (mLanguageSource.mTerms.Count<1000) + Undo.RecordObject(target, "LanguageSource"); + + //GUI.backgroundColor = Color.Lerp (Color.black, Color.gray, 1); + //GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background); + //GUI.backgroundColor = Color.white; + + if (GUILayout.Button("Language Source", LocalizeInspector.GUIStyle_Header)) + { + Application.OpenURL(LocalizeInspector.HelpURL_Documentation); + } + + InitializeStyles(); + + GUILayout.Space(10); + + //GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + //GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background); + //GUI.backgroundColor = Color.white; + OnGUI_Main(); + //GUILayout.EndVertical(); + + GUILayout.Space (10); + GUILayout.FlexibleSpace(); + + GUITools.OnGUI_Footer("I2 Localization", LocalizationManager.GetVersion(), LocalizeInspector.HelpURL_forum, LocalizeInspector.HelpURL_Documentation, LocalizeInspector.HelpURL_AssetStore); + + //GUILayout.EndVertical(); + + serializedObject.ApplyModifiedProperties(); + if (Event.current.type == EventType.Repaint) + { + mTestAction = eTest_ActionType.None; + mTestActionArg = null; + mTestActionArg2 = null; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs.meta new file mode 100644 index 00000000..34e4a0e9 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 90c932abd0dc445448366dfe101408ba +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs new file mode 100644 index 00000000..c1856603 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs @@ -0,0 +1,107 @@ +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; + +namespace I2.Loc +{ + [CustomEditor(typeof(LocalizationParamsManager))] + public class LocalizationParamsManagerInspector : Editor + { + private ReorderableList mList; + private SerializedProperty mProp_IsGlobalManager; + + + private ReorderableList getList(SerializedObject serObject) + { + if (mList == null) { + mList = new ReorderableList (serObject, serObject.FindProperty ("_Params"), true, true, true, true); + mList.drawElementCallback = drawElementCallback; + mList.drawHeaderCallback = drawHeaderCallback; + mList.onAddCallback = addElementCallback; + mList.onRemoveCallback = removeElementCallback; + } + else + { + mList.serializedProperty = serObject.FindProperty ("_Params"); + } + return mList; + } + + private void addElementCallback( ReorderableList list ) + { + serializedObject.ApplyModifiedProperties(); + var objParams = target as LocalizationParamsManager; + objParams._Params.Add(new LocalizationParamsManager.ParamValue()); + list.index = objParams._Params.Count - 1; + serializedObject.Update(); + } + + private void removeElementCallback( ReorderableList list ) + { + if (list.index < 0) + return; + serializedObject.ApplyModifiedProperties(); + var objParams = target as LocalizationParamsManager; + objParams._Params.RemoveAt(list.index); + serializedObject.Update(); + } + + private void drawHeaderCallback(Rect rect) + { + GUI.Label(rect, "Parameters:"); + } + + private void drawElementCallback(Rect rect, int index, bool isActive, bool isFocused) + { + var serializedElement = mList.serializedProperty.GetArrayElementAtIndex (index); + var content = new GUIContent (); + + Rect r = rect; r.xMax = r.xMin+40; + GUI.Label(r, "Name"); + + r = rect; r.xMax = (r.xMax + r.xMin)/2 - 2; r.xMin = r.xMin+40; + EditorGUI.PropertyField (r, serializedElement.FindPropertyRelative ("Name"),content); + + r = rect; r.xMin = (r.xMax + r.xMin) / 2 + 2; r.xMax = r.xMin+40; + GUI.Label(r, "Value"); + + r = rect; r.xMin = (r.xMax + r.xMin)/2 + 2 + 40; + EditorGUI.PropertyField (r, serializedElement.FindPropertyRelative ("Value"), content); + } + + void OnEnable() + { + mList = getList(serializedObject); + mProp_IsGlobalManager = serializedObject.FindProperty("_IsGlobalManager"); + } + public override void OnInspectorGUI() + { + #if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); + #else + serializedObject.UpdateIfDirtyOrScript(); + #endif + + GUI.backgroundColor = Color.Lerp (Color.black, Color.gray, 1); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background); + GUI.backgroundColor = Color.white; + + if (GUILayout.Button("Dynamic Parameters", LocalizeInspector.GUIStyle_Header)) + { + Application.OpenURL(LocalizeInspector.HelpURL_Documentation); + } + + GUILayout.Space(5); + mProp_IsGlobalManager.boolValue = EditorGUILayout.Popup(new GUIContent("Manager Type", "Local Manager only apply parameters to the Localize component in the same GameObject\n\nGlobal Manager apply parameters to all Localize components"), mProp_IsGlobalManager.boolValue ? 1 : 0, new[] { new GUIContent("Local"), new GUIContent("Global") }) == 1; + + + GUILayout.Space(5); + mList.DoLayoutList(); + + //EditorGUILayout.PropertyField(serializedObject.FindProperty("_AutoRegister"), new GUIContent("Auto Register")); + + GUILayout.EndVertical(); + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs.meta new file mode 100644 index 00000000..4849a7ea --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizationParamsManagerInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 93f1f9aecf6f7ed40ad1a082c22c47e5 +timeCreated: 1468111539 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs new file mode 100644 index 00000000..24adcd2a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; + +namespace I2.Loc +{ + #if !UNITY_5_0 && !UNITY_5_1 + + [CustomEditor(typeof(LocalizeDropdown))] + public class LocalizeDropdownInspector : Editor + { + private ReorderableList mList; + + private List terms; + + private ReorderableList getList(SerializedObject serObject) + { + if (mList == null) { + mList = new ReorderableList (serObject, serObject.FindProperty ("_Terms"), true, true, true, true); + mList.drawElementCallback = drawElementCallback; + mList.drawHeaderCallback = drawHeaderCallback; + mList.onAddCallback = addElementCallback; + mList.onRemoveCallback = removeElementCallback; + } + else + { + mList.serializedProperty = serObject.FindProperty ("_Terms"); + } + return mList; + } + + private void addElementCallback( ReorderableList list ) + { + serializedObject.ApplyModifiedProperties(); + + var objParams = target as LocalizeDropdown; + objParams._Terms.Add(string.Empty); + + list.index = objParams._Terms.Count - 1; + + serializedObject.Update(); + } + + private void removeElementCallback( ReorderableList list ) + { + if (list.index < 0) + return; + serializedObject.ApplyModifiedProperties(); + + var objParams = target as LocalizeDropdown; + objParams._Terms.RemoveAt(list.index); + + serializedObject.Update(); + } + + private void drawHeaderCallback(Rect rect) + { + GUI.Label(rect, "Terms:"); + } + + private void drawElementCallback(Rect rect, int index, bool isActive, bool isFocused) + { + var serializedElement = mList.serializedProperty.GetArrayElementAtIndex (index); + + EditorGUI.BeginChangeCheck (); + + var prvIndex = serializedElement.stringValue == "-" || serializedElement.stringValue == "" ? terms.Count - 1 : + serializedElement.stringValue == " " ? terms.Count - 2 : + terms.IndexOf(serializedElement.stringValue); + + var newIndex = EditorGUI.Popup(rect, prvIndex, terms.ToArray()); + + if (EditorGUI.EndChangeCheck ()) + { + if (newIndex == terms.Count - 1) + serializedElement.stringValue = "-"; + else + if (newIndex < 0 || newIndex == terms.Count - 2) + serializedElement.stringValue = string.Empty; + else + serializedElement.stringValue = terms[newIndex]; + } + } + + void OnEnable() + { + mList = getList(serializedObject); + } + + public override void OnInspectorGUI() + { + #if UNITY_5_6_OR_NEWER + serializedObject.UpdateIfRequiredOrScript(); + #else + serializedObject.UpdateIfDirtyOrScript(); + #endif + terms = LocalizationManager.GetTermsList (); + terms.Sort(StringComparer.OrdinalIgnoreCase); + terms.Add(""); + terms.Add(""); + terms.Add(""); + + GUI.backgroundColor = Color.Lerp (Color.black, Color.gray, 1); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_Background); + GUI.backgroundColor = Color.white; + + if (GUILayout.Button("Localize DropDown", LocalizeInspector.GUIStyle_Header)) + { + Application.OpenURL(LocalizeInspector.HelpURL_Documentation); + } + + + GUILayout.Space(5); + mList.DoLayoutList(); + + GUILayout.Space (10); + + GUITools.OnGUI_Footer("I2 Localization", LocalizationManager.GetVersion(), LocalizeInspector.HelpURL_forum, LocalizeInspector.HelpURL_Documentation, LocalizeInspector.HelpURL_AssetStore); + + EditorGUIUtility.labelWidth = 0; + + + GUILayout.EndVertical(); + serializedObject.ApplyModifiedProperties(); + terms = null; + } + } + #endif +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs.meta new file mode 100644 index 00000000..3177a7ec --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeDropdownInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 65bbef08e6e42d24d9834945c3769202 +timeCreated: 1468111539 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs new file mode 100644 index 00000000..28824bf1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs @@ -0,0 +1,896 @@ +//#define UGUI +//#define NGUI +//#define DFGUI + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + [CustomEditor(typeof(Localize))] + [CanEditMultipleObjects] + public class LocalizeInspector : Editor + { + #region Variables + + Localize mLocalize; + SerializedProperty mProp_mTerm, mProp_mTermSecondary, + mProp_TranslatedObjects, mProp_LocalizeOnAwake, mProp_AlwaysForceLocalize, mProp_AllowLocalizedParameters, mProp_AllowParameters, + mProp_IgnoreRTL, mProp_MaxCharactersInRTL, mProp_CorrectAlignmentForRTL, mProp_IgnoreNumbersInRTL, mProp_TermSuffix, mProp_TermPrefix, mProp_SeparateWords, + mProp_CallbackEvent; + + + bool mAllowEditKeyName; + string mNewKeyName = ""; + + string[] mTermsArray; + + + public static string HelpURL_forum = "http://goo.gl/Uiyu8C";//http://www.inter-illusion.com/forum/i2-localization"; + public static string HelpURL_Documentation = "http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html"; + public static string HelpURL_Tutorials = "http://inter-illusion.com/tools/i2-localization"; + public static string HelpURL_ReleaseNotes = "http://inter-illusion.com/forum/i2-localization/26-release-notes"; + public static string HelpURL_AssetStore = "https://www.assetstore.unity3d.com/#!/content/14884"; + + public static LocalizeInspector mLocalizeInspector; + #endregion + + #region Inspector + + void OnEnable() + { + mLocalize = (Localize)target; + mLocalizeInspector = this; + LocalizationEditor.mCurrentInspector = this; + mProp_mTerm = serializedObject.FindProperty("mTerm"); + mProp_mTermSecondary = serializedObject.FindProperty("mTermSecondary"); + mProp_TranslatedObjects = serializedObject.FindProperty("TranslatedObjects"); + mProp_IgnoreRTL = serializedObject.FindProperty("IgnoreRTL"); + mProp_SeparateWords = serializedObject.FindProperty("AddSpacesToJoinedLanguages"); + mProp_MaxCharactersInRTL = serializedObject.FindProperty ("MaxCharactersInRTL"); + mProp_IgnoreNumbersInRTL = serializedObject.FindProperty("IgnoreNumbersInRTL"); + mProp_CorrectAlignmentForRTL = serializedObject.FindProperty ("CorrectAlignmentForRTL"); + mProp_LocalizeOnAwake = serializedObject.FindProperty("LocalizeOnAwake"); + mProp_AlwaysForceLocalize = serializedObject.FindProperty("AlwaysForceLocalize"); + mProp_TermSuffix = serializedObject.FindProperty("TermSuffix"); + mProp_TermPrefix = serializedObject.FindProperty("TermPrefix"); + mProp_CallbackEvent = serializedObject.FindProperty("LocalizeEvent"); + mProp_AllowLocalizedParameters = serializedObject.FindProperty("AllowLocalizedParameters"); + mProp_AllowParameters = serializedObject.FindProperty("AllowParameters"); + + + if (LocalizationManager.Sources.Count==0) + LocalizationManager.UpdateSources(); + //LocalizationEditor.ParseTerms (true); + + //mGUI_ShowReferences = (mLocalize.TranslatedObjects!=null && mLocalize.TranslatedObjects.Length>0); + //mGUI_ShowCallback = (mLocalize.LocalizeCallBack.Target!=null); + //mGUI_ShowTems = true; + LocalizationEditor.mKeysDesc_AllowEdit = false; + GUI_SelectedTerm = 0; + mNewKeyName = mLocalize.Term; + + if (mLocalize.Source != null) + LocalizationEditor.mLanguageSource = mLocalize.Source.SourceData; + else + { + if (LocalizationManager.Sources.Count==0) + LocalizationManager.UpdateSources(); + LocalizationEditor.mLanguageSource = LocalizationManager.GetSourceContaining( mLocalize.Term ); + } + + //UpgradeManager.EnablePlugins(); + LocalizationEditor.ApplyInferredTerm (mLocalize); + RemoveUnusedReferences(mLocalize); + } + + void OnDisable() + { + mLocalizeInspector = null; + if (LocalizationEditor.mCurrentInspector == this) LocalizationEditor.mCurrentInspector = null; + + + if (mLocalize == null) + return; + + //#if TextMeshPro + //string previous = null; + + //if (!Application.isPlaying && !string.IsNullOrEmpty(mLocalize.TMP_previewLanguage)) + //{ + // previous = LocalizationManager.CurrentLanguage; + // LocalizationManager.PreviewLanguage( mLocalize.TMP_previewLanguage ); + //} + //#endif + + //mLocalize.OnLocalize(); + + // Revert the preview language + // except when in TMPro and not changing to another GameObject (TMPro has a bug where any change causes the inspector to Disable and Enable) + if (!mLocalize.mLocalizeTargetName.Contains("LocalizeTarget_TextMeshPro") || Selection.activeGameObject==null || !Selection.gameObjects.Contains(mLocalize.gameObject)) + { + LocalizationManager.LocalizeAll(); + } + + //#if TextMeshPro + //if (!string.IsNullOrEmpty(previous)) + //{ + // LocalizationManager.PreviewLanguage(previous); + // mLocalize.TMP_previewLanguage = null; + //} + //#endif + + RemoveUnusedReferences(mLocalize); + } + + #endregion + + #region GUI + + public override void OnInspectorGUI() + { + Undo.RecordObject(target, "Localize"); + + //GUI.backgroundColor = Color.Lerp (Color.black, Color.gray, 1); + //GUILayout.BeginVertical(GUIStyle_Background, GUILayout.Height(1)); + //GUI.backgroundColor = Color.white; + + if (GUILayout.Button("Localize", GUIStyle_Header)) + { + //Application.OpenURL(HelpURL_Documentation); + } + GUILayout.Space(-10); + + LocalizationManager.UpdateSources(); + + if (LocalizationManager.Sources.Count==0) + { + EditorGUILayout.HelpBox("Unable to find a Language Source.", MessageType.Warning); + } + else + { + GUILayout.Space(10); + OnGUI_Target (); + GUILayout.Space(10); + OnGUI_Terms(); + + //if (mGUI_ShowTems || mGUI_ShowReferences) GUILayout.Space(5); + + OnGUI_References(); + + if (mLocalize.mGUI_ShowReferences || mLocalize.mGUI_ShowCallback) GUILayout.Space(10); + + //Localize loc = target as Localize; + + //--[ Localize Callback ]---------------------- + EditorGUILayout.PropertyField(mProp_CallbackEvent, new GUIContent("On Localize Callback")); + + //string HeaderTitle = "On Localize Call:"; + //if (!mLocalize.mGUI_ShowCallback && loc.LocalizeCallBack.Target!=null && !string.IsNullOrEmpty(loc.LocalizeCallBack.MethodName)) + // HeaderTitle = string.Concat(HeaderTitle, " ",loc.LocalizeCallBack.Target.name, ".", loc.LocalizeCallBack.MethodName, ""); + //mLocalize.mGUI_ShowCallback = GUITools.DrawHeader(HeaderTitle, mLocalize.mGUI_ShowCallback); + //if (mLocalize.mGUI_ShowCallback) + //{ + // GUITools.BeginContents(); + // DrawEventCallBack( loc.LocalizeCallBack, loc ); + // GUITools.EndContents(); + //} + } + OnGUI_Source (); + + GUILayout.Space (10); + + GUITools.OnGUI_Footer("I2 Localization", LocalizationManager.GetVersion(), HelpURL_forum, HelpURL_Documentation, HelpURL_AssetStore); + + //GUILayout.EndVertical(); + + serializedObject.ApplyModifiedProperties(); + if (Event.current.type == EventType.Repaint) + { + LocalizationEditor.mTestAction = LocalizationEditor.eTest_ActionType.None; + LocalizationEditor.mTestActionArg = null; + LocalizationEditor.mTestActionArg2 = null; + } + } + + #endregion + + #region References + + void OnGUI_References() + { + if (mLocalize.mGUI_ShowReferences = GUITools.DrawHeader ("References", mLocalize.mGUI_ShowReferences)) + { + GUITools.BeginContents(); + + bool canTest = Event.current.type == EventType.Repaint; + + var testAddObj = canTest && LocalizationEditor.mTestAction == LocalizationEditor.eTest_ActionType.Button_Assets_Add ? (Object)LocalizationEditor.mTestActionArg : null; + var testReplaceIndx = canTest && LocalizationEditor.mTestAction == LocalizationEditor.eTest_ActionType.Button_Assets_Replace ? (int)LocalizationEditor.mTestActionArg : -1; + var testReplaceObj = canTest && LocalizationEditor.mTestAction == LocalizationEditor.eTest_ActionType.Button_Assets_Replace ? (Object)LocalizationEditor.mTestActionArg2 : null; + var testDeleteIndx = canTest && LocalizationEditor.mTestAction == LocalizationEditor.eTest_ActionType.Button_Assets_Delete ? (int)LocalizationEditor.mTestActionArg : -1; + + bool changed = GUITools.DrawObjectsArray( mProp_TranslatedObjects, false, false, true, testAddObj, testReplaceObj, testReplaceIndx, testDeleteIndx); + if (changed) + { + serializedObject.ApplyModifiedProperties(); + foreach (var obj in serializedObject.targetObjects) + (obj as Localize).UpdateAssetDictionary(); + } + + GUITools.EndContents(); + } + } + + void RemoveUnusedReferences(Localize cmp) + { + cmp.TranslatedObjects.RemoveAll(x => !IsUsingReference(LocalizationManager.GetTermData(cmp.Term), x) && !IsUsingReference(LocalizationManager.GetTermData(cmp.SecondaryTerm), x)); + if (cmp.TranslatedObjects.Count != cmp.mAssetDictionary.Count) + cmp.UpdateAssetDictionary(); + } + + bool IsUsingReference(TermData termData, Object obj ) + { + if (obj == null || termData==null) return false; + + string objName = obj.name; + foreach (string translation in termData.Languages) + { + if (translation != null && translation.Contains(objName)) + return true; + } + return false; + } + + + #endregion + + + #region Terms + + int GUI_SelectedTerm; + void OnGUI_Terms() + { + if ((mLocalize.mGUI_ShowTems=GUITools.DrawHeader ("Terms", mLocalize.mGUI_ShowTems))) + { + //--[ tabs: Main and Secondary Terms ]---------------- + int oldTab = GUI_SelectedTerm; + if (mLocalize.mLocalizeTarget!=null && mLocalize.mLocalizeTarget.CanUseSecondaryTerm()) + { + GUI_SelectedTerm = GUITools.DrawTabs (GUI_SelectedTerm, new[]{"Main", "Secondary"}); + } + else + { + GUI_SelectedTerm = 0; + GUITools.DrawTabs (GUI_SelectedTerm, new[]{"Main", ""}); + } + + GUITools.BeginContents(); + + TermData termData = null; + + if (GUI_SelectedTerm==0) termData = OnGUI_PrimaryTerm( oldTab!=GUI_SelectedTerm ); + else termData = OnGUI_SecondaryTerm(oldTab!=GUI_SelectedTerm); + + GUITools.EndContents(); + + //--[ Modifier ]------------- + if (mLocalize.Term != "-" && termData!=null && termData.TermType==eTermType.Text) + { + EditorGUI.BeginChangeCheck(); + GUILayout.BeginHorizontal(); + GUILayout.Label("Prefix:"); + EditorGUILayout.PropertyField(mProp_TermPrefix, GUITools.EmptyContent); + GUILayout.Label("Suffix:"); + EditorGUILayout.PropertyField(mProp_TermSuffix, GUITools.EmptyContent); + GUILayout.EndHorizontal(); + if (EditorGUI.EndChangeCheck()) + { + EditorApplication.delayCall += () => + { + if (targets != null) + { + foreach (var t in targets) + if (t as Localize != null) + (t as Localize).OnLocalize(true); + } + }; + } + EditorGUI.BeginChangeCheck(); + int val = EditorGUILayout.Popup("Modifier", GUI_SelectedTerm == 0 ? (int)mLocalize.PrimaryTermModifier : (int)mLocalize.SecondaryTermModifier, Enum.GetNames(typeof(Localize.TermModification))); + if (EditorGUI.EndChangeCheck()) + { + serializedObject.FindProperty(GUI_SelectedTerm == 0 ? "PrimaryTermModifier" : "SecondaryTermModifier").enumValueIndex = val; + GUI.changed = false; + } + } + + OnGUI_Options(); + //--[ OnAwake vs OnEnable ]------------- + //GUILayout.BeginHorizontal(); + //mProp_LocalizeOnAwake.boolValue = GUILayout.Toggle(mProp_LocalizeOnAwake.boolValue, new GUIContent(" Pre-Localize on Awake", "Localizing on Awake could result in a lag when the level is loaded but faster later when objects are enabled. If false, it will Localize OnEnable, so will yield faster level load but could have a lag when screens are enabled")); + //GUILayout.FlexibleSpace(); + //if (mLocalize.HasCallback()) + //{ + // GUI.enabled = false; + // GUILayout.Toggle(true, new GUIContent(" Force Localize", "Enable this when the translations have parameters (e.g. Thew winner is {[WINNER}]) to prevent any optimization that could prevent updating the translation when the object is enabled")); + // GUI.enabled = true; + //} + //else + //{ + // mProp_AlwaysForceLocalize.boolValue = GUILayout.Toggle(mProp_AlwaysForceLocalize.boolValue, new GUIContent(" Force Localize", "Enable this when the translations have parameters (e.g. Thew winner is {[WINNER}]) to prevent any optimization that could prevent updating the translation when the object is enabled")); + //} + //GUILayout.EndHorizontal(); + + //--[ Right To Left ]------------- + if (!mLocalize.IgnoreRTL && mLocalize.Term!="-" && termData != null && termData.TermType == eTermType.Text) + { + GUILayout.BeginVertical("Box"); + //GUILayout.BeginHorizontal(); + // mProp_IgnoreRTL.boolValue = GUILayout.Toggle(mProp_IgnoreRTL.boolValue, new GUIContent(" Ignore Right To Left", "Arabic and other RTL languages require processing them so they render correctly, this toogle allows ignoring that processing (in case you are doing it manually during a callback)")); + // GUILayout.FlexibleSpace(); + // mProp_SeparateWords.boolValue = GUILayout.Toggle(mProp_SeparateWords.boolValue, new GUIContent(" Separate Words", " Some languages (e.g. Chinese, Japanese and Thai) don't add spaces to their words (all characters are placed toguether), enabling this checkbox, will add spaces to all characters to allow wrapping long texts into multiple lines.")); + //GUILayout.EndHorizontal(); + { + mProp_MaxCharactersInRTL.intValue = EditorGUILayout.IntField( new GUIContent("Max line length", "If the language is Right To Left, long lines will be split at this length and the RTL fix will be applied to each line, this should be set to the maximum number of characters that fit in this text width. 0 disables the per line fix"), mProp_MaxCharactersInRTL.intValue ); + GUILayout.BeginHorizontal(); + mProp_CorrectAlignmentForRTL.boolValue = GUILayout.Toggle(mProp_CorrectAlignmentForRTL.boolValue, new GUIContent(" Adjust Alignment", "Right-align when Right-To-Left Language, and Left-Align otherwise") ); + GUILayout.FlexibleSpace(); + mProp_IgnoreNumbersInRTL.boolValue = GUILayout.Toggle(mProp_IgnoreNumbersInRTL.boolValue, new GUIContent(" Ignore Numbers", "Preserve numbers as latin characters instead of converting them")); + GUILayout.EndHorizontal(); + } + + GUILayout.EndVertical(); + } + + + ////GUILayout.EndHorizontal(); + } + } + + void OnGUI_Options() + { + int mask = 0; + if (mProp_LocalizeOnAwake.boolValue) mask |= 1 << 0; + if (mProp_AlwaysForceLocalize.boolValue) mask |= 1 << 1; + if (mProp_AllowParameters.boolValue) mask |= 1 << 2; + if (mProp_AllowLocalizedParameters.boolValue) mask |= 1 << 3; + if (mProp_SeparateWords.boolValue) mask |= 1 << 4; + if (mProp_IgnoreRTL.boolValue) mask |= 1 << 5; + + EditorGUI.BeginChangeCheck(); + mask = EditorGUILayout.MaskField(new GUIContent("Options"), mask, new []{ + "Localize On Awake", + "Force Localize", + "Allow Parameters", + "Allow Localized Parameters", + "Separate Words", + "Ignore RTL" + }); + if (EditorGUI.EndChangeCheck()) + { + mProp_LocalizeOnAwake.boolValue = (mask & (1 << 0))> 0; + mProp_AlwaysForceLocalize.boolValue = (mask & (1 << 1))> 0; + mProp_AllowParameters.boolValue = (mask & (1 << 2))> 0; + mProp_AllowLocalizedParameters.boolValue = (mask & (1 << 3))> 0; + mProp_SeparateWords.boolValue = (mask & (1 << 4))> 0; + mProp_IgnoreRTL.boolValue = (mask & (1 << 5))> 0; + } + } + + TermData OnGUI_PrimaryTerm( bool OnOpen ) + { + string Key = mLocalize.mTerm; + if (string.IsNullOrEmpty(Key)) + { + string SecondaryTerm; + mLocalize.GetFinalTerms( out Key, out SecondaryTerm ); + } + + if (OnOpen) mNewKeyName = Key; + if ( OnGUI_SelectKey( ref Key, string.IsNullOrEmpty(mLocalize.mTerm))) + mProp_mTerm.stringValue = Key; + return LocalizationEditor.OnGUI_Keys_Languages( Key, mLocalize ); + } + + TermData OnGUI_SecondaryTerm( bool OnOpen ) + { + string Key = mLocalize.mTermSecondary; + + if (string.IsNullOrEmpty(Key)) + { + string ss; + mLocalize.GetFinalTerms( out ss, out Key ); + } + + if (OnOpen) mNewKeyName = Key; + if ( OnGUI_SelectKey( ref Key, string.IsNullOrEmpty(mLocalize.mTermSecondary))) + mProp_mTermSecondary.stringValue = Key; + return LocalizationEditor.OnGUI_Keys_Languages( Key, mLocalize, false ); + } + + bool OnGUI_SelectKey( ref string Term, bool Inherited ) // Inherited==true means that the mTerm is empty and we are using the Label.text instead + { + GUILayout.Space (5); + GUILayout.BeginHorizontal(); + + GUI.changed = false; + mAllowEditKeyName = GUILayout.Toggle(mAllowEditKeyName, "Term:", EditorStyles.foldout, GUILayout.ExpandWidth(false)); + if (GUI.changed && mAllowEditKeyName) { + mNewKeyName = Term; + mTermsArray = null; + } + + bool bChanged = false; + + if (mTermsArray==null || Term!="-" && Array.IndexOf(mTermsArray, Term)<0) + UpdateTermsList(Term); + + if (Inherited) + GUI.contentColor = Color.Lerp (Color.gray, Color.yellow, 0.1f); + + int Index = Term=="-" || Term=="" ? mTermsArray.Length-1 : Array.IndexOf( mTermsArray, Term ); + + GUI.changed = false; + + int newIndex = EditorGUILayout.Popup( Index, mTermsArray); + + GUI.contentColor = Color.white; + if (/*newIndex != Index && newIndex>=0*/GUI.changed) + { + GUI.changed = false; + if (mLocalize.Source != null && newIndex == mTermsArray.Length - 4) //< show terms from all sources > + { + mLocalize.Source = null; + mTermsArray = null; + } + else + if (newIndex == mTermsArray.Length - 2) // + mNewKeyName = Term = string.Empty; + else + if (newIndex == mTermsArray.Length - 1) // + mNewKeyName = Term = "-"; + else + mNewKeyName = Term = mTermsArray[newIndex]; + + + if (GUI_SelectedTerm==0) + mLocalize.SetTerm (mNewKeyName); + else + mLocalize.SetTerm (null, mNewKeyName); + mAllowEditKeyName = false; + bChanged = true; + } + + LanguageSourceData source = LocalizationManager.GetSourceContaining(Term); + TermData termData = source.GetTermData(Term); + if (termData!=null) + { + if (Inherited) + bChanged = true; // if the term its inferred and a matching term its found, then use that + eTermType NewType = (eTermType)EditorGUILayout.EnumPopup(termData.TermType, GUILayout.Width(90)); + if (termData.TermType != NewType) + termData.TermType = NewType; + } + + GUILayout.EndHorizontal(); + + if (mAllowEditKeyName) + { + GUILayout.BeginHorizontal(GUILayout.Height (1)); + GUILayout.BeginHorizontal(EditorStyles.toolbar); + if(mNewKeyName==null) mNewKeyName = string.Empty; + + GUI.changed = false; + mNewKeyName = EditorGUILayout.TextField(mNewKeyName, new GUIStyle("ToolbarSeachTextField"), GUILayout.ExpandWidth(true)); + if (GUI.changed) + { + mTermsArray = null; // regenerate this array to apply filtering + GUI.changed = false; + } + + if (GUILayout.Button (string.Empty, string.IsNullOrEmpty(mNewKeyName) ? "ToolbarSeachCancelButtonEmpty" : "ToolbarSeachCancelButton", GUILayout.ExpandWidth(false))) + { + mTermsArray = null; // regenerate this array to apply filtering + mNewKeyName = string.Empty; + } + + GUILayout.EndHorizontal(); + + string ValidatedName = mNewKeyName; + LanguageSourceData.ValidateFullTerm( ref ValidatedName ); + + bool CanUseNewName = source.GetTermData(ValidatedName)==null; + GUI.enabled = !string.IsNullOrEmpty(mNewKeyName) && CanUseNewName; + if (GUILayout.Button ("Create", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + mNewKeyName = ValidatedName; + mTermsArray=null; // this recreates that terms array + + LanguageSourceData Source = null; + #if UNITY_EDITOR + if (mLocalize.Source!=null) + Source = mLocalize.Source.SourceData; + #endif + + if (Source==null) + Source = LocalizationManager.Sources[0]; + Term = mNewKeyName; + var data = Source.AddTerm( mNewKeyName, eTermType.Text, false ); + if (data.Languages.Length > 0) + data.Languages[0] = mLocalize.GetMainTargetsText(); + Source.Editor_SetDirty(); + AssetDatabase.SaveAssets(); + mAllowEditKeyName = false; + bChanged = true; + GUIUtility.keyboardControl = 0; + } + GUI.enabled = termData!=null && !string.IsNullOrEmpty(mNewKeyName) && CanUseNewName; + if (GUILayout.Button (new GUIContent("Rename","Renames the term in the source and updates every object using it in the current scene"), EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + mNewKeyName = ValidatedName; + Term = mNewKeyName; + mTermsArray=null; // this recreates that terms array + mAllowEditKeyName = false; + bChanged = true; + LocalizationEditor.TermReplacements = new Dictionary(StringComparer.Ordinal); + LocalizationEditor.TermReplacements[ termData.Term ] = mNewKeyName; + termData.Term = mNewKeyName; + source.UpdateDictionary(true); + LocalizationEditor.ReplaceTermsInCurrentScene(); + GUIUtility.keyboardControl = 0; + EditorApplication.update += LocalizationEditor.DoParseTermsInCurrentScene; + } + GUI.enabled = true; + GUILayout.EndHorizontal(); + + bChanged |= OnGUI_SelectKey_PreviewTerms ( ref Term); + } + + GUILayout.Space (5); + return bChanged; + } + + void UpdateTermsList( string currentTerm ) + { + List Terms = mLocalize.Source==null ? LocalizationManager.GetTermsList() : mLocalize.Source.SourceData.GetTermsList(); + + // If there is a filter, remove all terms not matching that filter + if (mAllowEditKeyName && !string.IsNullOrEmpty(mNewKeyName)) + { + string Filter = mNewKeyName.ToUpper(); + for (int i=Terms.Count-1; i>=0; --i) + if (!Terms[i].ToUpper().Contains(Filter) && Terms[i]!=currentTerm) + Terms.RemoveAt(i); + + } + + if (!string.IsNullOrEmpty(currentTerm) && currentTerm!="-" && !Terms.Contains(currentTerm)) + Terms.Add (currentTerm); + + Terms.Sort(StringComparer.OrdinalIgnoreCase); + Terms.Add(""); + if (mLocalize.Source != null) + { + Terms.Add("< Show Terms from all sources >"); + Terms.Add(""); + } + Terms.Add(""); + Terms.Add(""); + + mTermsArray = Terms.ToArray(); + } + + bool OnGUI_SelectKey_PreviewTerms ( ref string Term) + { + if (mTermsArray==null) + UpdateTermsList(Term); + + int nTerms = mTermsArray.Length; + if (nTerms<=0) + return false; + + if (nTerms==1 && mTermsArray[0]==Term) + return false; + + bool bChanged = false; + GUI.backgroundColor = Color.gray; + GUILayout.BeginVertical (GUIStyle_OldTextArea); + for (int i = 0, imax = Mathf.Min (nTerms, 3); i < imax; ++i) + { + ParsedTerm parsedTerm; + int nUses = -1; + if (LocalizationEditor.mParsedTerms.TryGetValue (mTermsArray [i], out parsedTerm)) + nUses = parsedTerm.Usage; + + string FoundText = mTermsArray [i]; + if (nUses > 0) + FoundText = string.Concat ("(", nUses, ") ", FoundText); + + if (GUILayout.Button (FoundText, EditorStyles.miniLabel, GUILayout.MaxWidth(EditorGUIUtility.currentViewWidth - 70))) + { + if (mTermsArray[i] == "") + mNewKeyName = Term = string.Empty; + else + if (mTermsArray[i] == "") + mNewKeyName = Term = "-"; + else + if (mTermsArray[i] != "< Show Terms from all sources >") + mNewKeyName = Term = mTermsArray[i]; + + //mNewKeyName = Term = (mTermsArray [i]=="" ? string.Empty : mTermsArray [i]); + GUIUtility.keyboardControl = 0; + mAllowEditKeyName = false; + bChanged = true; + } + } + if (nTerms > 3) + GUILayout.Label ("..."); + GUILayout.EndVertical (); + GUI.backgroundColor = Color.white; + + return bChanged; + } + + #endregion + + #region Target + + void OnGUI_Target() + { + List TargetTypes = new List(); + int CurrentTarget = -1; + + mLocalize.FindTarget(); + + foreach (var desc in LocalizationManager.mLocalizeTargets) + { + if (desc.CanLocalize(mLocalize)) + { + TargetTypes.Add(desc.Name); + + if (mLocalize.mLocalizeTarget!=null && desc.GetTargetType() == mLocalize.mLocalizeTarget.GetType()) + CurrentTarget = TargetTypes.Count - 1; + } + } + + if (CurrentTarget==-1) + { + CurrentTarget = TargetTypes.Count; + TargetTypes.Add("None"); + } + + GUILayout.BeginHorizontal(); + GUILayout.Label ("Target:", GUILayout.Width (60)); + EditorGUI.BeginChangeCheck(); + int index = EditorGUILayout.Popup(CurrentTarget, TargetTypes.ToArray()); + if (EditorGUI.EndChangeCheck()) + { + serializedObject.ApplyModifiedProperties(); + foreach (var obj in serializedObject.targetObjects) + { + var cmp = obj as Localize; + if (cmp == null) + continue; + + if (cmp.mLocalizeTarget != null) + DestroyImmediate(cmp.mLocalizeTarget); + cmp.mLocalizeTarget = null; + + foreach (var desc in LocalizationManager.mLocalizeTargets) + { + if (desc.Name == TargetTypes[index]) + { + cmp.mLocalizeTarget = desc.CreateTarget(cmp); + cmp.mLocalizeTargetName = desc.GetTargetType().ToString(); + break; + } + } + } + serializedObject.Update(); + } + GUILayout.EndHorizontal(); + } + + #endregion + + #region Source + + void OnGUI_Source() + { + GUILayout.BeginHorizontal(); + + ILanguageSource currentSource = mLocalize.Source; + if (currentSource==null) + { + LanguageSourceData source = LocalizationManager.GetSourceContaining(mLocalize.Term); + currentSource = source==null ? null : source.owner; + } + + if (GUILayout.Button("Open Source", EditorStyles.toolbarButton, GUILayout.Width (100))) + { + Selection.activeObject = currentSource as Object; + + string sTerm, sSecondary; + mLocalize.GetFinalTerms( out sTerm, out sSecondary ); + if (GUI_SelectedTerm==1) sTerm = sSecondary; + LocalizationEditor.mKeyToExplore = sTerm; + } + + GUILayout.Space (2); + + GUILayout.BeginHorizontal(EditorStyles.toolbar); + EditorGUI.BeginChangeCheck (); + if (mLocalize.Source == null) + { + GUI.contentColor = Color.Lerp (Color.gray, Color.yellow, 0.1f); + } + Object obj = EditorGUILayout.ObjectField(currentSource as Object, typeof(Object), true); + GUI.contentColor = Color.white; + if (EditorGUI.EndChangeCheck()) + { + ILanguageSource NewSource = obj as ILanguageSource; + if (NewSource == null && obj as GameObject != null) + { + NewSource = (obj as GameObject).GetComponent(); + } + + mLocalize.Source = NewSource; + string sTerm, sSecondary; + mLocalize.GetFinalTerms(out sTerm, out sSecondary); + if (GUI_SelectedTerm == 1) sTerm = sSecondary; + UpdateTermsList(sTerm); + } + + if (GUILayout.Button(new GUIContent("Detect", "Finds the LanguageSource containing the selected term, the term list will now only show terms inside that source."), EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + string sTerm, sSecondary; + mLocalize.GetFinalTerms(out sTerm, out sSecondary); + if (GUI_SelectedTerm == 1) sTerm = sSecondary; + + var data = LocalizationManager.GetSourceContaining(sTerm, false); + mLocalize.Source = data==null ? null : data.owner; + mTermsArray = null; + } + GUILayout.EndHorizontal(); + + GUILayout.EndHorizontal(); + } + + #endregion + + + #region Event CallBack + + //public void DrawEventCallBack( EventCallback CallBack, Localize loc ) + //{ + //if (CallBack==null) + // return; + + //GUI.changed = false; + + //GUILayout.BeginHorizontal(); + //GUILayout.Label("Target:", GUILayout.ExpandWidth(false)); + //CallBack.Target = EditorGUILayout.ObjectField( CallBack.Target, typeof(MonoBehaviour), true) as MonoBehaviour; + //GUILayout.EndHorizontal(); + + //if (CallBack.Target!=null) + //{ + // GameObject GO = CallBack.Target.gameObject; + // List Infos = new List(); + + // var targets = GO.GetComponents(typeof(MonoBehaviour)); + // foreach (var behavior in targets) + // Infos.AddRange( behavior.GetType().GetMethods() ); + + // List Methods = new List(); + + // for (int i = 0, imax=Infos.Count; i 1) return false; + + if (Params [0].ParameterType.IsSubclassOf (typeof(Object))) return true; + if (Params [0].ParameterType == typeof(Object)) return true; + return false; + } + + + #endregion + + #region Styles + + public static GUIStyle GUIStyle_Header { + get{ + if (mGUIStyle_Header==null) + { + mGUIStyle_Header = new GUIStyle("HeaderLabel"); + mGUIStyle_Header.fontSize = 25; + mGUIStyle_Header.normal.textColor = Color.Lerp(Color.white, Color.gray, 0.5f); + mGUIStyle_Header.fontStyle = FontStyle.BoldAndItalic; + mGUIStyle_Header.alignment = TextAnchor.UpperCenter; + } + return mGUIStyle_Header; + } + } + static GUIStyle mGUIStyle_Header; + + public static GUIStyle GUIStyle_SubHeader { + get{ + if (mGUIStyle_SubHeader==null) + { + mGUIStyle_SubHeader = new GUIStyle("HeaderLabel"); + mGUIStyle_SubHeader.fontSize = 13; + mGUIStyle_SubHeader.fontStyle = FontStyle.Normal; + mGUIStyle_SubHeader.margin.top = -50; + mGUIStyle_SubHeader.alignment = TextAnchor.UpperCenter; + } + return mGUIStyle_SubHeader; + } + } + static GUIStyle mGUIStyle_SubHeader; + + public static GUIStyle GUIStyle_Background { + get{ + if (mGUIStyle_Background==null) + { + mGUIStyle_Background = new GUIStyle(EditorStyles.textArea); + mGUIStyle_Background.fixedHeight = 0; + mGUIStyle_Background.overflow.left = 50; + mGUIStyle_Background.overflow.right = 50; + mGUIStyle_Background.overflow.top = -5; + mGUIStyle_Background.overflow.bottom = 0; + } + return mGUIStyle_Background; + } + } + static GUIStyle mGUIStyle_Background; + + public static GUIStyle GUIStyle_OldTextArea + { + get + { + if (mGUIStyle_OldTextArea == null) + { + mGUIStyle_OldTextArea = new GUIStyle(EditorStyles.textArea); + mGUIStyle_OldTextArea.fixedHeight = 0; + } + return mGUIStyle_OldTextArea; + } + } + static GUIStyle mGUIStyle_OldTextArea; + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs.meta new file mode 100644 index 00000000..6d7f3aad --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/LocalizeInspector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 675119279b2a30245801272112cfbe38 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs new file mode 100644 index 00000000..0a9a23c0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs @@ -0,0 +1,29 @@ +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + [CustomEditor(typeof(ResourceManager))] + public class ResourceManagerInspector : Editor + { + SerializedProperty mAssets; + + void OnEnable() + { + UpgradeManager.EnablePlugins(); + mAssets = serializedObject.FindProperty("Assets"); + } + + public override void OnInspectorGUI() + { + GUILayout.Space(5); + GUITools.DrawHeader("Assets:", true); + GUITools.BeginContents(); + ///GUILayout.Label ("Assets:"); + GUITools.DrawObjectsArray( mAssets ); + GUITools.EndContents(); + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs.meta new file mode 100644 index 00000000..96076a94 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/ResourceManagerInspector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ba2fdf8face79dd4f9e1ed80448db843 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs new file mode 100644 index 00000000..7cf5b643 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs @@ -0,0 +1,60 @@ +using System; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + [CustomEditor(typeof(SetLanguage))] + public class SetLanguageInspector : Editor + { + public SetLanguage setLan; + public SerializedProperty mProp_Language; + + public void OnEnable() + { + setLan = (SetLanguage)target; + mProp_Language = serializedObject.FindProperty("_Language"); + } + + public override void OnInspectorGUI() + { + string[] Languages; + LanguageSource sourceObj = setLan.mSource; + if (sourceObj == null) + { + LocalizationManager.UpdateSources(); + Languages = LocalizationManager.GetAllLanguages().ToArray(); + Array.Sort(Languages); + } + else + { + Languages = sourceObj.mSource.GetLanguages().ToArray(); + Array.Sort(Languages); + } + + int index = Array.IndexOf(Languages, mProp_Language.stringValue); + + GUI.changed = false; + index = EditorGUILayout.Popup("Language", index, Languages); + if (GUI.changed) + { + if (index<0 || index>=Languages.Length) + mProp_Language.stringValue = string.Empty; + else + mProp_Language.stringValue = Languages[index]; + GUI.changed = false; + serializedObject.ApplyModifiedProperties(); + } + + GUILayout.Space(5); + if (setLan.mSource==null) GUI.contentColor = Color.Lerp (Color.gray, Color.yellow, 0.1f); + sourceObj = EditorGUILayout.ObjectField("Language Source:", sourceObj, typeof(LanguageSource), true) as LanguageSource; + GUI.contentColor = Color.white; + + if (GUI.changed) + setLan.mSource = sourceObj; + + serializedObject.ApplyModifiedProperties(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs.meta new file mode 100644 index 00000000..8fb138e1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/SetLanguageInspector.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7af58b4da44670e47a509c59754e8c2b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs new file mode 100644 index 00000000..4262d744 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs @@ -0,0 +1,164 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + [CustomPropertyDrawer (typeof (TermsPopup))] + public class TermsPopup_Drawer : PropertyDrawer + { + GUIContent[] mTerms_Context; + int nFramesLeftBeforeUpdate; + string mPrevFilter; + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + var filter = ((TermsPopup)attribute).Filter; + ShowGUICached(position, property, label, null, filter, ref mTerms_Context, ref nFramesLeftBeforeUpdate, ref mPrevFilter); + } + + public static bool ShowGUI(Rect position, SerializedProperty property, GUIContent label, LanguageSourceData source, string filter = "") + { + GUIContent[] terms=null; + int framesLeftBeforeUpdate=0; + string prevFilter = null; + + return ShowGUICached(position, property, label, source, filter, ref terms, ref framesLeftBeforeUpdate, ref prevFilter); + } + + public static bool ShowGUICached(Rect position, SerializedProperty property, GUIContent label, LanguageSourceData source, string filter, ref GUIContent[] terms_Contexts, ref int framesBeforeUpdating, ref string prevFilter) + { + UpdateTermsCache(source, filter, ref terms_Contexts, ref framesBeforeUpdating, ref prevFilter); + + label = EditorGUI.BeginProperty(position, label, property); + + EditorGUI.BeginChangeCheck (); + + var index = property.stringValue == "-" || property.stringValue == "" ? terms_Contexts.Length - 1 : + property.stringValue == " " ? terms_Contexts.Length - 2 : + GetTermIndex(terms_Contexts, property.stringValue); + var newIndex = EditorGUI.Popup(position, label, index, terms_Contexts); + + if (EditorGUI.EndChangeCheck()) + { + property.stringValue = newIndex < 0 || newIndex == terms_Contexts.Length - 1 ? string.Empty : terms_Contexts[newIndex].text; + if (newIndex == terms_Contexts.Length - 1) + property.stringValue = "-"; + else + if (newIndex < 0 || newIndex == terms_Contexts.Length - 2) + property.stringValue = string.Empty; + else + property.stringValue = terms_Contexts[newIndex].text; + + EditorGUI.EndProperty(); + return true; + } + + EditorGUI.EndProperty(); + return false; + } + + static int GetTermIndex(GUIContent[] terms_Contexts, string term ) + { + for (int i = 0; i < terms_Contexts.Length; ++i) + if (terms_Contexts[i].text == term) + return i; + return -1; + } + + + static void UpdateTermsCache(LanguageSourceData source, string filter, ref GUIContent[] terms_Contexts, ref int framesBeforeUpdating, ref string prevFilter) + { + framesBeforeUpdating--; + if (terms_Contexts!=null && framesBeforeUpdating>0 && filter==prevFilter) + { + return; + } + framesBeforeUpdating = 60; + prevFilter = filter; + + var Terms = source == null ? LocalizationManager.GetTermsList() : source.GetTermsList(); + + if (string.IsNullOrEmpty(filter) == false) + { + Terms = Filter(Terms, filter); + } + + Terms.Sort(StringComparer.OrdinalIgnoreCase); + Terms.Add(""); + Terms.Add(""); + Terms.Add(""); + + terms_Contexts = DisplayOptions(Terms); + } + + private static List Filter(List terms, string filter) + { + var filtered = new List(); + for (var i = 0; i < terms.Count; i++) + { + var term = terms[i]; + if (term.Contains(filter)) + { + filtered.Add(term); + } + } + + return filtered; + } + + private static GUIContent[] DisplayOptions(IList terms) + { + var options = new GUIContent[terms.Count]; + for (var i = 0; i < terms.Count; i++) + { + options[i] = new GUIContent(terms[i]); + } + + return options; + } + } + + [CustomPropertyDrawer(typeof(LocalizedString))] + public class LocalizedStringDrawer : PropertyDrawer + { + GUIContent[] mTerms_Context; + int nFramesLeftBeforeUpdate; + string mPrevFilter; + + public override void OnGUI(Rect rect, SerializedProperty property, GUIContent label) + { + var termRect = rect; termRect.xMax -= 50; + var termProp = property.FindPropertyRelative("mTerm"); + TermsPopup_Drawer.ShowGUICached(termRect, termProp, label, null, "", ref mTerms_Context, ref nFramesLeftBeforeUpdate, ref mPrevFilter); + + var maskRect = rect; maskRect.xMin = maskRect.xMax - 30; + var termIgnoreRTL = property.FindPropertyRelative("mRTL_IgnoreArabicFix"); + var termConvertNumbers = property.FindPropertyRelative("mRTL_ConvertNumbers"); + var termDontLocalizeParams = property.FindPropertyRelative("m_DontLocalizeParameters"); + int mask = (termIgnoreRTL.boolValue ? 0 : 1) + + (termConvertNumbers.boolValue ? 0 : 2) + + (termDontLocalizeParams.boolValue ? 0 : 4); + + int newMask = EditorGUI.MaskField(maskRect, mask, new[] { "Arabic Fix", "Ignore Numbers in RTL", "Localize Parameters" }); + if (newMask != mask) + { + termIgnoreRTL.boolValue = (newMask & 1) == 0; + termConvertNumbers.boolValue = (newMask & 2) == 0; + termDontLocalizeParams.boolValue = (newMask & 4) == 0; + } + + var showRect = rect; showRect.xMin = termRect.xMax; showRect.xMax=maskRect.xMin; + bool enabled = GUI.enabled; + GUI.enabled = enabled & (!string.IsNullOrEmpty (termProp.stringValue) && termProp.stringValue!="-"); + if (GUI.Button (showRect, "?")) + { + var source = LocalizationManager.GetSourceContaining(termProp.stringValue); + LocalizationEditor.mKeyToExplore = termProp.stringValue; + Selection.activeObject = source.ownerObject; + } + GUI.enabled = enabled; + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs.meta new file mode 100644 index 00000000..0290190a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Inspectors/TermsPopup_Drawer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 51c22a426b92fa84cb6ca7b75176da8a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization.meta new file mode 100644 index 00000000..9972eb5f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8ad136296e8e6e14eaa2726ac1992b6c +folderAsset: yes +timeCreated: 1461137613 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs new file mode 100644 index 00000000..001b4498 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs @@ -0,0 +1,308 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine; +using UnityEngine.SceneManagement; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + + #region Variables + + public enum eViewMode { ImportExport, Keys, Languages, Tools, References } + public static eViewMode mCurrentViewMode = eViewMode.Keys; + + public enum eSpreadsheetMode { Local, Google } + public eSpreadsheetMode mSpreadsheetMode = eSpreadsheetMode.Google; + + + public static string mLocalizationMsg = ""; + public static MessageType mLocalizationMessageType = MessageType.None; + + // These variables are for executing action from Unity Tests + public enum eTest_ActionType { None, Button_AddLanguageFromPopup, Button_AddLanguageManual, + Button_AddTerm_InTermsList, Button_AddSelectedTerms, + Button_RemoveSelectedTerms, Button_DeleteTerm, + Button_SelectTerms_All, Button_SelectTerms_None, Button_SelectTerms_Used, Button_SelectTerms_Missing, + Button_Term_Translate, Button_Term_TranslateAll, Button_Languages_TranslateAll, + Button_Assets_Add, Button_Assets_Replace, Button_Assets_Delete, + Button_GoogleSpreadsheet_RefreshList, Button_GoogleSpreadsheet_Export, Button_GoogleSpreadsheet_Import + } + public static eTest_ActionType mTestAction = eTest_ActionType.None; + public static object mTestActionArg, mTestActionArg2; + + #endregion + + #region Editor + + /*[MenuItem("Window/Localization", false)] + public static void OpenLocalizationEditor() + { + EditorWindow.GetWindow(false, "Localization", true); + }*/ + + #endregion + + #region GUI + + void InitializeStyles() + { + Style_ToolBar_Big = new GUIStyle(EditorStyles.toolbar); + Style_ToolBar_Big.fixedHeight = Style_ToolBar_Big.fixedHeight*1.5f; + + Style_ToolBarButton_Big = new GUIStyle(EditorStyles.toolbarButton); + Style_ToolBarButton_Big.fixedHeight = Style_ToolBarButton_Big.fixedHeight*1.5f; + } + + + void OnGUI_Main() + { + OnGUI_Warning_SourceInScene(); + OnGUI_Warning_SourceInsidePluginsFolder(); + OnGUI_Warning_SourceNotUpToDate(); + + var prevViewMode = mCurrentViewMode; + + GUILayout.BeginHorizontal(); + //OnGUI_ToggleEnumBig( "Spreadsheets", ref mCurrentViewMode, eViewMode.ImportExport, GUI.skin.GetStyle("CN EntryWarn").normal.background, "External Spreadsheet File or Service" ); + OnGUI_ToggleEnumBig( "Spreadsheets", ref mCurrentViewMode, eViewMode.ImportExport, null, "External Spreadsheet File or Service" ); + OnGUI_ToggleEnumBig( "Terms", ref mCurrentViewMode, eViewMode.Keys, null, null ); + OnGUI_ToggleEnumBig( "Languages", ref mCurrentViewMode, eViewMode.Languages, null, null ); + OnGUI_ToggleEnumBig( "Tools", ref mCurrentViewMode, eViewMode.Tools, null, null ); + OnGUI_ToggleEnumBig( "Assets", ref mCurrentViewMode, eViewMode.References, null, null ); + GUILayout.EndHorizontal(); + //GUILayout.Space(10); + + switch (mCurrentViewMode) + { + case eViewMode.ImportExport : OnGUI_ImportExport(); break; + case eViewMode.Keys : OnGUI_KeysList(); break; + case eViewMode.Languages : OnGUI_Languages(); break; + case eViewMode.Tools : OnGUI_Tools(prevViewMode != mCurrentViewMode); break; + case eViewMode.References : OnGUI_References(); break; + } + } + + void OnGUI_ImportExport() + { + eSpreadsheetMode OldMode = mSpreadsheetMode; + mSpreadsheetMode = (eSpreadsheetMode)GUITools.DrawShadowedTabs ((int)mSpreadsheetMode, new[]{"Local", "Google"}); + if (mSpreadsheetMode != OldMode) + ClearErrors(); + + GUITools.BeginContents(); + switch (mSpreadsheetMode) + { + case eSpreadsheetMode.Local : OnGUI_Spreadsheet_Local(); break; + case eSpreadsheetMode.Google : OnGUI_Spreadsheet_Google(); break; + } + GUITools.EndContents(false); + } + + void OnGUI_References() + { + EditorGUILayout.HelpBox("These are the assets that are referenced by the Terms and not in the Resources folder", MessageType.Info); + + bool canTest = Event.current.type == EventType.Repaint; + + var testAddObj = canTest && mTestAction == eTest_ActionType.Button_Assets_Add ? (Object)mTestActionArg : null; + var testReplaceIndx = canTest && mTestAction == eTest_ActionType.Button_Assets_Replace ? (int)mTestActionArg : -1; + var testReplaceObj = canTest && mTestAction == eTest_ActionType.Button_Assets_Replace ? (Object)mTestActionArg2 : null; + var testDeleteIndx = canTest && mTestAction == eTest_ActionType.Button_Assets_Delete ? (int)mTestActionArg : -1; + + bool changed = GUITools.DrawObjectsArray( mProp_Assets, false, false, false, testAddObj, testReplaceObj, testReplaceIndx, testDeleteIndx); + if (changed) + { + serializedObject.ApplyModifiedProperties(); + foreach (var obj in serializedObject.targetObjects) + (obj as LanguageSource).mSource.UpdateAssetDictionary(); + } + } + + #endregion + + #region Misc + + void OnGUI_ToggleEnumBig( string text, ref Enum currentMode, Enum newMode, Texture texture, string tooltip) { OnGUI_ToggleEnum( text, ref currentMode, newMode, texture, tooltip, Style_ToolBarButton_Big); } + void OnGUI_ToggleEnumSmall( string text, ref Enum currentMode, Enum newMode, Texture texture, string tooltip) { OnGUI_ToggleEnum( text, ref currentMode, newMode, texture, tooltip, EditorStyles.toolbarButton); } + void OnGUI_ToggleEnum( string text, ref Enum currentMode, Enum newMode, Texture texture, string tooltip, GUIStyle style) + { + GUI.changed = false; + if (GUILayout.Toggle( currentMode.Equals(newMode), new GUIContent(text, texture, tooltip), style, GUILayout.ExpandWidth(true))) + { + currentMode = newMode; + if (GUI.changed) + ClearErrors(); + } + } + + int OnGUI_FlagToogle( string Text, string tooltip, int flags, int bit ) + { + bool State = (flags & bit)>0; + bool NewState = GUILayout.Toggle(State, new GUIContent(Text, tooltip), "toolbarbutton"); + if (State!=NewState) + { + if (!NewState && flags==bit) + return flags; + + flags = NewState ? flags | bit : flags & ~bit; + } + + return flags; + } + + void OnGUI_SelectableToogleListItem( string Element, ref List Selections, string Style ) + { + bool WasEnabled = Selections.Contains(Element); + bool IsEnabled = GUILayout.Toggle( WasEnabled, "", Style, GUILayout.ExpandWidth(false) ); + + if (IsEnabled && !WasEnabled) + Selections.Add(Element); + else + if (!IsEnabled && WasEnabled) + Selections.Remove(Element); + } + + void OnGUI_SelectableToogleListItem( Rect rect, string Element, ref List Selections, string Style ) + { + bool WasEnabled = Selections.Contains(Element); + bool IsEnabled = GUI.Toggle( rect, WasEnabled, "", Style ); + + if (IsEnabled && !WasEnabled) + Selections.Add(Element); + else + if (!IsEnabled && WasEnabled) + Selections.Remove(Element); + } + + static bool InTestAction( eTest_ActionType testType ) + { + return mTestAction == testType && Event.current.type == EventType.Repaint; + } + static bool TestButton(eTest_ActionType action, string text, GUIStyle style, params GUILayoutOption[] options) + { + return GUILayout.Button(text, style, options) || mTestAction == action && Event.current.type == EventType.Repaint; + } + + static bool TestButtonArg(eTest_ActionType action, object arg, string text, GUIStyle style, params GUILayoutOption[] options) + { + return GUILayout.Button(text, style, options) || mTestAction == action && (mTestActionArg==null || mTestActionArg.Equals(arg)) && Event.current.type == EventType.Repaint; + } + + + static bool TestButton(eTest_ActionType action, GUIContent text, GUIStyle style, params GUILayoutOption[] options) + { + return GUILayout.Button(text, style, options) || mTestAction == action && Event.current.type == EventType.Repaint; + } + + static bool TestButtonArg(eTest_ActionType action, object arg, GUIContent text, GUIStyle style, params GUILayoutOption[] options) + { + return GUILayout.Button(text, style, options) || mTestAction == action && (mTestActionArg == null || mTestActionArg.Equals(arg)) && Event.current.type == EventType.Repaint; + } + + #endregion + + #region Error Management + + static void OnGUI_ShowMsg() + { + if (!string.IsNullOrEmpty(mLocalizationMsg)) + { + GUILayout.BeginHorizontal(); + EditorGUILayout.HelpBox(mLocalizationMsg, mLocalizationMessageType); + + GUILayout.Space(-5); + GUILayout.BeginVertical(GUILayout.Width(15), GUILayout.ExpandHeight(false)); + GUILayout.Space(15); + if (GUILayout.Button("X", "ToolbarSeachCancelButton", GUILayout.ExpandWidth(false))) + ClearErrors(); + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + GUILayout.Space(8); + } + } + + static void ShowError ( string Error, bool ShowInConsole = true ) { ShowMessage ( Error, MessageType.Error, ShowInConsole ); } + static void ShowInfo ( string Msg, bool ShowInConsole = false ) { ShowMessage ( Msg, MessageType.Info, ShowInConsole ); } + static void ShowWarning( string Msg, bool ShowInConsole = true) { ShowMessage ( Msg, MessageType.Warning, ShowInConsole ); } + + static void ShowMessage( string Msg, MessageType msgType, bool ShowInConsole ) + { + if (string.IsNullOrEmpty(Msg)) + Msg = string.Empty; + + mLocalizationMsg = Msg; + mLocalizationMessageType = msgType; + if (ShowInConsole) + { + switch (msgType) + { + case MessageType.Error : Debug.LogError(Msg); break; + case MessageType.Warning : Debug.LogWarning(Msg); break; + default : Debug.Log(Msg); break; + } + } + } + + + public static void ClearErrors() + { + GUI.FocusControl(null); + + mLocalizationMsg = string.Empty; + } + + #endregion + + #region Unity Version branching + + public static string Editor_GetCurrentScene() + { + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + return EditorApplication.currentScene; + #else + return SceneManager.GetActiveScene().path; + #endif + } + + public static void Editor_MarkSceneDirty() + { + #if UNITY_5_3 || UNITY_5_3_OR_NEWER + EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene()); + #else + EditorApplication.MarkSceneDirty(); + #endif + } + + public static void Editor_SaveScene(bool force=false) + { + if (force) + Editor_MarkSceneDirty(); + + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + EditorApplication.SaveScene (); + #else + EditorSceneManager.SaveOpenScenes(); + #endif + } + + public static void Editor_OpenScene( string sceneName ) + { +#if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + if (string.IsNullOrEmpty(sceneName)) + EditorApplication.NewEmptyScene(); + else + EditorApplication.OpenScene(sceneName); +#else + if (string.IsNullOrEmpty(sceneName)) + EditorSceneManager.NewScene(NewSceneSetup.DefaultGameObjects, NewSceneMode.Single); + else + EditorSceneManager.OpenScene(sceneName); + #endif + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs.meta new file mode 100644 index 00000000..71ed09b3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ffd53aaaf6936407d8b087583b0626e9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs new file mode 100644 index 00000000..087c6423 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs @@ -0,0 +1,477 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + private List mTranslationTerms = new List(); + private Dictionary mTranslationRequests = new Dictionary (); + private bool mAppNameTerm_Expanded; + + private List mLanguageCodePopupList; + + #endregion + + void OnGUI_Languages() + { + //GUILayout.Space(5); + + OnGUI_ShowMsg(); + + OnGUI_LanguageList(); + + OnGUI_StoreIntegration(); + + GUILayout.BeginHorizontal(); + GUILayout.Label(new GUIContent("On Missing Translation:", "What should happen IN-GAME when a term is not yet translated to the current language?"), EditorStyles.boldLabel, GUILayout.Width(200)); + GUILayout.BeginVertical(); + GUILayout.Space(7); + EditorGUILayout.PropertyField(mProp_OnMissingTranslation, GUITools.EmptyContent, GUILayout.Width(165)); + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Label(new GUIContent("Unload Languages At Runtime:", "When playing the game, the plugin will unload all unused languages and only load them when needed"), EditorStyles.boldLabel, GUILayout.Width(200)); + GUILayout.BeginVertical(); + GUILayout.Space(7); + EditorGUILayout.PropertyField(mProp_AllowUnloadingLanguages, GUITools.EmptyContent, GUILayout.Width(165)); + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + + + + + string firstLanguage = ""; + if (mLanguageSource.mLanguages.Count > 0) + firstLanguage = " (" + mLanguageSource.mLanguages [0].Name + ")"; + + GUILayout.BeginHorizontal(); + GUILayout.Label(new GUIContent("Default Language:", "When the game starts this is the language that will be used until the player manually selects a language"), EditorStyles.boldLabel, GUILayout.Width(160)); + GUILayout.BeginVertical(); + GUILayout.Space(7); + + mProp_IgnoreDeviceLanguage.boolValue = EditorGUILayout.Popup(mProp_IgnoreDeviceLanguage.boolValue?1:0, new[]{"Device Language", "First in List"+firstLanguage}, GUILayout.ExpandWidth(true))==1; + GUILayout.EndVertical(); + GUILayout.EndHorizontal(); + } + + #region GUI Languages + + void OnGUI_LanguageList() + { + GUILayout.BeginHorizontal(EditorStyles.toolbar); + GUILayout.FlexibleSpace(); + GUILayout.Label ("Languages:", EditorStyles.miniLabel, GUILayout.ExpandWidth(false)); + GUILayout.FlexibleSpace(); + GUILayout.Label ("Code:", EditorStyles.miniLabel); + GUILayout.Space(170); + GUILayout.EndHorizontal(); + + //--[ Language List ]-------------------------- + + int IndexLanguageToDelete = -1; + int LanguageToMoveUp = -1; + int LanguageToMoveDown = -1; + GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + mScrollPos_Languages = GUILayout.BeginScrollView( mScrollPos_Languages, LocalizeInspector.GUIStyle_OldTextArea, GUILayout.MinHeight (200), /*GUILayout.MaxHeight(Screen.height),*/ GUILayout.ExpandHeight(false)); + GUI.backgroundColor = Color.white; + + if (mLanguageCodePopupList == null || mLanguageCodePopupList.Count==0) + { + mLanguageCodePopupList = GoogleLanguages.GetLanguagesForDropdown("", ""); + mLanguageCodePopupList.Sort(); + mLanguageCodePopupList.Insert(0, string.Empty); + } + + for (int i=0, imax=mProp_Languages.arraySize; i c.Contains(currentCode))); + EditorGUI.BeginChangeCheck(); + Index = EditorGUILayout.Popup(Index, mLanguageCodePopupList.ToArray(), EditorStyles.toolbarPopup, GUILayout.Width(60)); + if (EditorGUI.EndChangeCheck() && Index >= 0) + { + currentCode = mLanguageCodePopupList[Index]; + int i0 = currentCode.IndexOf("["); + int i1 = currentCode.IndexOf("]"); + if (i0 >= 0 && i1 > i0) + Prop_LangCode.stringValue = currentCode.Substring(i0 + 1, i1 - i0 - 1); + else + Prop_LangCode.stringValue = string.Empty; + } + var rect = GUILayoutUtility.GetLastRect(); + GUI.Label(rect, Prop_LangCode.stringValue, EditorStyles.toolbarPopup); + } + else + { + GUILayout.Label(Prop_LangCode.stringValue, EditorStyles.toolbarPopup, GUILayout.Width(60)); + } + + GUILayout.EndHorizontal(); + + GUI.enabled = i0; + if (GUILayout.Button( "\u25B2", EditorStyles.toolbarButton, GUILayout.Width(18))) LanguageToMoveUp = i; + + GUI.enabled = true; + if (GUILayout.Button( new GUIContent("Show", "Preview all localizations into this language"), EditorStyles.toolbarButton, GUILayout.Width(35))) + { + LocalizationManager.SetLanguageAndCode( LanName, Prop_LangCode.stringValue, false, true); + } + + if (TestButtonArg( eTest_ActionType.Button_Languages_TranslateAll, i, new GUIContent("Translate", "Translate all empty terms"), EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + GUITools.DelayedCall(() => TranslateAllToLanguage(LanName)); + } + GUI.enabled = true; + GUI.color = Color.white; + + EditorGUI.BeginChangeCheck(); + isLanguageEnabled = EditorGUILayout.Toggle(isLanguageEnabled, GUILayout.Width(15)); + + var r = GUILayoutUtility.GetLastRect(); + GUI.Label(r, new GUIContent("", "Enable/Disable the language.\nDisabled languages can be used to store data values or to avoid showing Languages that are stil under development")); + + if (EditorGUI.EndChangeCheck()) + { + Prop_Flags.intValue = (Prop_Flags.intValue & ~(int)eLanguageDataFlags.DISABLED) | (isLanguageEnabled ? 0 : (int)eLanguageDataFlags.DISABLED); + } + + GUILayout.EndHorizontal(); + } + + GUILayout.EndScrollView(); + + OnGUI_AddLanguage( mProp_Languages ); + + if (mConnection_WWW!=null || mConnection_Text.Contains("Translating")) + { + // Connection Status Bar + int time = (int)(Time.realtimeSinceStartup % 2 * 2.5); + string Loading = mConnection_Text + ".....".Substring(0, time); + GUI.color = Color.gray; + GUILayout.BeginHorizontal(LocalizeInspector.GUIStyle_OldTextArea); + GUILayout.Label (Loading, EditorStyles.miniLabel); + GUI.color = Color.white; + if (GUILayout.Button("Cancel", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + GoogleTranslation.CancelCurrentGoogleTranslations (); + StopConnectionWWW(); + } + GUILayout.EndHorizontal(); + Repaint(); + } + + if (IndexLanguageToDelete>=0) + { + if (EditorUtility.DisplayDialog ("Confirm delete", "Are you sure you want to delete the selected language", "Yes", "Cancel")) + { + mLanguageSource.RemoveLanguage (mLanguageSource.mLanguages [IndexLanguageToDelete].Name); + serializedObject.Update (); + ParseTerms (true, false, false); + } + } + + if (LanguageToMoveUp>=0) SwapLanguages( LanguageToMoveUp, LanguageToMoveUp-1 ); + if (LanguageToMoveDown>=0) SwapLanguages( LanguageToMoveDown, LanguageToMoveDown+1 ); + } + + void SwapLanguages( int iFirst, int iSecond ) + { + serializedObject.ApplyModifiedProperties(); + LanguageSourceData Source = mLanguageSource; + + SwapValues( Source.mLanguages, iFirst, iSecond ); + foreach (TermData termData in Source.mTerms) + { + SwapValues ( termData.Languages, iFirst, iSecond ); + SwapValues ( termData.Flags, iFirst, iSecond ); + } + serializedObject.Update(); + } + + void SwapValues( List mList, int Index1, int Index2 ) + { + LanguageData temp = mList[Index1]; + mList[Index1] = mList[Index2]; + mList[Index2] = temp; + } + void SwapValues( string[] mList, int Index1, int Index2 ) + { + string temp = mList[Index1]; + mList[Index1] = mList[Index2]; + mList[Index2] = temp; + } + void SwapValues( byte[] mList, int Index1, int Index2 ) + { + byte temp = mList[Index1]; + mList[Index1] = mList[Index2]; + mList[Index2] = temp; + } + + + void OnGUI_AddLanguage( SerializedProperty Prop_Languages) + { + //--[ Add Language Upper Toolbar ]----------------- + + GUILayout.BeginVertical(); + GUILayout.BeginHorizontal(); + + GUILayout.BeginHorizontal(EditorStyles.toolbar); + mLanguages_NewLanguage = EditorGUILayout.TextField("", mLanguages_NewLanguage, EditorStyles.toolbarTextField, GUILayout.ExpandWidth(true)); + GUILayout.EndHorizontal(); + + GUI.enabled = !string.IsNullOrEmpty (mLanguages_NewLanguage); + if (TestButton(eTest_ActionType.Button_AddLanguageManual,"Add", EditorStyles.toolbarButton, GUILayout.Width(50))) + { + Prop_Languages.serializedObject.ApplyModifiedProperties(); + mLanguageSource.AddLanguage( mLanguages_NewLanguage, GoogleLanguages.GetLanguageCode(mLanguages_NewLanguage) ); + Prop_Languages.serializedObject.Update(); + mLanguages_NewLanguage = ""; + GUI.FocusControl(string.Empty); + } + GUI.enabled = true; + + GUILayout.EndHorizontal(); + + + //--[ Add Language Bottom Toolbar ]----------------- + + GUILayout.BeginHorizontal(); + + //-- Language Dropdown ----------------- + string CodesToExclude = string.Empty; + foreach (var LanData in mLanguageSource.mLanguages) + CodesToExclude = string.Concat(CodesToExclude, "[", LanData.Code, "]"); + + List Languages = GoogleLanguages.GetLanguagesForDropdown(mLanguages_NewLanguage, CodesToExclude); + + GUI.changed = false; + int index = EditorGUILayout.Popup(0, Languages.ToArray(), EditorStyles.toolbarDropDown); + + if (GUI.changed && index>=0) + { + mLanguages_NewLanguage = GoogleLanguages.GetFormatedLanguageName( Languages[index] ); + } + + + if (TestButton(eTest_ActionType.Button_AddLanguageFromPopup, "Add", EditorStyles.toolbarButton, GUILayout.Width(50)) && index>=0) + { + Prop_Languages.serializedObject.ApplyModifiedProperties(); + mLanguages_NewLanguage = GoogleLanguages.GetFormatedLanguageName(Languages[index]); + + if (!string.IsNullOrEmpty(mLanguages_NewLanguage)) + mLanguageSource.AddLanguage(mLanguages_NewLanguage, GoogleLanguages.GetLanguageCode(mLanguages_NewLanguage)); + Prop_Languages.serializedObject.Update(); + + mLanguages_NewLanguage = ""; + GUI.FocusControl(string.Empty); + } + + GUILayout.EndHorizontal(); + GUILayout.EndVertical(); + GUI.color = Color.white; + } + + + void TranslateAllToLanguage (string lanName) + { + if (!GoogleTranslation.CanTranslate ()) + { + ShowError ("WebService is not set correctly or needs to be reinstalled"); + return; + } + ClearErrors(); + int LanIndex = mLanguageSource.GetLanguageIndex (lanName); + string code = mLanguageSource.mLanguages [LanIndex].Code; + string googleCode = GoogleLanguages.GetGoogleLanguageCode(code); + if (string.IsNullOrEmpty(googleCode)) + { + ShowError("Language '" + code + "' is not supported by google translate"); + return; + } + googleCode = code; + + mTranslationTerms.Clear (); + mTranslationRequests.Clear (); + foreach (var termData in mLanguageSource.mTerms) + { + if (termData.TermType != eTermType.Text) + continue; + + if (!string.IsNullOrEmpty(termData.Languages[LanIndex])) + continue; + + string sourceCode, sourceText; + FindTranslationSource( LanguageSourceData.GetKeyFromFullTerm(termData.Term), termData, code, null, out sourceText, out sourceCode ); + + mTranslationTerms.Add (termData.Term); + + GoogleTranslation.CreateQueries(sourceText, sourceCode, googleCode, mTranslationRequests); // can split plurals into several queries + } + + if (mTranslationRequests.Count == 0) + { + StopConnectionWWW (); + return; + } + + mConnection_WWW = null; + mConnection_Text = "Translating"; if (mTranslationRequests.Count > 1) mConnection_Text += " (" + mTranslationRequests.Count + ")"; + mConnection_Callback = null; + //EditorApplication.update += CheckForConnection; + + GoogleTranslation.Translate (mTranslationRequests, OnLanguageTranslated); + } + + void OnLanguageTranslated( Dictionary requests, string Error ) + { + //Debug.Log (Result); + + //if (Result.Contains("Service invoked too many times")) + //{ + // TimeStartTranslation = EditorApplication.timeSinceStartup + 1; + // EditorApplication.update += DelayedStartTranslation; + // mConnection_Text = "Translating (" + mTranslationRequests.Count + ")"; + // return; + //} + + //if (!string.IsNullOrEmpty(Error))/* || !Result.Contains("")*/ + //{ + // Debug.LogError("WEB ERROR: " + Error); + // ShowError ("Unable to access Google or not valid request"); + // return; + //} + + ClearErrors(); + StopConnectionWWW(); + + if (!string.IsNullOrEmpty(Error)) + { + ShowError (Error); + return; + } + + if (requests.Values.Count == 0) + return; + + var langCode = requests.Values.First().TargetLanguagesCode [0]; + //langCode = GoogleLanguages.GetGoogleLanguageCode(langCode); + int langIndex = mLanguageSource.GetLanguageIndexFromCode (langCode, false); + //if (langIndex >= 0) + { + foreach (var term in mTranslationTerms) + { + var termData = mLanguageSource.GetTermData(term); + if (termData == null) + continue; + if (termData.TermType != eTermType.Text) + continue; + //if (termData.Languages.Length <= langIndex) + // continue; + + string sourceCode, sourceText; + FindTranslationSource(LanguageSourceData.GetKeyFromFullTerm(termData.Term), termData, langCode, null, out sourceText, out sourceCode); + + string result = GoogleTranslation.RebuildTranslation(sourceText, mTranslationRequests, langCode); // gets the result from google and rebuilds the text from multiple queries if its is plurals + + termData.Languages[langIndex] = result; + } + } + + mTranslationTerms.Clear (); + mTranslationRequests.Clear (); + StopConnectionWWW (); + } + + #endregion + + #region Store Integration + + void OnGUI_StoreIntegration() + { + GUIStyle lstyle = new GUIStyle (EditorStyles.label); + lstyle.richText = true; + + GUILayout.BeginHorizontal (); + GUILayout.Label (new GUIContent("Store Integration:", "Setups the stores to detect that the game has localization, Android adds strings.xml for each language. IOS modifies the Info.plist"), EditorStyles.boldLabel, GUILayout.Width(160)); + GUILayout.FlexibleSpace(); + + GUILayout.Label( new GUIContent( "\u2713 IOS", "Setups the stores to show in iTunes and the Appstore all the languages that this app supports, also localizes the app name if available" ), lstyle, GUILayout.Width( 90 ) ); + GUILayout.Label( new GUIContent( "\u2713 Android", "Setups the stores to show in GooglePlay all the languages this app supports, also localizes the app name if available" ), lstyle, GUILayout.Width( 90 ) ); + GUILayout.EndHorizontal (); + + GUILayout.BeginHorizontal(); + mAppNameTerm_Expanded = GUILayout.Toggle(mAppNameTerm_Expanded, new GUIContent( "App Name translations:", "How should the game be named in the devices based on their language" ), EditorStyles.foldout, GUILayout.Width( 160 ) ); + + GUILayout.Label("", GUILayout.ExpandWidth(true)); + var rect = GUILayoutUtility.GetLastRect(); + TermsPopup_Drawer.ShowGUI( rect, mProp_AppNameTerm, GUITools.EmptyContent, mLanguageSource); + + if (GUILayout.Button("New Term", EditorStyles.miniButton, GUILayout.ExpandWidth(false))) + { + AddLocalTerm("App_Name"); + mProp_AppNameTerm.stringValue = "App_Name"; + mAppNameTerm_Expanded = true; + } + GUILayout.EndHorizontal(); + + if (mAppNameTerm_Expanded) + { + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + + GUILayout.BeginVertical("Box"); + var termName = mProp_AppNameTerm.stringValue; + if (!string.IsNullOrEmpty(termName)) + { + var termData = LocalizationManager.GetTermData(termName); + if (termData != null) + OnGUI_Keys_Languages(mProp_AppNameTerm.stringValue, ref termData, null, true, mLanguageSource); + } + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + GUILayout.Label("Default App Name:", lstyle, GUITools.DontExpandWidth); + GUILayout.Label(Application.productName); + GUILayout.EndHorizontal(); + GUILayout.EndVertical(); + + GUILayout.EndHorizontal(); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs.meta new file mode 100644 index 00000000..375ebe73 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Languages.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 304783c1e95d94a598aecd17728c8556 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs new file mode 100644 index 00000000..ee2a4d14 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs @@ -0,0 +1,717 @@ +using System; +using System.Collections.Generic; +using System.Text; +using I2.Loc.SimpleJSON; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + + public static Dictionary mGoogleSpreadsheets = new Dictionary(StringComparer.Ordinal); + + public UnityWebRequest mConnection_WWW; + + delegate void fnConnectionCallback(string Result, string Error); + event fnConnectionCallback mConnection_Callback; + //float mConnection_TimeOut; + + string mConnection_Text = string.Empty; + + string mWebService_Status; + + #endregion + + #region GUI + + void OnGUI_Spreadsheet_Google() + { + GUILayout.Space(20); + +#if UNITY_WEBPLAYER + mConnection_Text = string.Empty; + EditorGUILayout.HelpBox("Google Synchronization is not supported when in WebPlayer mode." + mConnection_Text, MessageType.Info); + + mProp_GoogleUpdateFrequency.enumValueIndex = mProp_GoogleUpdateFrequency.enumValueIndex; // to avoid the warning "unused" + mProp_GoogleUpdateSynchronization.enumValueIndex = mProp_GoogleUpdateSynchronization.enumValueIndex; +#else + + OnGUI_GoogleCredentials(); + + OnGUI_ShowMsg(); + + if (string.IsNullOrEmpty(mProp_Google_WebServiceURL.stringValue)) + return; + + if (mWebService_Status == "Offline") + return; + + GUILayout.Space(20); + + GUI.backgroundColor = Color.Lerp(Color.gray, Color.white, 0.5f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height (1)); + GUI.backgroundColor = Color.white; + GUILayout.Space(10); + + GUILayout.BeginHorizontal(); + GUILayout.Label(new GUIContent(" Password", "This should match the value of the LocalizationPassword variable in the WebService Script in your Google Drive"), GUILayout.Width(108)); + mProp_Google_Password.stringValue = EditorGUILayout.TextField(mProp_Google_Password.stringValue, GUILayout.ExpandWidth(true)); + GUILayout.EndHorizontal(); + + OnGUI_GoogleSpreadsheetsInGDrive(); + GUILayout.EndVertical(); + + if (mConnection_WWW!=null) + { + // Connection Status Bar + int time = (int)(Time.realtimeSinceStartup % 2 * 2.5); + string Loading = mConnection_Text + ".....".Substring(0, time); + GUI.color = Color.gray; + GUILayout.BeginHorizontal(LocalizeInspector.GUIStyle_OldTextArea); + GUILayout.Label (Loading, EditorStyles.miniLabel); + GUI.color = Color.white; + if (GUILayout.Button("Cancel", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + StopConnectionWWW(); + GUILayout.EndHorizontal(); + Repaint(); + } + //else + // GUILayout.Space(10); + + + EditorGUI.BeginChangeCheck(); + GUILayout.Space(5); + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + LanguageSourceData.eGoogleUpdateFrequency GoogleUpdateFrequency = (LanguageSourceData.eGoogleUpdateFrequency)mProp_GoogleUpdateFrequency.enumValueIndex; + GoogleUpdateFrequency = (LanguageSourceData.eGoogleUpdateFrequency)EditorGUILayout.EnumPopup("Auto Update Frequency", GoogleUpdateFrequency, GUILayout.ExpandWidth(true)); + if (EditorGUI.EndChangeCheck()) + { + mProp_GoogleUpdateFrequency.enumValueIndex = (int)GoogleUpdateFrequency; + } + + GUILayout.Space(10); + GUILayout.Label("Delay:"); + mProp_GoogleUpdateDelay.floatValue = EditorGUILayout.FloatField(mProp_GoogleUpdateDelay.floatValue, GUILayout.Width(30)); + GUILayout.Label("secs"); + + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + var GoogleInEditorCheckFrequency = (LanguageSourceData.eGoogleUpdateFrequency)mProp_GoogleInEditorCheckFrequency.enumValueIndex; + EditorGUI.BeginChangeCheck(); + GoogleInEditorCheckFrequency = (LanguageSourceData.eGoogleUpdateFrequency)EditorGUILayout.EnumPopup(new GUIContent("In-Editor Check Frequency", "How often the editor will verify that the Spreadsheet is up-to-date with the LanguageSource. Having un-synchronized Spreadsheets can lead to issues when playing in the device as the download data will override the one in the build"), GoogleInEditorCheckFrequency, GUILayout.ExpandWidth(false)); + if (EditorGUI.EndChangeCheck()) + { + mProp_GoogleInEditorCheckFrequency.enumValueIndex = (int)GoogleInEditorCheckFrequency; + } + GUILayout.Space(122); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Label("Update Synchronization", GUILayout.Width(180)); + EditorGUI.BeginChangeCheck(); + LanguageSourceData.eGoogleUpdateSynchronization GoogleUpdateSynchronization = (LanguageSourceData.eGoogleUpdateSynchronization)mProp_GoogleUpdateSynchronization.enumValueIndex; + GoogleUpdateSynchronization = (LanguageSourceData.eGoogleUpdateSynchronization)EditorGUILayout.EnumPopup(GoogleUpdateSynchronization, GUILayout.Width(178)); + if (EditorGUI.EndChangeCheck()) + { + mProp_GoogleUpdateSynchronization.enumValueIndex = (int)GoogleUpdateSynchronization; + } + GUILayout.EndHorizontal(); + + GUILayout.Space(5); + + GUI.changed = false; + bool OpenDataSourceAfterExport = EditorPrefs.GetBool("I2Loc OpenDataSourceAfterExport", true); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + OpenDataSourceAfterExport = GUILayout.Toggle(OpenDataSourceAfterExport, "Open Spreadsheet after Export"); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + if (GUI.changed) + { + GUI.changed = false; + EditorPrefs.SetBool("I2Loc OpenDataSourceAfterExport", OpenDataSourceAfterExport); + } + +#endif + + GUILayout.Space(5); + } + + void OnGUI_GoogleCredentials() + { + GUI.enabled = mConnection_WWW==null; + + GUI.changed = false; + + string WebServiceHelp = "The web service is a script running on the google drive where the spreadsheet you want to use is located.\nThat script allows the game to synchronize the localization even after the game is published."; + + GUILayout.BeginHorizontal(); + GUILayout.Label (new GUIContent("Web Service URL:", WebServiceHelp), GUILayout.Width(110)); + + GUI.SetNextControlName ("WebServiceURL"); + mProp_Google_WebServiceURL.stringValue = EditorGUILayout.TextField(mProp_Google_WebServiceURL.stringValue); + + if (!string.IsNullOrEmpty(mWebService_Status)) + { + if (mWebService_Status=="Online") + { + GUI.color = Color.green; + GUILayout.Label( "", GUILayout.Width(17)); + Rect r = GUILayoutUtility.GetLastRect(); r.xMin += 3; r.yMin-= 3; r.xMax+= 2; r.yMax+=2; + GUI.Label( r, new GUIContent("\u2713", "Online"), EditorStyles.whiteLargeLabel); + GUI.color = Color.white; + } + else + if (mWebService_Status=="Offline") + { + GUI.color = Color.red; + GUILayout.Label( "", GUILayout.Width(17)); + Rect r = GUILayoutUtility.GetLastRect(); r.xMin += 3; r.yMin-= 3; r.xMax+= 2; r.yMax+=2; + GUI.Label( r, new GUIContent("\u2717", mWebService_Status), EditorStyles.whiteLargeLabel); + GUI.color = Color.white; + } + else + if (mWebService_Status=="UnsupportedVersion") + { + Rect rect = GUILayoutUtility.GetLastRect(); + float Width = 15; + rect.xMin = rect.xMax+1; + rect.xMax = rect.xMin + rect.height; + GUITools.DrawSkinIcon(rect, "CN EntryWarnIcon", "CN EntryWarn"); + GUI.Label(rect, new GUIContent("\u2717", "The current Google WebService is not supported.\nPlease, delete the WebService from the Google Drive and Install the latest version.")); + GUILayout.Space (Width); + } + } + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Space (118); + if (GUILayout.Button(new GUIContent("Install", "This opens the Web Service Script and shows you steps to install and authorize it on your Google Drive"), EditorStyles.toolbarButton)) + { + ClearErrors(); + Application.OpenURL("https://script.google.com/d/1zcsLSmq3Oddd8AsLuoKNDG1Y0eYBOHzyvGT7v94u1oN6igmsZb_PJzEm/newcopy"); // V5 + //Application.OpenURL("https://goo.gl/RBCO0o"); // V4:https://script.google.com/d/1T7e5_40NcgRyind-yeg4PAkHz9TNZJ22F4RcbOvCpAs03JNf1vKNNTZB/newcopy + //Application.OpenURL("https://goo.gl/wFSbv2");// V3:https://script.google.com/d/1CxQDSXflsXRaH3M7xGfrIDrFwOIHWPsYTWi4mRZ_k77nyIInTgIk63Kd/newcopy"); + } + if (GUILayout.Button("Verify", EditorStyles.toolbarButton)) + { + ClearErrors(); + VerifyGoogleService(mProp_Google_WebServiceURL.stringValue); + GUI.changed = false; + } + GUILayout.EndHorizontal(); + + + if (string.IsNullOrEmpty(mProp_Google_WebServiceURL.stringValue)) + { + EditorGUILayout.HelpBox(WebServiceHelp, MessageType.Info); + } + + if (GUI.changed) + { + if (string.IsNullOrEmpty(mProp_Google_WebServiceURL.stringValue)) + { + mProp_Google_SpreadsheetKey.stringValue = string.Empty; + mProp_Google_SpreadsheetName.stringValue = string.Empty; + } + + + // If the web service changed then clear the cached spreadsheet keys + mGoogleSpreadsheets.Clear(); + + GUI.changed = false; + ClearErrors(); + } + GUI.enabled = true; + } + + void OnGUI_GoogleSpreadsheetsInGDrive() + { + GUI.enabled = mConnection_WWW==null; + + string[] Spreadsheets; + string[] SpreadsheetsKey; + if (mGoogleSpreadsheets.Count>0 || string.IsNullOrEmpty(mProp_Google_SpreadsheetKey.stringValue)) + { + Spreadsheets = new List(mGoogleSpreadsheets.Keys).ToArray(); + SpreadsheetsKey = new List(mGoogleSpreadsheets.Values).ToArray(); + } + else + { + Spreadsheets = new[]{mProp_Google_SpreadsheetName.stringValue ?? string.Empty}; + SpreadsheetsKey = new[]{mProp_Google_SpreadsheetKey.stringValue ?? string.Empty}; + } + int mSpreadsheetIndex = Array.IndexOf(SpreadsheetsKey, mProp_Google_SpreadsheetKey.stringValue); + + //--[ Spreadsheets ]------------------ + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + GUILayout.Label ("In Google Drive:", GUILayout.Width(100)); + + GUI.changed = false; + GUI.enabled = Spreadsheets != null && Spreadsheets.Length>0; + mSpreadsheetIndex = EditorGUILayout.Popup(mSpreadsheetIndex, Spreadsheets, EditorStyles.toolbarPopup); + if (GUI.changed && mSpreadsheetIndex >= 0) + { + mProp_Google_SpreadsheetKey.stringValue = SpreadsheetsKey[mSpreadsheetIndex]; + mProp_Google_SpreadsheetName.stringValue = Spreadsheets[mSpreadsheetIndex]; + GUI.changed = false; + } + GUI.enabled = true; + + GUI.enabled = !string.IsNullOrEmpty(mProp_Google_SpreadsheetKey.stringValue) && mConnection_WWW==null; + if (GUILayout.Button("X", EditorStyles.toolbarButton,GUILayout.ExpandWidth(false))) + mProp_Google_SpreadsheetKey.stringValue = string.Empty; + GUI.enabled = true; + GUILayout.Space(10); + GUILayout.EndHorizontal(); + + GUILayout.Space(2); + + //--[ Spreadsheets Operations ]------------------ + GUILayout.BeginHorizontal(); + GUILayout.Space(114); + if (GUILayout.Button("New", EditorStyles.toolbarButton,GUILayout.ExpandWidth(true))) + Google_NewSpreadsheet(); + + GUI.enabled = !string.IsNullOrEmpty(mProp_Google_SpreadsheetKey.stringValue) && mConnection_WWW==null; + if (GUILayout.Button("Open", EditorStyles.toolbarButton,GUILayout.ExpandWidth(true))) + OpenGoogleSpreadsheet(mProp_Google_SpreadsheetKey.stringValue); + GUI.enabled = mConnection_WWW==null; + + GUILayout.Space(5); + + if (TestButton(eTest_ActionType.Button_GoogleSpreadsheet_RefreshList, "Refresh", EditorStyles.toolbarButton,GUILayout.ExpandWidth(true))) + EditorApplication.update+=Google_FindSpreadsheets; + + GUILayout.Space(10); + GUILayout.EndHorizontal(); + + GUILayout.Space(15); + + if (!string.IsNullOrEmpty(mProp_Google_SpreadsheetKey.stringValue)) + OnGUI_GoogleButtons_ImportExport( mProp_Google_SpreadsheetKey.stringValue ); + + GUI.enabled = true; + } + + + private void OnGUI_ImportButtons() + { + eSpreadsheetUpdateMode Mode = SynchronizationButtons("Import"); + if (Mode != eSpreadsheetUpdateMode.None || InTestAction(eTest_ActionType.Button_GoogleSpreadsheet_Import)) + { + if (mTestAction == eTest_ActionType.Button_GoogleSpreadsheet_Import) + Mode = (eSpreadsheetUpdateMode)mTestActionArg; + + serializedObject.ApplyModifiedProperties(); + + var modeCopy = Mode; + GUITools.DelayedCall(() => Import_Google(modeCopy)); + } + } + + private void OnGUI_ExportButtons() + { + eSpreadsheetUpdateMode Mode = SynchronizationButtons("Export"); + if (Mode != eSpreadsheetUpdateMode.None || InTestAction(eTest_ActionType.Button_GoogleSpreadsheet_Export)) + { + if (mTestAction == eTest_ActionType.Button_GoogleSpreadsheet_Export) + Mode = (eSpreadsheetUpdateMode)mTestActionArg; + + serializedObject.ApplyModifiedProperties(); + + var modeCopy = Mode; + GUITools.DelayedCall(() => Export_Google(modeCopy)); + } + } + + void OnGUI_GoogleButtons_ImportExport( string SpreadsheetKey ) + { + GUI.enabled = !string.IsNullOrEmpty(SpreadsheetKey) && mConnection_WWW==null; + + bool vertical = EditorGUIUtility.currentViewWidth < 450; + + if (vertical) + { + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + OnGUI_ImportButtons(); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + OnGUI_ExportButtons(); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + else + { + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + OnGUI_ImportButtons(); + GUILayout.FlexibleSpace(); + OnGUI_ExportButtons(); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + } + + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + EditorGUIUtility.labelWidth += 10; + EditorGUILayout.PropertyField(mProp_Spreadsheet_SpecializationAsRows, new GUIContent("Show Specializations as Rows", "true: Make each specialization a separate row (e.g. Term[VR]..., Term[Touch]....\nfalse: Merge specializations into same cell separated by [i2s_XXX]")); + EditorGUIUtility.labelWidth -= 10; + GUILayout.EndHorizontal(); + GUILayout.Space(10); + + + GUI.enabled = true; + } + + eSpreadsheetUpdateMode SynchronizationButtons( string Operation, bool ForceReplace = false ) + { + eSpreadsheetUpdateMode Result = eSpreadsheetUpdateMode.None; + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Width (1)); + GUI.backgroundColor = Color.white; + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.Label(Operation, EditorStyles.miniLabel); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + if (GUILayout.Button( "Replace", EditorStyles.toolbarButton, GUILayout.Width(60))) + Result = eSpreadsheetUpdateMode.Replace; + + if (ForceReplace) GUI.enabled = false; + if (GUILayout.Button( "Merge", EditorStyles.toolbarButton, GUILayout.Width(60))) + Result = eSpreadsheetUpdateMode.Merge; + + if (GUILayout.Button( "Add New", EditorStyles.toolbarButton, GUILayout.Width(60))) + Result = eSpreadsheetUpdateMode.AddNewTerms; + GUI.enabled = mConnection_WWW==null; + GUILayout.Space(1); + GUILayout.EndHorizontal(); + + GUILayout.Space(2); + GUILayout.EndVertical(); + + if (Result != eSpreadsheetUpdateMode.None) + ClearErrors(); + + return Result; + } + #endregion + + void VerifyGoogleService( string WebServiceURL ) + { + #if UNITY_WEBPLAYER + ShowError ("Contacting google translation is not yet supported on WebPlayer" ); + #else + StopConnectionWWW(); + mWebService_Status = null; + mConnection_WWW = UnityWebRequest.Get(WebServiceURL + "?action=Ping"); + I2Utils.SendWebRequest(mConnection_WWW); + mConnection_Callback = OnVerifyGoogleService; + EditorApplication.update += CheckForConnection; + mConnection_Text = "Verifying Web Service"; + //mConnection_TimeOut = Time.realtimeSinceStartup + 10; + #endif + } + + void OnVerifyGoogleService( string Result, string Error ) + { + if (Result.Contains("Authorization is required to perform that action")) + { + ShowWarning("You need to authorize the webservice before using it. Check the steps 4 and 5 in the WebService Script"); + mWebService_Status = "Offline"; + return; + } + + try + { + var data = JSON.Parse(Result).AsObject; + int version = 0; + if (!int.TryParse(data["script_version"], out version)) + version = 0; + int requiredVersion = LocalizationManager.GetRequiredWebServiceVersion(); + + if (requiredVersion == version) + { + mWebService_Status = "Online"; + ClearErrors(); + } + else + { + mWebService_Status = "UnsupportedVersion"; + ShowError("The current Google WebService is not supported.\nPlease, delete the WebService from the Google Drive and Install the latest version."); + } + } + catch (Exception) + { + ShowError("Unable to access the WebService"); + mWebService_Status = "Offline"; + } + } + + + void Export_Google( eSpreadsheetUpdateMode UpdateMode ) + { + StopConnectionWWW(); + LanguageSourceData source = GetSourceData(); + mConnection_WWW = source.Export_Google_CreateWWWcall( UpdateMode ); + if (mConnection_WWW==null) + { + OnExported_Google(string.Empty, "WebPlayer can't contact Google"); + } + else + { + mConnection_Callback = OnExported_Google; + EditorApplication.update += CheckForConnection; + mConnection_Text = "Uploading spreadsheet"; + //mConnection_TimeOut = Time.realtimeSinceStartup + 10; + } + } + + void OnExported_Google( string Result, string Error ) + { + // Checkf or error, but discard the "necessary data rewind wasn't possible" as thats not a real error, just a bug in Unity with POST redirects + if (!string.IsNullOrEmpty(Error) && !Error.Contains("rewind")) + { + Debug.Log (Error); + ShowError("Unable to access google"); + return; + } + + if (EditorPrefs.GetBool("I2Loc OpenDataSourceAfterExport", true) && !string.IsNullOrEmpty(GetSourceData().Google_SpreadsheetName)) + OpenGoogleSpreadsheet(GetSourceData().Google_SpreadsheetKey ); + mProp_GoogleLiveSyncIsUptoDate.boolValue = true; + } + + static void OpenGoogleSpreadsheet( string SpreadsheetKey ) + { + ClearErrors(); + string SpreadsheetUrl = "https://docs.google.com/spreadsheet/ccc?key=" + SpreadsheetKey; + Application.OpenURL(SpreadsheetUrl); + } + + public abstract LanguageSourceData GetSourceData(); + + + void Import_Google( eSpreadsheetUpdateMode UpdateMode ) + { + StopConnectionWWW(); + LanguageSourceData source = GetSourceData(); + mConnection_WWW = source.Import_Google_CreateWWWcall(true, false); + if (mConnection_WWW==null) + { + OnImported_Google(string.Empty, "Unable to import from google", eSpreadsheetUpdateMode.Replace); + } + else + { + mConnection_Callback=null; + switch (UpdateMode) + { + case eSpreadsheetUpdateMode.Replace : mConnection_Callback += OnImported_Google_Replace; break; + case eSpreadsheetUpdateMode.Merge : mConnection_Callback += OnImported_Google_Merge; break; + case eSpreadsheetUpdateMode.AddNewTerms : mConnection_Callback += OnImported_Google_AddNewTerms; break; + } + EditorApplication.update += CheckForConnection; + mConnection_Text = "Downloading spreadsheet"; + //mConnection_TimeOut = Time.realtimeSinceStartup + 10; + } + } + + void OnImported_Google_Replace( string Result, string Error ) { OnImported_Google(Result, Error, eSpreadsheetUpdateMode.Replace); } + void OnImported_Google_Merge( string Result, string Error ) { OnImported_Google(Result, Error, eSpreadsheetUpdateMode.Merge); } + void OnImported_Google_AddNewTerms( string Result, string Error ) { OnImported_Google(Result, Error, eSpreadsheetUpdateMode.AddNewTerms); } + + void OnImported_Google( string Result, string Error, eSpreadsheetUpdateMode UpdateMode ) + { + if (!string.IsNullOrEmpty(Error)) + { + Debug.Log(Error); + ShowError("Unable to access google"); + return; + } + LanguageSourceData source = GetSourceData(); + string ErrorMsg = source.Import_Google_Result(Result, UpdateMode); + bool HasErrors = !string.IsNullOrEmpty(ErrorMsg); + if (HasErrors) + ShowError(ErrorMsg); + + serializedObject.Update(); + ParseTerms(true, false, !HasErrors); + mSelectedKeys.Clear (); + mSelectedCategories.Clear(); + ScheduleUpdateTermsToShowInList(); + mLanguageSource.GetCategories(false, mSelectedCategories); + + EditorUtility.SetDirty (target); + AssetDatabase.SaveAssets(); + } + + void CheckForConnection() + { + if (mConnection_WWW!=null && mConnection_WWW.isDone) + { + fnConnectionCallback callback = mConnection_Callback; + string Result = string.Empty; + string Error = mConnection_WWW.error; + + if (string.IsNullOrEmpty(Error)) + { + Result = Encoding.UTF8.GetString(mConnection_WWW.downloadHandler.data); //mConnection_WWW.text; + } + + StopConnectionWWW(); + if (callback!=null) + callback(Result, Error); + } + /*else + if (Time.realtimeSinceStartup > mConnection_TimeOut+30) + { + fnConnectionCallback callback = mConnection_Callback; + StopConnectionWWW(); + if (callback!=null) + callback(string.Empty, "Time Out"); + }*/ + } + + void StopConnectionWWW() + { + EditorApplication.update -= CheckForConnection; + mConnection_WWW = null; + mConnection_Callback = null; + mConnection_Text = string.Empty; + } + + #region New Spreadsheet + + void Google_NewSpreadsheet() + { + #if UNITY_WEBPLAYER + ShowError ("Contacting google translation is not yet supported on WebPlayer" ); + #else + + ClearErrors(); + string SpreadsheetName; + + LanguageSourceData source = GetSourceData(); + if (source.IsGlobalSource()) + SpreadsheetName = string.Format("{0} Localization", PlayerSettings.productName); + else + SpreadsheetName = string.Format("{0} {1} {2}", PlayerSettings.productName, Editor_GetCurrentScene(), source.ownerObject.name); + + string query = mProp_Google_WebServiceURL.stringValue + "?action=NewSpreadsheet&name=" + Uri.EscapeDataString(SpreadsheetName) + "&password="+ Uri.EscapeDataString(mProp_Google_Password.stringValue); + + mConnection_WWW = UnityWebRequest.Get(query); + I2Utils.SendWebRequest(mConnection_WWW); + mConnection_Callback = Google_OnNewSpreadsheet; + EditorApplication.update += CheckForConnection; + mConnection_Text = "Creating Spreadsheet"; + //mConnection_TimeOut = Time.realtimeSinceStartup + 10; + #endif + } + + void Google_OnNewSpreadsheet( string Result, string Error ) + { + if (!string.IsNullOrEmpty(Error)) + { + ShowError("Unable to access google"); + return; + } + if (Result=="Wrong Password") + { + ShowError(Result); + return; + } + + try + { + var data = JSON.Parse(Result).AsObject; + + string name = data["name"]; + string key = data["id"]; + + serializedObject.Update(); + mProp_Google_SpreadsheetKey.stringValue = key; + mProp_Google_SpreadsheetName.stringValue = name; + serializedObject.ApplyModifiedProperties(); + mGoogleSpreadsheets[name] = key; + + LanguageSourceData source = GetSourceData(); + if (source.mTerms.Count>0 || source.mLanguages.Count>0) + Export_Google( eSpreadsheetUpdateMode.Replace ); + else + if (EditorPrefs.GetBool("I2Loc OpenDataSourceAfterExport", true)) + OpenGoogleSpreadsheet( key ); + + } + catch(Exception e) + { + ShowError (e.Message); + } + } + + #endregion + + #region FindSpreadsheets + + void Google_FindSpreadsheets() + { + ClearErrors(); + EditorApplication.update -= Google_FindSpreadsheets; + string query = mProp_Google_WebServiceURL.stringValue + "?action=GetSpreadsheetList&password="+ Uri.EscapeDataString(mProp_Google_Password.stringValue); + mConnection_WWW = UnityWebRequest.Get(query); + I2Utils.SendWebRequest(mConnection_WWW); + mConnection_Callback = Google_OnFindSpreadsheets; + EditorApplication.update += CheckForConnection; + mConnection_Text = "Accessing google"; + //mConnection_TimeOut = Time.realtimeSinceStartup + 10; + } + + void Google_OnFindSpreadsheets( string Result, string Error) + { + if (!string.IsNullOrEmpty(Error)) + { + ShowError("Unable to access google"); + return; + } + + if (Result=="Wrong Password") + { + ShowError(Result); + return; + } + + try + { + mGoogleSpreadsheets.Clear(); + var data = JSON.Parse(Result).AsObject; + foreach (KeyValuePair element in data) + mGoogleSpreadsheets[element.Key] = element.Value; + } + catch(Exception e) + { + ShowError (e.Message); + } + + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs.meta new file mode 100644 index 00000000..77261f67 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Google.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 800caf7e364ec2947be099b4f9ed976d +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs new file mode 100644 index 00000000..bdf98312 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs @@ -0,0 +1,335 @@ +using System; +using System.IO; +using System.Linq; +using System.Text; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + enum eLocalSpreadsheeet { CSV, XLS, XLSX, NONE } + + void OnGUI_Spreadsheet_Local() + { + GUILayout.Space(10); + GUILayout.BeginVertical(); + + GUILayout.BeginHorizontal(); + GUILayout.Label ("File:", GUILayout.ExpandWidth(false)); + + mProp_Spreadsheet_LocalFileName.stringValue = EditorGUILayout.TextField(mProp_Spreadsheet_LocalFileName.stringValue); + /*if (GUILayout.Button("...", "toolbarbutton", GUILayout.ExpandWidth(false))) + { + string sFileName = mProp_Spreadsheet_LocalFileName.stringValue; + + string sPath = string.Empty; + try { + sPath = System.IO.Path.GetDirectoryName(sFileName); + } + catch( System.Exception e){} + + if (string.IsNullOrEmpty(sPath)) + sPath = Application.dataPath + "/"; + + sFileName = System.IO.Path.GetFileName(sFileName); + if (string.IsNullOrEmpty(sFileName)) + sFileName = "Localization.csv"; + + string FullFileName = EditorUtility.SaveFilePanel("Select CSV File", sPath, sFileName, "csv"); + //string FullFileName = EditorUtility.OpenFilePanel("Select CSV, XLS or XLSX File", sFileName, "csv;*.xls;*.xlsx"); + + if (!string.IsNullOrEmpty(FullFileName)) + { + Prop_LocalFileName.stringValue = TryMakingPathRelativeToProject(FullFileName); + } + }*/ + GUILayout.EndHorizontal(); + + //--[ Find current extension ]--------------- + eLocalSpreadsheeet CurrentExtension = eLocalSpreadsheeet.NONE; + //string FileNameLower = Prop_LocalFileName.stringValue.ToLower(); + /*if (FileNameLower.EndsWith(".csv")) */CurrentExtension = eLocalSpreadsheeet.CSV; + /*if (FileNameLower.EndsWith(".xls")) CurrentExtension = eLocalSpreadsheeet.XLS; + if (FileNameLower.EndsWith(".xlsx")) CurrentExtension = eLocalSpreadsheeet.XLSX;*/ + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + switch (CurrentExtension) + { + case eLocalSpreadsheeet.NONE : + case eLocalSpreadsheeet.CSV : + { + string FileTypesDesc = "Select or Drag any file of the following types:\n\n"; + FileTypesDesc+= "*.csv (Comma Separated Values)\n"; + FileTypesDesc+= "*.txt (CSV file renamed as txt)\n"; + //FileTypesDesc+= "\n*.xls (Excel 97-2003)"; + //FileTypesDesc+= "\n*.xlsx (Excel Open XML format)"; + EditorGUILayout.HelpBox(FileTypesDesc, MessageType.None); + } + break; + case eLocalSpreadsheeet.XLS : EditorGUILayout.HelpBox("Excel 97-2003", MessageType.None); break; + case eLocalSpreadsheeet.XLSX : EditorGUILayout.HelpBox("Excel Open XML format", MessageType.None); break; + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.EndVertical(); + + //--[ Allow Dragging files ]----------------- + if (GUILayoutUtility.GetLastRect().Contains (Event.current.mousePosition) && IsValidDraggedLoadSpreadsheet()) + { + if (Event.current.type == EventType.DragUpdated) + DragAndDrop.visualMode = DragAndDropVisualMode.Link; + + if (Event.current.type == EventType.DragPerform) + { + mProp_Spreadsheet_LocalFileName.stringValue = TryMakingPathRelativeToProject( DragAndDrop.paths[0] ); + DragAndDrop.AcceptDrag(); + Event.current.Use(); + } + } + + GUILayout.Space(10); + + OnGUI_Spreadsheet_Local_ImportExport( CurrentExtension, mProp_Spreadsheet_LocalFileName.stringValue ); + + //if (Application.platform == RuntimePlatform.OSXEditor) + + //-- CSV Separator ---------------- + GUI.changed = false; + var CSV_Separator = mProp_Spreadsheet_LocalCSVSeparator.stringValue; + if (string.IsNullOrEmpty (CSV_Separator)) + CSV_Separator = ","; + + GUILayout.Space(10); + GUILayout.BeginVertical("Box"); + GUILayout.BeginHorizontal(); + GUILayout.Label("Separator:"); + GUILayout.FlexibleSpace(); + + if (GUILayout.Toggle(CSV_Separator==",", "Comma(,)") && CSV_Separator!=",") + CSV_Separator = ","; + + GUILayout.FlexibleSpace(); + + if (GUILayout.Toggle(CSV_Separator==";", "Semicolon(;)") && CSV_Separator!=";") + CSV_Separator = ";"; + + GUILayout.FlexibleSpace(); + + if (GUILayout.Toggle(CSV_Separator=="\t", "TAB(\\t)") && CSV_Separator!="\t") + CSV_Separator = "\t"; + + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + //--[ Encoding ]--------------- + var encodings = Encoding.GetEncodings ().OrderBy(e=>e.Name).ToArray(); + var encodingNames = encodings.Select(e=>e.Name).ToArray(); + + int idx = Array.IndexOf (encodingNames, mProp_Spreadsheet_LocalCSVEncoding.stringValue); + if (idx == -1) + idx = Array.IndexOf (encodingNames, "utf-8"); + EditorGUIUtility.labelWidth = 80; + + idx = EditorGUILayout.Popup ("Encoding:", idx, encodingNames); + if (GUILayout.Button("Default", GUILayout.ExpandWidth(false))) + idx = Array.IndexOf (encodingNames, "utf-8"); + + if (idx>=0 && mProp_Spreadsheet_LocalCSVEncoding.stringValue != encodings [idx].Name) + mProp_Spreadsheet_LocalCSVEncoding.stringValue = encodings [idx].Name; + GUILayout.EndHorizontal(); + + GUILayout.EndVertical(); + + if (GUI.changed) + { + mProp_Spreadsheet_LocalCSVSeparator.stringValue = CSV_Separator; + } + + GUILayout.Space(10); + EditorGUILayout.HelpBox("On some Mac OS, there is a Unity Bug that makes the IDE crash when selecting a CSV file in the Open/Save File Dialog.\nJust by clicking the file, unity tries to preview the content and crashes.\n\nIf any of your the team members use Mac, its adviced to import/export the CSV Files with TXT extension.", MessageType.Warning); + GUILayout.Space(10); + + OnGUI_ShowMsg(); + } + + bool IsValidDraggedLoadSpreadsheet() + { + if (DragAndDrop.paths==null || DragAndDrop.paths.Length!=1) + return false; + + string sPath = DragAndDrop.paths[0].ToLower(); + if (sPath.EndsWith(".csv")) return true; + if (sPath.EndsWith(".txt")) return true; + //if (sPath.EndsWith(".xls")) return true; + //if (sPath.EndsWith(".xlsx")) return true; + + /*int iChar = sPath.LastIndexOfAny( "/\\.".ToCharArray() ); + if (iChar<0 || sPath[iChar]!='.') + return true; + return false;*/ + return false; + } + + string TryMakingPathRelativeToProject( string FileName ) + { + string ProjectPath = Application.dataPath.ToLower(); + string FileNameLower = FileName.ToLower(); + + if (FileNameLower.StartsWith(ProjectPath)) + FileName = FileName.Substring(ProjectPath.Length+1); + else + if (FileNameLower.StartsWith("assets/")) + FileName = FileName.Substring("assets/".Length); + return FileName; + } + + void OnGUI_Spreadsheet_Local_ImportExport( eLocalSpreadsheeet CurrentExtension, string File ) + { + GUI.enabled = CurrentExtension!=eLocalSpreadsheeet.NONE; + + GUILayout.BeginHorizontal(); + GUILayout.Space(10); + + GUI.backgroundColor = Color.Lerp(Color.gray, Color.white, 0.5f); + eSpreadsheetUpdateMode Mode = SynchronizationButtons("Import"); + if ( Mode!= eSpreadsheetUpdateMode.None) + Import_Local(File, CurrentExtension, Mode); + + GUILayout.FlexibleSpace(); + + GUI.backgroundColor = Color.Lerp(Color.gray, Color.white, 0.5f); + Mode = SynchronizationButtons("Export", true); + if ( Mode != eSpreadsheetUpdateMode.None) + Export_Local(File, CurrentExtension, Mode); + + GUILayout.Space(10); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + EditorGUIUtility.labelWidth += 10; + EditorGUILayout.PropertyField(mProp_Spreadsheet_SpecializationAsRows, new GUIContent("Show Specializations as Rows", "true: Make each specialization a separate row (e.g. Term[VR]..., Term[Touch]....\nfalse: Merge specializations into same cell separated by [i2s_XXX]")); + EditorGUIUtility.labelWidth -= 10; + GUILayout.EndHorizontal(); + + + GUI.enabled = true; + } + + void Import_Local( string File, eLocalSpreadsheeet CurrentExtension, eSpreadsheetUpdateMode UpdateMode ) + { + try + { + serializedObject.ApplyModifiedProperties(); + serializedObject.Update(); + ClearErrors(); + + if (string.IsNullOrEmpty(File)) + File = Application.dataPath + "/Localization.csv"; + else + if (!Path.IsPathRooted(File)) + File = string.Concat(Application.dataPath, "/", File); + + // On Mac there is an issue with previewing CSV files, so its forced to only TXT + if (Application.platform == RuntimePlatform.OSXEditor) + File = EditorUtility.OpenFilePanel("Select a CSV file renamed as TXT", File, "txt"); + else + File = EditorUtility.OpenFilePanel("Select a CSV file or a CSV file renamed as TXT", File, "csv;*.txt"); + //File = EditorUtility.OpenFilePanel("Select CSV, XLS or XLSX File", File, "csv;*.xls;*.xlsx"); + if (!string.IsNullOrEmpty(File)) + { + mLanguageSource.Spreadsheet_LocalFileName = TryMakingPathRelativeToProject(File); + switch (CurrentExtension) + { + case eLocalSpreadsheeet.CSV : Import_CSV(File, UpdateMode); break; + } + ParseTerms(true, false, true); + EditorUtility.SetDirty (target); + AssetDatabase.SaveAssets(); + } + } + catch (Exception ex) + { + ShowError("Unable to import file"); + Debug.LogError(ex.Message); + } + } + + void Import_CSV( string FileName, eSpreadsheetUpdateMode UpdateMode ) + { + LanguageSourceData source = GetSourceData(); + var encoding = Encoding.GetEncoding (mProp_Spreadsheet_LocalCSVEncoding.stringValue); + if (encoding == null) + encoding = Encoding.UTF8; + string CSVstring = LocalizationReader.ReadCSVfile (FileName, encoding); + + char Separator = mProp_Spreadsheet_LocalCSVSeparator.stringValue.Length>0 ? mProp_Spreadsheet_LocalCSVSeparator.stringValue[0] : ','; + string sError = source.Import_CSV( string.Empty, CSVstring, UpdateMode, Separator); + if (!string.IsNullOrEmpty(sError)) + ShowError(sError); + + mSelectedCategories = source.GetCategories(); + } + + void Export_Local( string File, eLocalSpreadsheeet CurrentExtension, eSpreadsheetUpdateMode UpdateMode ) + { + try + { + serializedObject.ApplyModifiedProperties(); + serializedObject.Update(); + ClearErrors(); + + string sPath = string.Empty; + if (!Path.IsPathRooted(File)) + File = string.Concat(Application.dataPath, "/", File); + + try { + sPath = Path.GetDirectoryName(File); + } + catch( Exception){} + + if (string.IsNullOrEmpty(sPath)) + sPath = Application.dataPath + "/"; + + File = Path.GetFileName(File); + if (string.IsNullOrEmpty(File)) + File = "Localization.csv"; + + if (Application.platform == RuntimePlatform.OSXEditor) + File = EditorUtility.SaveFilePanel("Select a CSV file renamed as TXT", sPath, File, "txt"); + else + File = EditorUtility.SaveFilePanel("Select a CSV or TXT file", sPath, File, "csv;*.txt"); + if (!string.IsNullOrEmpty(File)) + { + mLanguageSource.Spreadsheet_LocalFileName = TryMakingPathRelativeToProject(File); + + char Separator = mProp_Spreadsheet_LocalCSVSeparator.stringValue.Length>0 ? mProp_Spreadsheet_LocalCSVSeparator.stringValue[0] : ','; + var encoding = Encoding.GetEncoding (mProp_Spreadsheet_LocalCSVEncoding.stringValue); + if (encoding == null) + encoding = Encoding.UTF8; + + switch (CurrentExtension) + { + case eLocalSpreadsheeet.CSV : Export_CSV(File, UpdateMode, Separator, encoding); break; + } + } + } + catch (Exception) + { + ShowError("Unable to export file\nCheck it is not READ-ONLY and that\nits not opened in an external viewer"); + } + } + + public void Export_CSV( string FileName, eSpreadsheetUpdateMode UpdateMode, char Separator, Encoding encoding ) + { + LanguageSourceData source = GetSourceData(); + + string CSVstring = source.Export_CSV(null, Separator, mProp_Spreadsheet_SpecializationAsRows.boolValue); + File.WriteAllText (FileName, CSVstring, encoding); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs.meta new file mode 100644 index 00000000..dd66d4c6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Spreadsheet_Local.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fdca66efafe784661b464934cacff065 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs new file mode 100644 index 00000000..783a0cf0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs @@ -0,0 +1,820 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + + Vector2 mScrollPos_Keys = Vector2.zero; + + public static string mKeyToExplore; // Key that should show all the language details + static string KeyList_Filter = ""; + float mRowSize=-1; + float ScrollHeight; + float mTermList_MaxWidth = -1; + + public static List mSelectedKeys = new List(); // Selected Keys in the list of mParsedKeys + public static List mSelectedCategories = new List(); + + + public enum eFlagsViewKeys + { + Used = 1<<1, + Missing = 1<<2, + NotUsed = 1<<3 + } + public static int mFlagsViewKeys = (int)eFlagsViewKeys.Used | (int)eFlagsViewKeys.NotUsed; + + public static string mTermsList_NewTerm; + Rect mKeyListFilterRect; + + #endregion + + #region GUI Key List + + float ExpandedViewHeight; + float TermsListHeight; + + void OnGUI_KeysList(bool AllowExpandKey = true, float Height = 300.0f, bool ShowTools=true) + { + ///if (mTermList_MaxWidth<=0) + CalculateTermsListMaxWidth(); + + //--[ List Filters ]-------------------------------------- + + // The ID of this control is registered here to avoid losing focus when the terms list grows in the scrollbox + // This control is drawn later on + int KeyListFilterID = GUIUtility.GetControlID( FocusType.Keyboard ); + + OnGUI_ShowMsg(); + + GUILayout.BeginHorizontal(); + GUIStyle bstyle = new GUIStyle ("toolbarbutton"); + bstyle.fontSize = 15; + if (GUILayout.Button (new GUIContent("\u21bb", "Parse Scene and update terms list with missing and unused terms"), bstyle, GUILayout.Width(25))) + EditorApplication.update += DoParseTermsInCurrentSceneAndScripts; + if (GUILayout.Button(new GUIContent("\u21ea", "Refresh the translation of all Localize objects"), bstyle, GUILayout.Width(25))) + CallLocalizeAll(); + + GUILayout.Space (1); + + var oldFlags = mFlagsViewKeys; + mFlagsViewKeys = OnGUI_FlagToogle("Used","Shows All Terms referenced in the parsed scenes", mFlagsViewKeys, (int)eFlagsViewKeys.Used); + mFlagsViewKeys = OnGUI_FlagToogle("Not Used", "Shows all Terms from the Source that are not been used", mFlagsViewKeys, (int)eFlagsViewKeys.NotUsed); + mFlagsViewKeys = OnGUI_FlagToogle("Missing","Shows all Terms Used but not defined in the Source", mFlagsViewKeys, (int)eFlagsViewKeys.Missing); + if (oldFlags!=mFlagsViewKeys) + ScheduleUpdateTermsToShowInList(); + + OnGUI_SelectedCategories(); + + GUILayout.EndHorizontal(); + + /*//if (Event.current.type == EventType.Repaint) + TermsListHeight = Screen.height - 400; + Debug.Log(Event.current.type + " " + TermsListHeight + " " + Screen.height + " " + GUILayoutUtility.GetLastRect().yMax); + + //TermsListHeight = Mathf.Min(Screen.height*0.5f, TermsListHeight); + mScrollPos_Keys = GUILayout.BeginScrollView(mScrollPos_Keys, false, false, "horizontalScrollbar", "verticalScrollbar", LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(TermsListHeight)); + for (int i = 0; i < 1000; ++i) + GUILayout.Label("ahhh" + i); + GUILayout.EndScrollView(); + + return;*/ + TermsListHeight = Mathf.Min(Screen.height*0.5f, TermsListHeight); + + //--[ Keys List ]----------------------------------------- + GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + mScrollPos_Keys = GUILayout.BeginScrollView( mScrollPos_Keys, false, false, "horizontalScrollbar", "verticalScrollbar", LocalizeInspector.GUIStyle_OldTextArea ,GUILayout.Height(TermsListHeight)/*GUILayout.MinHeight(Height), GUILayout.MaxHeight(Screen.height), GUILayout.ExpandHeight(true)*/); + GUI.backgroundColor = Color.white; + + bool bAnyValidUsage = false; + + mRowSize = EditorStyles.toolbar.fixedHeight; + if (Event.current!=null && Event.current.type == EventType.Layout) + ScrollHeight = mScrollPos_Keys.y; + + float YPosMin = -ScrollHeight; + int nSkip = 0; + int nDraw = 0; + + if (mShowableTerms.Count == 0 && Event.current.type == EventType.Layout) + UpdateTermsToShownInList (); + + float SkipSize = 0; + foreach (var parsedTerm in mShowableTerms) + { + string sKey = parsedTerm.Term; + string sCategory = parsedTerm.Category; + string FullKey = parsedTerm.FullTerm; + + int nUses = parsedTerm.Usage; + bAnyValidUsage = bAnyValidUsage | (nUses>=0); + + ShowTerm_termData = parsedTerm.termData; + + // Skip lines outside the view ----------------------- + YPosMin += mRowSize; + SkipSize += mRowSize; + float YPosMax = YPosMin + mRowSize; + bool isExpanded = AllowExpandKey && mKeyToExplore==FullKey; + if (!isExpanded && (YPosMax<-2*mRowSize || YPosMin>/*Screen.height*/TermsListHeight+mRowSize)) + { + if (YPosMin>TermsListHeight+mRowSize) + break; + + nSkip++; + continue; + } + nDraw++; + + //------------------------------------------------------ + + OnGUI_KeyHeader (sKey, sCategory, FullKey, nUses, YPosMin-mRowSize+mScrollPos_Keys.y); + + //--[ Key Details ]------------------------------- + + if (isExpanded) + { + GUILayout.Space(SkipSize); + SkipSize = 0; + OnGUI_KeyList_ShowKeyDetails(); + Rect rect = GUILayoutUtility.GetLastRect(); + if (rect.height>5) + ExpandedViewHeight = rect.height; + YPosMin += ExpandedViewHeight; + } + } + SkipSize += (mShowableTerms.Count - nDraw-nSkip) * mRowSize; + GUILayout.Space(SkipSize+2); + if (mSelectedCategories.Count < mParsedCategories.Count) + { + SkipSize += 25; + if (GUILayout.Button ("...", EditorStyles.label)) + { + mSelectedCategories.Clear (); + mSelectedCategories.AddRange (mParsedCategories); + } + } + OnGUI_KeysList_AddKey(); + + GUILayout.Label("", GUILayout.Width(mTermList_MaxWidth+10+30), GUILayout.Height(1)); + + GUILayout.EndScrollView(); + + TermsListHeight = YPosMin + mRowSize + 25;//SkipSize+25; + + //Rect ListRect = GUILayoutUtility.GetLastRect(); + //if (ListRect.height>5) + // TermsListHeight = ListRect.height; + //Debug.Log(nDraw + " " + nSkip + " " + Screen.height + " " + TermsListHeight); + + OnGUI_Keys_ListSelection( KeyListFilterID ); // Selection Buttons + +// if (!bAnyValidUsage) +// EditorGUILayout.HelpBox("Use (Tools\\Parse Terms) to find how many times each of the Terms are used", UnityEditor.MessageType.Info); + + if (ShowTools) + { + GUILayout.BeginHorizontal(); + GUI.enabled = mSelectedKeys.Count>0 || !string.IsNullOrEmpty(mKeyToExplore); + if (TestButton (eTest_ActionType.Button_AddSelectedTerms, new GUIContent("Add Terms", "Add terms to Source"), "Button", GUITools.DontExpandWidth)) AddTermsToSource(); + if (TestButton (eTest_ActionType.Button_RemoveSelectedTerms, new GUIContent("Remove Terms", "Remove Terms from Source"), "Button", GUITools.DontExpandWidth)) RemoveTermsFromSource(); + + GUILayout.FlexibleSpace (); + + if (GUILayout.Button ("Change Category")) OpenTool_ChangeCategoryOfSelectedTerms(); + GUI.enabled = true; + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace (); + bool newBool = GUILayout.Toggle(mLanguageSource.CaseInsensitiveTerms, "Case Insensitive Terms"); + if (newBool != mLanguageSource.CaseInsensitiveTerms) + { + mProp_CaseInsensitiveTerms.boolValue = newBool; + } + GUILayout.FlexibleSpace (); + GUILayout.EndHorizontal(); + } + //Debug.Log ("Draw: " + nDraw + " Skip: " + nSkip); + } + + static void ScheduleUpdateTermsToShowInList() + { + if (!mUpdateShowTermIsScheduled) + { + EditorApplication.update += UpdateTermsToShownInList; + mUpdateShowTermIsScheduled = true; + } + } + static bool mUpdateShowTermIsScheduled; + static void UpdateTermsToShownInList() + { + EditorApplication.update -= UpdateTermsToShownInList; + mUpdateShowTermIsScheduled = false; + + mShowableTerms.Clear (); + mSelectedCategories.Sort(); + foreach (KeyValuePair kvp in mParsedTerms) + { + ParsedTerm parsedTerm = kvp.Value; + if (ShouldShowTerm (parsedTerm.Term, parsedTerm.Category, parsedTerm.Usage, parsedTerm)) + mShowableTerms.Add(parsedTerm); + } + GUITools.RepaintInspectors(); + GUITools.ScheduleRepaintInspectors(); + } + + void OnGUI_KeyHeader (string sKey, string sCategory, string FullKey, int nUses, float YPosMin) + { + //--[ Toggle ]--------------------- + GUI.Box(new Rect(2, YPosMin+2, 18, mRowSize), "", "Toolbar"); + OnGUI_SelectableToogleListItem (new Rect(2, YPosMin+3, 15, mRowSize), FullKey, ref mSelectedKeys, "OL Toggle"); + + bool bEnabled = mSelectedKeys.Contains (FullKey); + //--[ Number of Objects using this key ]--------------------- + if (nUses >= 0) + { + if (nUses == 0) + { + GUI.color = Color.Lerp (Color.gray, Color.white, 0.5f); + GUI.Label (new Rect(20, YPosMin+2, 30, mRowSize), nUses.ToString (), "toolbarbutton"); + } + else + { + if (GUI.Button(new Rect(20, YPosMin + 2, 30, mRowSize), nUses.ToString(), "toolbarbutton")) + { + List selection = new List(mSelectedKeys); + if (!selection.Contains(FullKey)) + selection.Add(FullKey); + + List selGOs = new List(); + for (int i=0; i 0) + Selection.objects = selGOs.ToArray(); + else + ShowWarning("The selected Terms are not used in this Scene. Try opening other scenes"); + } + } + } + else + { + GUI.color = Color.Lerp (Color.red, Color.white, 0.6f); + if (GUI.Button (new Rect(20, YPosMin+2, 30, mRowSize), "", "toolbarbutton")) + { + mCurrentToolsMode = eToolsMode.Parse; + mCurrentViewMode = eViewMode.Tools; + } + } + GUI.color = Color.white; + + TermData termData = ShowTerm_termData!=null ? ShowTerm_termData : mLanguageSource.GetTermData (FullKey); + bool bKeyIsMissing = termData == null; + float MinX = 50; + if (bKeyIsMissing) + { + Rect rect = new Rect(50, YPosMin+2, mRowSize, mRowSize+2); + GUITools.DrawSkinIcon(rect, "CN EntryWarnIcon", "CN EntryWarn"); + GUI.Label (rect, new GUIContent ("", "This term is used in the scene, but its not localized in the Language Source")); + MinX += rect.width; + } + else MinX += 3; + + float listWidth = Mathf.Max(EditorGUIUtility.currentViewWidth / EditorGUIUtility.pixelsPerPoint, mTermList_MaxWidth); + Rect rectKey = new Rect(MinX, YPosMin+2, listWidth-MinX, mRowSize); + if (sCategory != LanguageSourceData.EmptyCategory) + rectKey.width -= 130; + if (mKeyToExplore == FullKey) + { + GUI.backgroundColor = Color.Lerp (Color.blue, Color.white, 0.8f); + if (GUI.Button (rectKey, new GUIContent (sKey, EditorStyles.foldout.onNormal.background), LocalizeInspector.GUIStyle_OldTextArea)) + { + mKeyToExplore = string.Empty; + ScheduleUpdateTermsToShowInList(); + ClearErrors (); + } + GUI.backgroundColor = Color.white; + } + else + { + GUIStyle LabelStyle = EditorStyles.label; + if (!bKeyIsMissing && !TermHasAllTranslations (mLanguageSource, termData)) + { + LabelStyle = new GUIStyle (EditorStyles.label); + LabelStyle.fontStyle = FontStyle.Italic; + GUI.color = Color.Lerp (Color.white, Color.yellow, 0.5f); + } + if (!bEnabled) + GUI.contentColor = Color.Lerp (Color.gray, Color.white, 0.3f); + if (GUI.Button (rectKey, sKey, LabelStyle)) + { + SelectTerm (FullKey); + ClearErrors (); + } + if (!bEnabled) + GUI.contentColor = Color.white; + GUI.color = Color.white; + } + //--[ Category ]-------------------------- + if (sCategory != LanguageSourceData.EmptyCategory) + { + if (mKeyToExplore == FullKey) + { + rectKey.x = listWidth - 100-38-20; + rectKey.width = 130; + if (GUI.Button (rectKey, sCategory, EditorStyles.toolbarButton)) + OpenTool_ChangeCategoryOfSelectedTerms (); + } + else + { + GUIStyle stl = new GUIStyle(EditorStyles.miniLabel); + stl.alignment = TextAnchor.MiddleRight; + rectKey.width = 130;//EditorStyles.miniLabel.CalcSize(new GUIContent(sCategory)).x; + rectKey.x = listWidth - rectKey.width - 38-20; + + if (GUI.Button (rectKey, sCategory, stl)) + { + SelectTerm (FullKey); + ClearErrors (); + } + } + } + } + + + void CalculateTermsListMaxWidth() + { + mTermList_MaxWidth = EditorGUIUtility.currentViewWidth / EditorGUIUtility.pixelsPerPoint - 120; + /*float maxWidth = Screen.width / 18; + foreach (KeyValuePair kvp in mParsedTerms) + { + var txt = kvp.Key; + if (txt.Length > 100) + txt = txt.Substring(0, 100); + var size = EditorStyles.label.CalcSize(new GUIContent(txt)); + mTermList_MaxWidth = Mathf.Max (mTermList_MaxWidth, size.x); + }*/ + } + + bool TermHasAllTranslations( LanguageSourceData source, TermData data ) + { + if (source==null) source = LocalizationManager.Sources[0]; + for (int i=0, imax=data.Languages.Length; ii ? source.mLanguages[i].IsEnabled() : true; + if (string.IsNullOrEmpty(data.Languages[i]) && isLangEnabled) + return false; + } + return true; + } + + void OnGUI_KeysList_AddKey() + { + GUILayout.BeginHorizontal(); + GUI.color = Color.Lerp(Color.gray, Color.white, 0.5f); + bool bWasEnabled = mTermsList_NewTerm!=null; + bool bEnabled = !GUILayout.Toggle (!bWasEnabled, "+", EditorStyles.toolbarButton, GUILayout.Width(30)); + GUI.color = Color.white; + + if (bWasEnabled && !bEnabled) mTermsList_NewTerm = null; + if (!bWasEnabled && bEnabled) mTermsList_NewTerm = string.Empty; + + if (bEnabled) + { + GUILayout.BeginHorizontal(EditorStyles.toolbar); + mTermsList_NewTerm = EditorGUILayout.TextField(mTermsList_NewTerm, EditorStyles.toolbarTextField, GUILayout.ExpandWidth(true)); + GUILayout.EndHorizontal(); + + LanguageSourceData.ValidateFullTerm( ref mTermsList_NewTerm ); + if (string.IsNullOrEmpty(mTermsList_NewTerm) || mLanguageSource.ContainsTerm(mTermsList_NewTerm) || mTermsList_NewTerm=="-") + GUI.enabled = false; + + if (TestButton (eTest_ActionType.Button_AddTerm_InTermsList, "Create Key", "toolbarbutton", GUILayout.ExpandWidth(false))) + { + AddLocalTerm(mTermsList_NewTerm); + SelectTerm( mTermsList_NewTerm ); + ClearErrors(); + mTermsList_NewTerm = null; + SetAllTerms_When_InferredTerms_IsInSource (); + } + GUI.enabled = true; + } + GUILayout.EndHorizontal(); + } + + void OpenTool_ChangeCategoryOfSelectedTerms() + { + mCurrentViewMode = eViewMode.Tools; + mCurrentToolsMode = eToolsMode.Categorize; + if (!string.IsNullOrEmpty(mKeyToExplore) && !mSelectedKeys.Contains(mKeyToExplore)) + mSelectedKeys.Add(mKeyToExplore); + mSelectedKeys.Sort(); + } + + void OnGUI_SelectedCategories() + { + if (mParsedCategories.Count == 0) + return; + + string text = "Categories"; + if (mSelectedCategories.Count() == 0) + text = "Nothing"; + else + if (mSelectedCategories.Count() == mParsedCategories.Count) + text = "Everything"; + else + text = mSelectedCategories.Count + " categories"; + + if (GUILayout.Button(new GUIContent(text), "toolbarbutton", GUILayout.Width(100))) + { + var menu = new GenericMenu(); + + menu.AddItem(new GUIContent("Everything"), false, () => + { + mSelectedCategories.Clear(); + mSelectedCategories.AddRange(mParsedCategories); + ScheduleUpdateTermsToShowInList(); + }); + menu.AddItem(new GUIContent("Nothing"), false, () => + { + mSelectedCategories.Clear(); + ScheduleUpdateTermsToShowInList(); + }); + menu.AddSeparator(""); + + var parsedList = mParsedCategories.OrderBy(x=>x).ToList(); + for (int i=0, imax=parsedList.Count; ix.StartsWith(categoryRoot))), () => + { + var CatHeader = category + "/"; + if (mSelectedCategories.Contains(category)) + { + mSelectedCategories.Remove(category); + + if (isHeader) + { + mSelectedCategories.RemoveAll(x => x.StartsWith(CatHeader)); + } + } + else + { + mSelectedCategories.Add(category); + if (isHeader) + { + mSelectedCategories.AddRange( parsedList.Where(x=>x.StartsWith(CatHeader))); + } + } + ScheduleUpdateTermsToShowInList(); + }); + if (isHeader) + { + menu.AddSeparator(category+"/"); + } + } + + menu.ShowAsContext(); + } + } + + void SaveSelectedCategories() + { + if (mSelectedCategories.Count == 0) { + EditorPrefs.DeleteKey ("I2 CategoryFilter"); + } else { + var data = string.Join(",", mSelectedCategories.ToArray()); + EditorPrefs.SetString ("I2 CategoryFilter", data); + } + } + + void LoadSelectedCategories() + { + var data = EditorPrefs.GetString ("I2 CategoryFilter", null); + if (!string.IsNullOrEmpty(data)) + { + mSelectedCategories.Clear (); + mSelectedCategories.AddRange( data.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)); + } + } + + + // Bottom part of the Key list (buttons: All, None, Used,... to select the keys) + void OnGUI_Keys_ListSelection ( int KeyListFilterID ) + { + GUILayout.BeginHorizontal( "toolbarbutton" ); + + if (TestButton( eTest_ActionType.Button_SelectTerms_All, new GUIContent( "All", "Selects All Terms in the list" ), "toolbarbutton", GUILayout.ExpandWidth( false ) )) + { + mSelectedKeys.Clear(); + foreach (var kvp in mParsedTerms) + if (ShouldShowTerm( kvp.Value.Term, kvp.Value.Category, kvp.Value.Usage )) + mSelectedKeys.Add( kvp.Key ); + } + if (GUILayout.Button( new GUIContent( "None", "Clears the selection" ), "toolbarbutton", GUILayout.ExpandWidth( false ) )) { mSelectedKeys.Clear(); } + GUILayout.Space( 5 ); + + GUI.enabled = (mFlagsViewKeys & (int)eFlagsViewKeys.Used)>1; + if (TestButton(eTest_ActionType.Button_SelectTerms_Used, new GUIContent( "Used", "Selects All Terms referenced in the parsed scenes" ), "toolbarbutton", GUILayout.ExpandWidth( false ) )) + { + mSelectedKeys.Clear(); + foreach (var kvp in mParsedTerms) + if (kvp.Value.Usage > 0 && ShouldShowTerm( kvp.Value.Term, kvp.Value.Category, kvp.Value.Usage )) + mSelectedKeys.Add( kvp.Key ); + } + GUI.enabled = (mFlagsViewKeys & (int)eFlagsViewKeys.NotUsed)>1; + if (GUILayout.Button( new GUIContent( "Not Used", "Selects all Terms from the Source that are not been used" ), "toolbarbutton", GUILayout.ExpandWidth( false ) )) + { + mSelectedKeys.Clear(); + foreach (var kvp in mParsedTerms) + if (kvp.Value.Usage == 0 && ShouldShowTerm( kvp.Value.Term, kvp.Value.Category, kvp.Value.Usage )) + mSelectedKeys.Add( kvp.Key ); + } + + GUI.enabled = (mFlagsViewKeys & (int)eFlagsViewKeys.Missing)>1; + if (TestButton(eTest_ActionType.Button_SelectTerms_Missing, new GUIContent( "Missing", "Selects all Terms Used but not defined in the Source" ), "toolbarbutton", GUILayout.ExpandWidth( false ) )) + { + mSelectedKeys.Clear(); + foreach (var kvp in mParsedTerms) + if (!mLanguageSource.ContainsTerm( kvp.Key ) && ShouldShowTerm( kvp.Value.Term, kvp.Value.Category, kvp.Value.Usage )) + mSelectedKeys.Add( kvp.Key ); + } + GUI.enabled = true; + EditorGUI.BeginChangeCheck(); + + // Terms Filter + { + //KeyList_Filter = EditorGUILayout.TextField(KeyList_Filter, GUI.skin.GetStyle("ToolbarSeachTextField"), GUILayout.ExpandWidth(true)); + GUILayout.Label( "", GUILayout.ExpandWidth( true ) ); + mKeyListFilterRect = GUILayoutUtility.GetLastRect(); + mKeyListFilterRect.xMax += 4; + + KeyList_Filter = GUITools.TextField( mKeyListFilterRect, KeyList_Filter, 255, GUI.skin.GetStyle( "ToolbarSeachTextField" ), KeyListFilterID ); + } + + + + if (GUILayout.Button( string.Empty, string.IsNullOrEmpty( KeyList_Filter ) ? "ToolbarSeachCancelButtonEmpty" : "ToolbarSeachCancelButton", GUILayout.ExpandWidth( false ) )) + { + KeyList_Filter = string.Empty; + EditorApplication.update += RepaintScene; + GUI.FocusControl( "" ); + } + + string filterHelp = "Fiter Options:\ntext - shows all key/categories matching text\nc text - shows all terms of the text category\nf text - show terms having 'text' in their translations"; + GUILayout.Space(-5); + GUI.contentColor = new Color(1, 1, 1, 0.5f); + GUILayout.Label(new GUIContent(GUITools.Icon_Help.image, filterHelp), GUITools.DontExpandWidth); + GUI.contentColor = GUITools.White; + GUILayout.Space(-5); + + + + + if (EditorGUI.EndChangeCheck()) + { + mShowableTerms.Clear(); + GUI.changed = false; + } + + GUILayout.EndHorizontal(); + } + + + #endregion + + #region Filtering + + public bool ShouldShowTerm (string FullTerm) + { + ParsedTerm termData; + if (!mParsedTerms.TryGetValue(FullTerm, out termData)) + return false; + + return ShouldShowTerm (termData.Term, termData.Category, termData.Usage, termData); + } + + private static TermData ShowTerm_termData; + public static bool ShouldShowTerm (string Term, string Category, int nUses, ParsedTerm parsedTerm=null ) + { + if (!string.IsNullOrEmpty(Category) && !mSelectedCategories.Contains(Category)) + return false; + if (Term == "-") + return false; + + + var fullTerm = Term; + if (!string.IsNullOrEmpty(Category) && Category != LanguageSourceData.EmptyCategory) + fullTerm = Category + "/" + Term; + + if (parsedTerm != null && parsedTerm.termData != null) + ShowTerm_termData = parsedTerm.termData; + else + { + ShowTerm_termData = mLanguageSource.GetTermData (fullTerm); + if (parsedTerm!=null) + parsedTerm.termData = ShowTerm_termData; + } + + + var filter = KeyList_Filter.Trim(); + bool useTranslation = filter.StartsWith("f ", StringComparison.OrdinalIgnoreCase); + if (useTranslation) + { + if (ShowTerm_termData == null) + return false; + + filter = filter.Substring(2).Trim(); + if (!string.IsNullOrEmpty(filter)) + { + bool hasFilter = false; + for (int i = 0; i < ShowTerm_termData.Languages.Length; ++i) + { + if (!string.IsNullOrEmpty(ShowTerm_termData.Languages[i]) && StringContainsFilter(ShowTerm_termData.Languages[i], filter)) + { + hasFilter = true; + break; + } + } + if (!hasFilter) + return false; + } + } + else + { + bool onlyCategory = filter.StartsWith("c ", StringComparison.OrdinalIgnoreCase); + if (onlyCategory) + filter = filter.Substring(2).Trim(); + + if (!string.IsNullOrEmpty(filter)) + { + bool matchesCategory = StringContainsFilter(Category, filter); + bool matchesName = !onlyCategory && StringContainsFilter(Term, filter); + + if (!matchesCategory && !matchesName) + return false; + } + } + + + bool bIsMissing = ShowTerm_termData == null; + if (nUses<0) return true; + + if ((mFlagsViewKeys & (int)eFlagsViewKeys.Missing)>0 && bIsMissing) return true; + if ((mFlagsViewKeys & (int)eFlagsViewKeys.Missing)==0 && bIsMissing) return false; + + if ((mFlagsViewKeys & (int)eFlagsViewKeys.Used)>0 && nUses>0) return true; + if ((mFlagsViewKeys & (int)eFlagsViewKeys.NotUsed)>0 && nUses==0) return true; + + return false; + } + + static bool StringContainsFilter( string Term, string Filter ) + { + if (string.IsNullOrEmpty(Filter) || string.IsNullOrEmpty(Term)) + return true; + if (Term == "-") + return false; + Term = Term.ToLower(); + string[] Filters = Filter.ToLower().Split(";, ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); + for (int i = 0, imax = Filters.Length; i < imax; ++i) + if (Term.Contains(Filters[i])) + return true; + + return false; + } + + #endregion + + #region Add/Remove Keys to DB + + void AddTermsToSource() + { + if (!string.IsNullOrEmpty (mKeyToExplore) && !mSelectedKeys.Contains(mKeyToExplore)) + mSelectedKeys.Add (mKeyToExplore); + + for (int i=mSelectedKeys.Count-1; i>=0; --i) + { + string key = mSelectedKeys[i]; + + if (!ShouldShowTerm(key)) + continue; + + AddLocalTerm(key); + mSelectedKeys.RemoveAt(i); + } + SetAllTerms_When_InferredTerms_IsInSource (); + } + + void RemoveTermsFromSource() + { + if (mTestAction==eTest_ActionType.None && !EditorUtility.DisplayDialog("Confirm delete", "Are you sure you want to delete the selected terms", "Yes", "Cancel")) + return; + + if (!string.IsNullOrEmpty (mKeyToExplore) && !mSelectedKeys.Contains(mKeyToExplore)) + mSelectedKeys.Add (mKeyToExplore); + + for (int i=mSelectedKeys.Count-1; i>=0; --i) + { + string key = mSelectedKeys[i]; + + if (!ShouldShowTerm(key)) + continue; + + mLanguageSource.RemoveTerm(key); + RemoveParsedTerm(key); + mSelectedKeys.Remove(key); + } + + mKeyToExplore = string.Empty; + mTermList_MaxWidth = -1; + serializedObject.ApplyModifiedProperties(); + mLanguageSource.Editor_SetDirty(); + + EditorApplication.update += DoParseTermsInCurrentScene; + EditorApplication.update += RepaintScene; + } + + #endregion + + #region Select Objects in Current Scene + + + public static void SelectTerm( string Key, bool SwitchToKeysTab=false ) + { + GUI.FocusControl(null); + mKeyToExplore = Key; + mKeysDesc_AllowEdit = false; + if (SwitchToKeysTab) + mCurrentViewMode = eViewMode.Keys; + } + + + void SelectObjectsUsingKey( string Key ) + { + List SelectedObjs = FindObjectsUsingKey(Key); + + if (SelectedObjs.Count>0) + Selection.objects = SelectedObjs.ToArray(); + else + ShowWarning("The selected Terms are not used in this Scene. Try opening other scenes"); + } + + List FindObjectsUsingKey(string Key) + { + List SelectedObjs = new List(); + + Localize[] Locals = (Localize[])Resources.FindObjectsOfTypeAll(typeof(Localize)); + + if (Locals == null) + return SelectedObjs; + + for (int i = 0, imax = Locals.Length; i < imax; ++i) + { + Localize localize = Locals[i]; + if (localize == null || localize.gameObject == null || !GUITools.ObjectExistInScene(localize.gameObject)) + continue; + + string Term, SecondaryTerm; + localize.GetFinalTerms(out Term, out SecondaryTerm); + + if (Key == Term || Key == SecondaryTerm) + SelectedObjs.Add(localize.gameObject); + } + + return SelectedObjs; + } + + + #endregion + + + [MenuItem("Tools/I2 Localization/Refresh Localizations", false, 16)] + public static void CallLocalizeAll() + { + LocalizationManager.LocalizeAll(true); + HandleUtility.Repaint(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs.meta new file mode 100644 index 00000000..9384003c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9f0230a94fc864d5bb1f2261de16edce +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms_Description.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms_Description.cs new file mode 100644 index 00000000..79f31ab4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Terms_Description.cs @@ -0,0 +1,785 @@ +//#define UGUI +//#define NGUI + +using System; +using TMPro; +using UnityEditor; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + internal static bool mKeysDesc_AllowEdit; + internal static string GUI_SelectedSpecialization + { + get{ + if (string.IsNullOrEmpty(mGUI_SelectedSpecialization)) + mGUI_SelectedSpecialization = EditorPrefs.GetString ("I2Loc Specialization", "Any"); + return mGUI_SelectedSpecialization; + } + set{ + if (value!=mGUI_SelectedSpecialization) + EditorPrefs.SetString ("I2Loc Specialization", value); + mGUI_SelectedSpecialization = value; + } + } + internal static string mGUI_SelectedSpecialization; + + internal static bool GUI_ShowDisabledLanguagesTranslation = true; + + internal static int mShowPlural = -1; + #endregion + + #region Key Description + + void OnGUI_KeyList_ShowKeyDetails() + { + GUI.backgroundColor = Color.Lerp(Color.blue, Color.white, 0.9f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + OnGUI_Keys_Languages(mKeyToExplore, null); + + GUILayout.BeginHorizontal(); + if (TestButton(eTest_ActionType.Button_DeleteTerm, "Delete", "Button", GUILayout.ExpandWidth(true))) + { + if (mTestAction != eTest_ActionType.None || EditorUtility.DisplayDialog("Confirm delete", "Are you sure you want to delete term '" + mKeyToExplore + "'", "Yes", "Cancel")) + EditorApplication.update += DeleteCurrentKey; + } + + if (GUILayout.Button("Rename")) + { + mCurrentViewMode = eViewMode.Tools; + mCurrentToolsMode = eToolsMode.Merge; + if (!mSelectedKeys.Contains(mKeyToExplore)) + mSelectedKeys.Add(mKeyToExplore); + } + GUILayout.EndHorizontal(); + GUILayout.EndVertical(); + GUI.backgroundColor = Color.white; + } + + void DeleteTerm( string Term, bool updateStructures = true ) + { + mLanguageSource.RemoveTerm (Term); + RemoveParsedTerm(Term); + mSelectedKeys.Remove(Term); + + if (Term==mKeyToExplore) + mKeyToExplore = string.Empty; + + if (updateStructures) + { + UpdateParsedCategories(); + mTermList_MaxWidth = -1; + serializedObject.ApplyModifiedProperties(); + mLanguageSource.Editor_SetDirty(); + ScheduleUpdateTermsToShowInList(); + } + EditorApplication.update += RepaintScene; + } + + void RepaintScene() + { + EditorApplication.update -= RepaintScene; + Repaint(); + } + + void DeleteCurrentKey() + { + EditorApplication.update -= DeleteCurrentKey; + DeleteTerm (mKeyToExplore); + + mKeyToExplore = ""; + EditorApplication.update += DoParseTermsInCurrentScene; + } + + TermData AddLocalTerm( string Term, bool AutoSelect = true ) + { + var data = AddTerm(Term, AutoSelect); + if (data==null) + return null; + + mTermList_MaxWidth = -1; + serializedObject.ApplyModifiedProperties(); + mLanguageSource.Editor_SetDirty(); + return data; + } + + static TermData AddTerm(string Term, bool AutoSelect = true, eTermType termType = eTermType.Text) + { + if (Term == "-" || string.IsNullOrEmpty(Term)) + return null; + + Term = I2Utils.GetValidTermName(Term, true); + + TermData data = mLanguageSource.AddTerm(Term, termType); + GetParsedTerm(Term); + string sCategory = LanguageSourceData.GetCategoryFromFullTerm(Term); + mParsedCategories.Add(sCategory); + + if (AutoSelect) + { + if (!mSelectedKeys.Contains(Term)) + mSelectedKeys.Add(Term); + + if (!mSelectedCategories.Contains(sCategory)) + mSelectedCategories.Add(sCategory); + } + ScheduleUpdateTermsToShowInList(); + mLanguageSource.Editor_SetDirty(); + return data; + } + + // this method shows the key description and the localization to each language + public static TermData OnGUI_Keys_Languages( string Key, Localize localizeCmp, bool IsPrimaryKey=true ) + { + if (Key==null) + Key = string.Empty; + + TermData termdata = null; + + LanguageSourceData source = mLanguageSource; + if (localizeCmp != null && localizeCmp.Source != null) + source = localizeCmp.Source.SourceData; + + if (source==null) + source = LocalizationManager.GetSourceContaining(Key, false); + + if (source==null) + { + if (localizeCmp == null) + source = LocalizationManager.Sources[0]; + else + source = LocalizationManager.GetSourceContaining(IsPrimaryKey ? localizeCmp.SecondaryTerm : localizeCmp.Term); + } + + + if (string.IsNullOrEmpty(Key)) + { + EditorGUILayout.HelpBox( "Select a Term to Localize", MessageType.Info ); + return null; + } + + termdata = source.GetTermData(Key); + if (termdata==null && localizeCmp!=null) + { + var realSource = LocalizationManager.GetSourceContaining(Key, false); + if (realSource != null) + { + termdata = realSource.GetTermData(Key); + source = realSource; + } + } + if (termdata==null) + { + if (Key == "-") + return null; + EditorGUILayout.HelpBox( string.Format("Key '{0}' is not Localized or it is in a different Language Source", Key), MessageType.Error ); + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Add Term to Source")) + { + var termType = eTermType.Text; + if (localizeCmp!=null && localizeCmp.mLocalizeTarget != null) + { + termType = IsPrimaryKey ? localizeCmp.mLocalizeTarget.GetPrimaryTermType(localizeCmp) + : localizeCmp.mLocalizeTarget.GetSecondaryTermType(localizeCmp); + } + + AddTerm(Key, true, termType); + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + return null; + } + + //--[ Type ]---------------------------------- + if (localizeCmp==null) + { + GUILayout.BeginHorizontal(); + GUILayout.Label ("Type:", GUILayout.ExpandWidth(false)); + eTermType NewType = (eTermType)EditorGUILayout.EnumPopup(termdata.TermType, GUILayout.ExpandWidth(true)); + if (termdata.TermType != NewType) + termdata.TermType = NewType; + GUILayout.EndHorizontal(); + } + + + //--[ Description ]--------------------------- + + mKeysDesc_AllowEdit = GUILayout.Toggle(mKeysDesc_AllowEdit, "Description", EditorStyles.foldout, GUILayout.ExpandWidth(true)); + + if (mKeysDesc_AllowEdit) + { + string NewDesc = EditorGUILayout.TextArea( termdata.Description, Style_WrapTextField ); + if (NewDesc != termdata.Description) + { + termdata.Description = NewDesc; + source.Editor_SetDirty(); + } + } + else + EditorGUILayout.HelpBox( string.IsNullOrEmpty(termdata.Description) ? "No description" : termdata.Description, MessageType.Info ); + + OnGUI_Keys_Language_SpecializationsBar (termdata, source); + + OnGUI_Keys_Languages(Key, ref termdata, localizeCmp, IsPrimaryKey, source); + return termdata; + } + + static void OnGUI_Keys_Languages( string Key, ref TermData termdata, Localize localizeCmp, bool IsPrimaryKey, LanguageSourceData source ) + { + //--[ Languages ]--------------------------- + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + + OnGUI_Keys_LanguageTranslations(Key, localizeCmp, IsPrimaryKey, ref termdata, source); + + if (termdata.TermType == eTermType.Text) + { + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (TestButton(eTest_ActionType.Button_Term_TranslateAll, "Translate All", "Button", GUILayout.Width(85))) + { + var termData = termdata; + GUITools.DelayedCall(() => TranslateLanguage( Key, termData, localizeCmp, source)); + GUI.FocusControl(string.Empty); + } + GUILayout.EndHorizontal(); + OnGUI_TranslatingMessage(); + } + GUILayout.EndVertical(); + } + + static void TranslateLanguage( string Key, TermData termdata, Localize localizeCmp, LanguageSourceData source) + { + ClearErrors(); + string mainText = localizeCmp == null ? LanguageSourceData.GetKeyFromFullTerm(Key) : localizeCmp.GetMainTargetsText(); + + for (int i = 0; i < source.mLanguages.Count; ++i) + if (source.mLanguages[i].IsEnabled() && string.IsNullOrEmpty(termdata.Languages[i])) + { + var langIdx = i; + var term = termdata; + var i2source = source; + Translate(mainText, ref termdata, source.mLanguages[i].Code, + (translation, error) => + { + if (error != null) + ShowError(error); + else + if (translation != null) + { + term.Languages[langIdx] = translation; //SetTranslation(langIdx, translation); + i2source.Editor_SetDirty(); + } + }, null); + } + } + + static void OnGUI_TranslatingMessage() + { + if (GoogleTranslation.IsTranslating()) + { + // Connection Status Bar + int time = (int)(Time.realtimeSinceStartup % 2 * 2.5); + string Loading = "Translating" + ".....".Substring(0, time); + GUI.color = Color.gray; + GUILayout.BeginHorizontal(LocalizeInspector.GUIStyle_OldTextArea); + GUILayout.Label(Loading, EditorStyles.miniLabel); + GUI.color = Color.white; + if (GUILayout.Button("Cancel", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + GoogleTranslation.CancelCurrentGoogleTranslations(); + } + GUILayout.EndHorizontal(); + HandleUtility.Repaint (); + } + } + + static void OnGUI_Keys_Language_SpecializationsBar(TermData termData, LanguageSourceData source) + { + var activeSpecializations = termData.GetAllSpecializations(); + + GUILayout.BeginHorizontal(); + + var TabStyle = new GUIStyle(GUI.skin.FindStyle("dragtab")); + TabStyle.fixedHeight = 0; + + //var ss = GUI.skin.FindStyle("TL tab left"); + var TabOpenStyle = new GUIStyle(GUI.skin.FindStyle("minibuttonmid")); + TabOpenStyle.margin.right = -1; + var TabCloseStyle = new GUIStyle(EditorStyles.label); + //var TabCloseStyle = new GUIStyle(GUI.skin.FindStyle("TL tab right")); + TabCloseStyle.margin.left = -1; + TabCloseStyle.padding.left=4; + + //-- Specialization Tabs ----- + + var prevSpecialization = "Any"; + foreach (var specialization in SpecializationManager.Singleton.mSpecializations) + { + if (!activeSpecializations.Contains(specialization) && specialization != GUI_SelectedSpecialization) + continue; + + bool isActive = specialization == GUI_SelectedSpecialization; + var labelContent = new GUIContent(specialization, "Specialization of the main translation (i.e. variants that show only on specific platforms or devices)\nThis allows using 'tap' instead of 'click' for touch devices."); + + if (isActive && activeSpecializations.Count>1) + { + GUILayout.BeginHorizontal(TabOpenStyle); + GUILayout.Toggle(isActive, labelContent, TabStyle, GUILayout.Height(20), GUILayout.ExpandWidth(false)); + //GUILayout.Label(labelContent, TabOpenStyle); + if (specialization != "Any" && GUILayout.Button("x", TabCloseStyle, GUILayout.Width(15))) + { + termData.RemoveSpecialization(specialization); + GUI_SelectedSpecialization = prevSpecialization; + GUI.FocusControl(null); + } + GUILayout.EndHorizontal(); + } + else + if (GUILayout.Toggle(isActive, labelContent, TabStyle, GUILayout.Height(25), GUILayout.ExpandWidth(false)) && !isActive) + { + GUI_SelectedSpecialization = specialization; + GUI.FocusControl(null); + } + } + + + //-- Add new Specialization ----- + int newIndex = EditorGUILayout.Popup(-1, SpecializationManager.Singleton.mSpecializations, "DropDown", GUILayout.Width(20)); + if (newIndex>=0) + { + string newSpecialization = SpecializationManager.Singleton.mSpecializations[newIndex]; + if (!activeSpecializations.Contains(newSpecialization)) + { + for (int iLang = 0; iLang < source.mLanguages.Count; ++iLang) + { + string Translation = termData.GetTranslation(iLang, GUI_SelectedSpecialization, editMode: true); + termData.SetTranslation(iLang, Translation, GUI_SelectedSpecialization); + } + GUI_SelectedSpecialization = newSpecialization; + } + } + + GUILayout.FlexibleSpace(); + + + GUI_ShowDisabledLanguagesTranslation = GUILayout.Toggle(GUI_ShowDisabledLanguagesTranslation, new GUIContent("L", "Show Disabled Languages"), "Button", GUILayout.ExpandWidth(false)); + GUILayout.EndHorizontal(); + GUILayout.Space(-3); + } + + static void OnGUI_Keys_LanguageTranslations (string Key, Localize localizeCmp, bool IsPrimaryKey, ref TermData termdata, LanguageSourceData source) + { + bool IsSelect = Event.current.type==EventType.MouseUp; + for (int i=0; i< source.mLanguages.Count; ++ i) + { + bool forcePreview = false; + bool isEnabledLanguage = source.mLanguages[i].IsEnabled(); + + if (!isEnabledLanguage) + { + if (!GUI_ShowDisabledLanguagesTranslation) + continue; + GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, 0.35f); + } + GUILayout.BeginHorizontal(); + + if (GUILayout.Button(source.mLanguages[i].Name, EditorStyles.label, GUILayout.Width(100))) + forcePreview = true; + + + string Translation = termdata.GetTranslation(i, GUI_SelectedSpecialization, editMode:true); + if (Translation == null) Translation = string.Empty; + +// if (termdata.Languages[i] != termdata.Languages_Touch[i] && !string.IsNullOrEmpty(termdata.Languages[i]) && !string.IsNullOrEmpty(termdata.Languages_Touch[i])) +// GUI.contentColor = GUITools.LightYellow; + + if (termdata.TermType == eTermType.Text || termdata.TermType==eTermType.Child) + { + EditorGUI.BeginChangeCheck (); + string CtrName = "TranslatedText"+i; + GUI.SetNextControlName(CtrName); + + EditPluralTranslations (ref Translation, i, source.mLanguages[i].Code); + //Translation = EditorGUILayout.TextArea(Translation, Style_WrapTextField, GUILayout.Width(Screen.width - 260 - (autoTranslated ? 20 : 0))); + if (EditorGUI.EndChangeCheck ()) + { + termdata.SetTranslation(i, Translation, GUI_SelectedSpecialization); + source.Editor_SetDirty(); + forcePreview = true; + } + + if (localizeCmp!=null && + (forcePreview || /*GUI.changed || */GUI.GetNameOfFocusedControl()==CtrName && IsSelect)) + { + if (IsPrimaryKey && string.IsNullOrEmpty(localizeCmp.Term)) + { + localizeCmp.mTerm = Key; + } + + if (!IsPrimaryKey && string.IsNullOrEmpty(localizeCmp.SecondaryTerm)) + { + localizeCmp.mTermSecondary = Key; + } + + string PreviousLanguage = LocalizationManager.CurrentLanguage; + LocalizationManager.PreviewLanguage(source.mLanguages[i].Name); + if (forcePreview || IsSelect) + LocalizationManager.LocalizeAll(); + else + localizeCmp.OnLocalize(true); + LocalizationManager.PreviewLanguage(PreviousLanguage); + EditorUtility.SetDirty(localizeCmp); + } + GUI.contentColor = Color.white; + + //if (autoTranslated) + //{ + // if (GUILayout.Button(new GUIContent("\u2713"/*"A"*/,"Translated by Google Translator\nClick the button to approve the translation"), EditorStyles.toolbarButton, GUILayout.Width(autoTranslated ? 20 : 0))) + // { + // termdata.Flags[i] &= (byte)(byte.MaxValue ^ (byte)(GUI_SelectedSpecialization==0 ? TranslationFlag.AutoTranslated_Normal : TranslationFlag.AutoTranslated_Touch)); + // } + //} + + if (termdata.TermType == eTermType.Text) + { + if (TestButtonArg(eTest_ActionType.Button_Term_Translate, i, new GUIContent("T", "Translate"), EditorStyles.toolbarButton, GUILayout.Width(20))) + { + var termData = termdata; + var indx = i; + var key = Key; + GUITools.DelayedCall(()=>TranslateTerm(key, termData, source, indx)); + GUI.FocusControl(string.Empty); + } + } + } + else + { + string MultiSpriteName = string.Empty; + + if (termdata.TermType==eTermType.Sprite && Translation.EndsWith("]", StringComparison.Ordinal)) // Handle sprites of type (Multiple): "SpritePath[SpriteName]" + { + int idx = Translation.LastIndexOf("[", StringComparison.Ordinal); + int len = Translation.Length-idx-2; + MultiSpriteName = Translation.Substring(idx+1, len); + Translation = Translation.Substring(0, idx); + } + + Object Obj = null; + + // Try getting the asset from the References section + if (localizeCmp!=null) + Obj = localizeCmp.FindTranslatedObject(Translation); + if (Obj==null && source != null) + Obj = source.FindAsset(Translation); + + // If it wasn't in the references, Load it from Resources + if (Obj==null && localizeCmp==null) + Obj = ResourceManager.pInstance.LoadFromResources(Translation); + + Type ObjType = typeof(Object); + switch (termdata.TermType) + { + case eTermType.Font : ObjType = typeof(Font); break; + case eTermType.Texture : ObjType = typeof(Texture); break; + case eTermType.AudioClip : ObjType = typeof(AudioClip); break; + case eTermType.GameObject : ObjType = typeof(GameObject); break; + case eTermType.Sprite : ObjType = typeof(Sprite); break; + case eTermType.Material : ObjType = typeof(Material); break; + case eTermType.Mesh : ObjType = typeof(Mesh); break; +#if NGUI + case eTermType.UIAtlas : ObjType = typeof(UIAtlas); break; + case eTermType.UIFont : ObjType = typeof(UIFont); break; +#endif +#if TK2D + case eTermType.TK2dFont : ObjType = typeof(tk2dFont); break; + case eTermType.TK2dCollection : ObjType = typeof(tk2dSpriteCollection); break; +#endif + +#if TextMeshPro + case eTermType.TextMeshPFont : ObjType = typeof(TMP_FontAsset); break; +#endif + +#if SVG + case eTermType.SVGAsset : ObjType = typeof(SVGImporter.SVGAsset); break; +#endif + + case eTermType.Object : ObjType = typeof(Object); break; + } + + if (Obj!=null && !string.IsNullOrEmpty(MultiSpriteName)) + { + string sPath = AssetDatabase.GetAssetPath(Obj); + Object[] objs = AssetDatabase.LoadAllAssetRepresentationsAtPath(sPath); + Obj = null; + for (int j=0, jmax=objs.Length; j + { + term.SetTranslation(langIdx, translation, specialization); + i2source.Editor_SetDirty(); + }, specialization); + } + + static void EditPluralTranslations( ref string translation, int langIdx, string langCode ) + { + bool hasParameters = false; + int paramStart = translation.IndexOf("{["); + hasParameters = paramStart >= 0 && translation.IndexOf ("]}", paramStart) > 0; + + if (mShowPlural == langIdx && string.IsNullOrEmpty (translation)) + mShowPlural = -1; + + bool allowPlural = hasParameters || translation.Contains("[i2p_"); + + if (allowPlural) + { + if (GUILayout.Toggle (mShowPlural == langIdx, "", EditorStyles.foldout, GUILayout.Width (13))) + mShowPlural = langIdx; + else if (mShowPlural == langIdx) + mShowPlural = -1; + + GUILayout.Space (-5); + } + + string finalTranslation = ""; + bool unfolded = mShowPlural == langIdx; + bool isPlural = allowPlural && translation.Contains("[i2p_"); + if (unfolded) + GUILayout.BeginVertical ("Box"); + + ShowPluralTranslation("Plural", langCode, translation, ref finalTranslation, true, unfolded, unfolded|isPlural ); + ShowPluralTranslation("Zero", langCode, translation, ref finalTranslation, unfolded, true, true ); + ShowPluralTranslation("One", langCode, translation, ref finalTranslation, unfolded, true, true ); + ShowPluralTranslation("Two", langCode, translation, ref finalTranslation, unfolded, true, true ); + ShowPluralTranslation("Few", langCode, translation, ref finalTranslation, unfolded, true, true ); + ShowPluralTranslation("Many", langCode, translation, ref finalTranslation, unfolded, true, true ); + + if (unfolded) + GUILayout.EndVertical (); + + translation = finalTranslation; + } + + static void ShowPluralTranslation(string pluralType, string langCode, string translation, ref string finalTranslation, bool show, bool allowDelete, bool showTag ) + { + string tag = "[i2p_" + pluralType + "]"; + int idx0 = translation.IndexOf (tag, StringComparison.OrdinalIgnoreCase); + bool hasTranslation = idx0 >= 0 || pluralType=="Plural"; + if (idx0 < 0) idx0 = 0; + else idx0 += tag.Length; + + int idx1 = translation.IndexOf ("[i2p_", idx0, StringComparison.OrdinalIgnoreCase); + if (idx1 < 0) idx1 = translation.Length; + + var pluralTranslation = translation.Substring(idx0, idx1-idx0); + var newTrans = pluralTranslation; + + bool allowPluralForm = GoogleLanguages.LanguageHasPluralType (langCode, pluralType); + + if (hasTranslation && !allowPluralForm) { + newTrans = ""; + GUI.changed = true; + } + + if (show && allowPluralForm) + { + if (!hasTranslation) + GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, 0.35f); + + GUILayout.BeginHorizontal (); + if (showTag) + GUILayout.Label (pluralType, EditorStyles.miniLabel, GUILayout.Width(35)); + newTrans = EditorGUILayout.TextArea (pluralTranslation, Style_WrapTextField); + + if (allowDelete && GUILayout.Button("X", EditorStyles.toolbarButton, GUILayout.Width(15))) + { + newTrans = string.Empty; + GUI.changed = true; + GUIUtility.keyboardControl = 0; + } + + GUILayout.EndHorizontal (); + if (!hasTranslation) + GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, 1); + } + + if (!string.IsNullOrEmpty (newTrans)) + { + if (hasTranslation || newTrans != pluralTranslation) + { + if (pluralType != "Plural") + finalTranslation += tag; + finalTranslation += newTrans; + } + } + } + + /*static public int DrawTranslationTabs( int Index ) + { + GUIStyle MyStyle = new GUIStyle(GUI.skin.FindStyle("dragtab")); + MyStyle.fixedHeight=0; + + GUILayout.BeginHorizontal(); + for (int i=0; i mSelectedScenes = new List(); + + public enum eToolsMode { Parse, Categorize, Merge, NoLocalized, Script, CharSet } + public eToolsMode mCurrentToolsMode = eToolsMode.Parse; + + #endregion + + #region GUI + + void OnGUI_Tools( bool reset ) + { + GUILayout.Space(10); + eToolsMode OldMode = mCurrentToolsMode; + mCurrentToolsMode = (eToolsMode)GUITools.DrawShadowedTabs ((int)mCurrentToolsMode, new[]{"Parse", "Categorize", "Merge", "No Localized", "Script", "CharSet"}, 30); + if (mCurrentToolsMode != OldMode || reset) + { + ClearErrors(); + if (mCurrentToolsMode == eToolsMode.Script) + SelectTermsFromScriptLocalization(); + OnGUI_ScenesList_SelectAllScenes(true); + } + + switch (mCurrentToolsMode) + { + case eToolsMode.Parse : OnGUI_Tools_ParseTerms(); break; + case eToolsMode.Categorize : OnGUI_Tools_Categorize(); break; + case eToolsMode.Merge : OnGUI_Tools_MergeTerms(); break; + case eToolsMode.NoLocalized : OnGUI_Tools_NoLocalized(); break; + case eToolsMode.Script : OnGUI_Tools_Script(); break; + case eToolsMode.CharSet : OnGUI_Tools_CharSet(); break; + } + OnGUI_ShowMsg(); + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools.cs.meta new file mode 100644 index 00000000..f712a581 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3fa4621ebd4134e1989b73eb3f7b864f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Categorize.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Categorize.cs new file mode 100644 index 00000000..11a6c386 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Categorize.cs @@ -0,0 +1,226 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + + Vector2 mScrollPos_CategorizedKeys = Vector2.zero; + string mNewCategory = string.Empty; + + #endregion + + #region GUI + + void OnGUI_Tools_Categorize() + { + OnGUI_ScenesList(true); + + GUI.backgroundColor = Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor = Color.white; + GUILayout.Space (5); + + EditorGUILayout.HelpBox("This tool changes the category of the selected Terms and updates the highlighted scenes", MessageType.Info); + + GUILayout.Space (5); + GUITools.CloseHeader(); + + OnGUI_Tools_Categorize_Terms(); + OnGUI_NewOrExistingCategory(); + } + + void OnGUI_Tools_Categorize_Terms() + { + GUILayout.Label("Change Category of the following Terms:", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true)); + + GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + mScrollPos_CategorizedKeys = GUILayout.BeginScrollView( mScrollPos_CategorizedKeys, LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height ( 100)); + GUI.backgroundColor = Color.white; + + if (mSelectedKeys.Count==0) + { + GUILayout.FlexibleSpace(); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + //GUILayout.BeginVertical(); + EditorGUILayout.HelpBox("No Terms has been selected", MessageType.Warning); + /*if (GUILayout.Button("Select Terms", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true))) + mCurrentViewMode = eViewMode.Keys;*/ + //GUILayout.EndVertical(); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.FlexibleSpace(); + } + else + { + bool DoubleColumn = mSelectedKeys.Count>5; + int HalfCount = Mathf.CeilToInt(mSelectedKeys.Count/2.0f); + + for (int i=0, imax=mSelectedKeys.Count; i=HalfCount) break; + + GUILayout.BeginHorizontal(); + OnGUI_CategorizedTerm(mSelectedKeys[i]); + + if (DoubleColumn && i+HalfCount Categories = LocalizationManager.GetCategories(); + + for (int i=0, imax=Categories.Count; i TermReplacements; + + void AssignCategoryToSelectedTerms() + { + mIsParsing = true; + + EditorApplication.update -= AssignCategoryToSelectedTerms; + + mNewCategory = mNewCategory.Trim (LanguageSourceData.CategorySeparators); + + if (mNewCategory==LanguageSourceData.EmptyCategory) + mNewCategory = string.Empty; + + TermReplacements = new Dictionary(StringComparer.Ordinal); + for (int i=mSelectedKeys.Count-1; i>=0; --i) + { + string sKey, sCategory; + string OldTerm = mSelectedKeys[i]; + + LanguageSourceData.DeserializeFullTerm( OldTerm, out sKey, out sCategory ); + if (!string.IsNullOrEmpty(mNewCategory)) + sKey = string.Concat(mNewCategory, "/", sKey); + + if (OldTerm == sKey) + continue; + + TermReplacements[ OldTerm ] = sKey; + if (!mLanguageSource.ContainsTerm(sKey)) + { + TermData termData = mLanguageSource.GetTermData( OldTerm ); + if (termData != null) + termData.Term = sKey; + else + TermReplacements.Remove (OldTerm); + mLanguageSource.Editor_SetDirty(); + } + } + if (TermReplacements.Count<=0) + { + ShowError ("Unable to assign category: Terms were not found in the selected LanguageSource"); + } + else + { + mLanguageSource.UpdateDictionary(true); + ExecuteActionOnSelectedScenes( ReplaceTermsInCurrentScene ); + ParseTerms(true, false, true); + + if (string.IsNullOrEmpty(mNewCategory)) + mNewCategory = LanguageSourceData.EmptyCategory; + if (!mSelectedCategories.Contains(mNewCategory)) + mSelectedCategories.Add (mNewCategory); + //RemoveUnusedCategoriesFromSelected(); + ScheduleUpdateTermsToShowInList(); + } + TermReplacements = null; + mIsParsing = false; + } + + public static void ReplaceTermsInCurrentScene() + { + Localize[] Locals = (Localize[])Resources.FindObjectsOfTypeAll(typeof(Localize)); + + if (Locals==null) + return; + + bool changed = false; + for (int i=0, imax=Locals.Length; i mCharSetTool_Languages = new List(); + string mCharSet = string.Empty; + bool mCharSetTool_CaseSensitive; + + #endregion + + #region GUI Generate Script + + void OnGUI_Tools_CharSet() + { + bool computeSet = false; + + // remove missing languages + for (int i=mCharSetTool_Languages.Count-1; i>=0; --i) + { + if (mLanguageSource.GetLanguageIndex(mCharSetTool_Languages[i])<0) + mCharSetTool_Languages.RemoveAt(i); + } + + GUILayout.BeginHorizontal (EditorStyles.toolbar); + GUILayout.Label ("Languages:", EditorStyles.miniLabel, GUILayout.ExpandWidth(true)); + if (GUILayout.Button ("All", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + mCharSetTool_Languages.Clear (); + mCharSetTool_Languages.AddRange (mLanguageSource.mLanguages.Select(x=>x.Name)); + computeSet = true; + } + if (GUILayout.Button ("None", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + mCharSetTool_Languages.Clear (); + computeSet = true; + } + if (GUILayout.Button ("Invert", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false))) + { + var current = mCharSetTool_Languages.ToList (); + mCharSetTool_Languages.Clear (); + mCharSetTool_Languages.AddRange (mLanguageSource.mLanguages.Select(x=>x.Name).Where(j=>!current.Contains(j))); + computeSet = true; + } + + + GUILayout.EndHorizontal (); + + //--[ Language List ]-------------------------- + + GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + mScrollPos_Languages = GUILayout.BeginScrollView( mScrollPos_Languages, LocalizeInspector.GUIStyle_OldTextArea, GUILayout.MinHeight (100), GUILayout.MaxHeight(Screen.height), GUILayout.ExpandHeight(false)); + GUI.backgroundColor = Color.white; + + for (int i=0, imax=mLanguageSource.mLanguages.Count; i (); + var LanIndexes = new List (); + for (int i=0; i c).ToArray() ); + mCharSet = Encoding.UTF8.GetString(bytes); + } + + void AppendToCharSet( HashSet sb, string text, bool isRTL ) + { + if (string.IsNullOrEmpty (text)) + return; + + text = RemoveTagsPrefix(text, "[i2p_"); + text = RemoveTagsPrefix(text, "[i2s_"); + + if (isRTL) + text = RTLFixer.Fix( text ); + + foreach (char c in text) + { + if (!mCharSetTool_CaseSensitive) + { + sb.Add(char.ToLowerInvariant(c)); + sb.Add(char.ToUpperInvariant(c)); + } + else + sb.Add(c); + } + } + + // Given "[i2p_" it removes all tags that start with that (e.g. [i2p_Zero] [i2p_One], etc) + string RemoveTagsPrefix(string text, string tagPrefix) + { + int idx = 0; + while (idx < text.Length) + { + idx = text.IndexOf(tagPrefix); + if (idx < 0) + break; + + int idx2 = text.IndexOf(']', idx); + if (idx2 < 0) + break; + + text = text.Remove(idx, idx2 - idx+1); + } + return text; + + } + + + + #endregion + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_CharSet.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_CharSet.cs.meta new file mode 100644 index 00000000..e54fcfa8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_CharSet.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 104713279df05ac4b96f5a76ab621c8a +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs new file mode 100644 index 00000000..1821c26e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + + #endregion + + #region GUI + + void OnGUI_Tools_MergeTerms() + { + OnGUI_ScenesList(true); + + GUI.backgroundColor = Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor = Color.white; + GUILayout.Space (5); + + EditorGUILayout.HelpBox("This option replace all occurrences of this key in the selected scenes", MessageType.Info); + + GUILayout.Space (5); + GUITools.CloseHeader(); + + OnGUI_Tools_Categorize_Terms(); + OnGUI_NewOrExistingTerm(); + } + + void OnGUI_NewOrExistingTerm() + { + if (mKeyToExplore==null) + mKeyToExplore = string.Empty; + + GUI.backgroundColor = Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor = Color.white; + GUILayout.Space(5); + GUILayout.Label("Replace By:"); + GUILayout.EndVertical(); + + //--[ Create Term ]------------------------ + GUILayout.BeginHorizontal(); + mKeyToExplore = GUILayout.TextField(mKeyToExplore, EditorStyles.toolbarTextField, GUILayout.ExpandWidth(true)); + if (GUILayout.Button("Create", "toolbarbutton", GUILayout.Width(60))) + { + LanguageSourceData.ValidateFullTerm( ref mKeyToExplore ); + EditorApplication.update += ReplaceSelectedTerms; + } + GUILayout.EndHorizontal(); + + //--[ Existing Term ]------------------------ + int Index = 0; + List Terms = mLanguageSource.GetTermsList(); + + for (int i=0, imax=Terms.Count; i(StringComparer.Ordinal); + for (int i=mSelectedKeys.Count-1; i>=0; --i) + { + string OldTerm = mSelectedKeys[i]; + if (OldTerm == sNewKey) + continue; + + TermReplacements[ OldTerm ] = mKeyToExplore; + DeleteTerm(OldTerm); + } + ExecuteActionOnSelectedScenes( ReplaceTermsInCurrentScene ); + DoParseTermsInCurrentScene(); + + //--[ Update Selected Categories ]------------- + string mNewCategory = LanguageSourceData.GetCategoryFromFullTerm(sNewKey); + if (mNewCategory == string.Empty) + mNewCategory = LanguageSourceData.EmptyCategory; + if (!mSelectedCategories.Contains(mNewCategory)) + mSelectedCategories.Add (mNewCategory); + //RemoveUnusedCategoriesFromSelected(); + ScheduleUpdateTermsToShowInList(); + TermReplacements = null; + mIsParsing = false; + } + + void RemoveUnusedCategoriesFromSelected() + { + List Categories = LocalizationManager.GetCategories(); + for (int i=mSelectedCategories.Count-1; i>=0; --i) + if (!Categories.Contains( mSelectedCategories[i] )) + mSelectedCategories.RemoveAt(i); + + if (mSelectedCategories.Count == 0) + mSelectedCategories.AddRange(Categories); + + ScheduleUpdateTermsToShowInList(); + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs.meta new file mode 100644 index 00000000..52785835 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_MergeTerms.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d59fa53e0df75a34693c4673bba5ed94 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_NoLocalized.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_NoLocalized.cs new file mode 100644 index 00000000..04b97248 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_NoLocalized.cs @@ -0,0 +1,163 @@ +using System.Collections.Generic; +using TMPro; +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + static string _Tools_NoLocalized_Include, + _Tools_NoLocalized_Exclude; + const string _Help_Tool_NoLocalized = "This selects all labels in the current scene that don't have a Localized component.\n\nWhen Include or Exclude are set, labels will be filtered based on those settings.Separate by (,) if multiple strings are used.\n(e.g. Include:\"example,tutorial\")"; + #endregion + + #region GUI Find NoLocalized Terms + + void OnGUI_Tools_NoLocalized() + { + //OnGUI_ScenesList(); + + if (_Tools_NoLocalized_Include==null) + { + _Tools_NoLocalized_Include = EditorPrefs.GetString ("_Tools_NoLocalized_Include", string.Empty); + _Tools_NoLocalized_Exclude = EditorPrefs.GetString ("_Tools_NoLocalized_Exclude", string.Empty); + } + + GUILayout.Space (5); + + GUI.backgroundColor = Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor = Color.white; + + EditorGUILayout.HelpBox(_Help_Tool_NoLocalized, MessageType.Info); + + GUILayout.Space(5); + GUILayout.BeginHorizontal(); + GUILayout.Label ("Include:", GUILayout.Width(60)); + _Tools_NoLocalized_Include = EditorGUILayout.TextArea(_Tools_NoLocalized_Include, GUILayout.ExpandWidth(true)); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal(); + GUILayout.Label ("Exclude:", GUILayout.Width(60)); + _Tools_NoLocalized_Exclude = EditorGUILayout.TextArea(_Tools_NoLocalized_Exclude, GUILayout.ExpandWidth(true)); + GUILayout.EndHorizontal(); + + GUILayout.Space (5); + + GUILayout.BeginHorizontal (); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Select No Localized Labels")) + EditorApplication.update += SelectNoLocalizedLabels; + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.EndVertical(); + } + + #endregion + + + #region Find No Localized + + void SelectNoLocalizedLabels() + { + EditorPrefs.SetString ("_Tools_NoLocalized_Include", _Tools_NoLocalized_Include); + EditorPrefs.SetString ("_Tools_NoLocalized_Exclude", _Tools_NoLocalized_Exclude); + + EditorApplication.update -= SelectNoLocalizedLabels; + + List labels = new List(); + + TextMesh[] textMeshes = (TextMesh[])Resources.FindObjectsOfTypeAll(typeof(TextMesh)); + if (textMeshes!=null && textMeshes.Length>0) + labels.AddRange(textMeshes); + +#if NGUI + UILabel[] uiLabels = (UILabel[])Resources.FindObjectsOfTypeAll(typeof(UILabel)); + if (uiLabels!=null && uiLabels.Length>0) + labels.AddRange(uiLabels); +#endif + Text[] uiTexts = (Text[])Resources.FindObjectsOfTypeAll(typeof(Text)); + if (uiTexts!=null && uiTexts.Length>0) + labels.AddRange(uiTexts); +#if TextMeshPro + TextMeshPro[] tmpText = (TextMeshPro[])Resources.FindObjectsOfTypeAll(typeof(TextMeshPro)); + if (tmpText!=null && tmpText.Length>0) + labels.AddRange(tmpText); + + TextMeshProUGUI[] uiTextsUGUI = (TextMeshProUGUI[])Resources.FindObjectsOfTypeAll(typeof(TextMeshProUGUI)); + if (uiTextsUGUI!=null && uiTextsUGUI.Length>0) + labels.AddRange(uiTextsUGUI); +#endif +#if TK2D + tk2dTextMesh[] tk2dTM = (tk2dTextMesh[])Resources.FindObjectsOfTypeAll(typeof(tk2dTextMesh)); + if (tk2dTM!=null && tk2dTM.Length>0) + labels.AddRange(tk2dTM); +#endif + + if (labels.Count==0) + return; + + string[] Includes = null; + string[] Excludes = null; + + if (!string.IsNullOrEmpty (_Tools_NoLocalized_Include)) + Includes = _Tools_NoLocalized_Include.ToLower().Split(',', ';'); + + if (!string.IsNullOrEmpty (_Tools_NoLocalized_Exclude)) + Excludes = _Tools_NoLocalized_Exclude.ToLower().Split(',', ';'); + + List Objs = new List(); + + for (int i=0, imax=labels.Count; i()!=null) + continue; + + if (ShouldFilter(label.name.ToLower(), Includes, Excludes)) + continue; + + Objs.Add( labels[i].gameObject ); + } + + if (Objs.Count>0) + Selection.objects = Objs.ToArray(); + else + ShowWarning("All labels in this scene have a Localize component assigned"); + } + + bool ShouldFilter( string Text, string[] Includes, string[] Excludes ) + { + if (Includes!=null && Includes.Length>0) + { + bool hasAny = false; + for (int j=0; j0) + { + for (int j=0; j mParsedTerms = new SortedDictionary(StringComparer.Ordinal); // All Terms resulted from parsing the scenes and collecting the Localize.Term and how many times the terms are used + public static HashSet mParsedCategories = new HashSet(StringComparer.Ordinal); + + public static List mShowableTerms = new List (); // this contains the terms from mParsedTerms that should be shown in the list (filtered by search string, usage, etc) + public static bool mParseTermsIn_Scenes = true; + public static bool mParseTermsIn_Scripts = true; + + #endregion + + #region GUI Parse Keys + + void OnGUI_Tools_ParseTerms() + { + OnGUI_ScenesList(); + + GUI.backgroundColor = Color.Lerp (Color.gray, Color.white, 0.2f); + GUILayout.BeginVertical(LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height(1)); + GUI.backgroundColor = Color.white; + + GUILayout.Space (5); + + EditorGUILayout.HelpBox("This tool searches all Terms used in the selected scenes and updates the usage counter in the Terms Tab", MessageType.Info); + + GUILayout.Space (5); + + GUILayout.BeginHorizontal (); + GUILayout.FlexibleSpace(); + GUILayout.BeginHorizontal ("Box"); + mParseTermsIn_Scenes = GUILayout.Toggle(mParseTermsIn_Scenes, new GUIContent("Parse SCENES", "Opens the selected scenes and finds all the used terms")); + GUILayout.FlexibleSpace(); + mParseTermsIn_Scripts = GUILayout.Toggle(mParseTermsIn_Scripts, new GUIContent("Parse SCRIPTS", "Searches all .cs files and counts all terms like: ScriptLocalization.Get(\"xxx\")")); + GUILayout.EndHorizontal(); + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.BeginHorizontal (); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Parse Localized Terms")) + { + EditorApplication.update += ParseTermsInSelectedScenes; + if (mParseTermsIn_Scripts) + EditorApplication.update += ParseTermsInScripts; + } + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.EndVertical(); + } + + #endregion + + #region Parsed Terms Handlers + + public static ParsedTerm GetParsedTerm( string Term ) + { + ParsedTerm data; + if (!mParsedTerms.TryGetValue(Term, out data)) + data = AddParsedTerm(Term, null, null, 0); + return data; + } + + static ParsedTerm AddParsedTerm( string FullTerm, string TermKey, string Category, int Usage ) + { + if (TermKey==null) + LanguageSourceData.DeserializeFullTerm(FullTerm, out TermKey, out Category); + + var data = new ParsedTerm(); + data.Usage = Usage; + data.FullTerm = FullTerm; + data.Term = TermKey; + data.Category = Category; + + mParsedTerms[FullTerm] = data; + return data; + } + + public static void RemoveParsedTerm( string Term ) + { + mParsedTerms.Remove(Term); + } + + public static void DecreaseParsedTerm( string Term ) + { + ParsedTerm data = GetParsedTerm(Term); + data.Usage = Mathf.Max (0, data.Usage-1); + } + + static void UpdateParsedCategories() + { + mParsedCategories.Clear(); + mParsedCategories.UnionWith( mParsedTerms.Select(x=>x.Value.Category) ); + + mSelectedCategories.RemoveAll(x=>!mParsedCategories.Contains(x)); + } + + + #endregion + + #region ParseKeys + + public static void ParseTermsInSelectedScenes() + { + EditorApplication.update -= ParseTermsInSelectedScenes; + ParseTerms(false, false, true); + } + + public static void DoParseTermsInCurrentScene() + { + EditorApplication.update -= DoParseTermsInCurrentScene; + ParseTerms(true, false, true); + } + + public static void DoParseTermsInCurrentSceneAndScripts() + { + EditorApplication.update -= DoParseTermsInCurrentSceneAndScripts; + ParseTerms(true, true, true); + } + + static void ParseTerms(bool OnlyCurrentScene, bool ParseScripts, bool OpenTermsTab) + { + mIsParsing = true; + + mParsedTerms.Clear(); + mSelectedKeys.Clear(); + mParsedCategories.Clear(); + + if (ParseScripts) + { + ParseTermsInScripts(); + FindTermsInLocalizedStrings(); + } + + if (mParseTermsIn_Scenes) + { + if (!OnlyCurrentScene) + ExecuteActionOnSelectedScenes(FindTermsInCurrentScene); + else + FindTermsInCurrentScene(); + } + + FindTermsNotUsed(); + ScheduleUpdateTermsToShowInList(); + + + if (mParsedTerms.Count <= 0) + { + ShowInfo("No terms where found during parsing"); + return; + } + + UpdateParsedCategories(); + { + mSelectedCategories.Clear(); + mSelectedCategories.AddRange(mParsedCategories); + } + + + if (mLanguageSource!=null) + { + var sourceCategories = mLanguageSource.GetCategories(); + mSelectedCategories.RemoveAll(x => !sourceCategories.Contains(x)); + } + + if (OpenTermsTab) + { + if ((mFlagsViewKeys & (int)eFlagsViewKeys.Missing) > 0) + { + mFlagsViewKeys = (int)eFlagsViewKeys.Used | (int)eFlagsViewKeys.NotUsed | (int)eFlagsViewKeys.Missing; + } + else + { + mFlagsViewKeys = (int)eFlagsViewKeys.Used | (int)eFlagsViewKeys.NotUsed; + } + mCurrentViewMode = eViewMode.Keys; + } + mIsParsing = false; + } + + static void FindTermsInCurrentScene() + { + Localize[] Locals = (Localize[])Resources.FindObjectsOfTypeAll(typeof(Localize)); + + if (Locals==null) + return; + + for (int i=0, imax=Locals.Length; i Type_localizedString.IsAssignableFrom(x.PropertyType) || + Attribute.IsDefined(x, typeof(TermsPopup))); + foreach (var p in props) + { + string value = null; + if (Type_localizedString.IsAssignableFrom(p.PropertyType)) + { + var varObj = p.GetValue(cmp,null); + value = Convert.ToString(varObj.GetType().GetField("mTerm").GetValue(varObj)); + } + else + { + value = Convert.ToString(p.GetValue(cmp,null)); + } + if (!string.IsNullOrEmpty(value)) + { + GetParsedTerm(value).Usage++; + } + + //Debug.LogFormat("{0} ({1})", p.Name, p.PropertyType); + //Debug.Log(value); + } + + + var variables = cmp.GetType() + .GetFields() + .Where(x => Type_localizedString.IsAssignableFrom(x.FieldType) || + Attribute.IsDefined(x, typeof(TermsPopup))); + foreach (var v in variables) + { + string value = null; + if (Type_localizedString.IsAssignableFrom(v.FieldType)) + { + var varObj = v.GetValue(cmp); + value = Convert.ToString(varObj.GetType().GetField("mTerm").GetValue(varObj)); + } + else + { + value = Convert.ToString(v.GetValue(cmp)); + } + if (!string.IsNullOrEmpty(value)) + { + GetParsedTerm(value).Usage++; + } + //Debug.LogFormat("{0} ({1})", v.Name, v.FieldType); + //Debug.Log(value); + } + } + } + + static void FindTermsNotUsed() + { + // every Term that is in the DB but not in mParsedTerms + if (mLanguageSource == null) + return; + + //string lastCategory = null; + foreach (TermData termData in mLanguageSource.mTerms) + GetParsedTerm(termData.Term); + } + + static void ParseTermsInScripts() + { + EditorApplication.update -= ParseTermsInScripts; + + string[] scriptFiles = AssetDatabase.GetAllAssetPaths().Where(path => path.ToLower().EndsWith(".cs")).ToArray(); + + string mLocalizationManager = @"GetTranslation\s?\(\s?\""(.*?)\"""; + string mLocalizationManagerOld = @"GetTermTranslation\s?\(\s?\""(.*?)\"""; + string mLocalizationManagerTry = @"TryGetTranslation\s?\(\s?\""(.*?)\"""; + string mSetTerm = @"SetTerm\s?\(\s?\""(.*?)\"""; + + Regex regex = new Regex(mLocalizationManager + "|" + mLocalizationManagerTry + "|" + mLocalizationManagerOld + "|" + mSetTerm, RegexOptions.Multiline); + + foreach (string scriptFile in scriptFiles) + { + string scriptContents = File.ReadAllText(scriptFile); + MatchCollection matches = regex.Matches(scriptContents); + for (int matchNum = 0; matchNum < matches.Count; matchNum++) + { + Match match = matches[matchNum]; + string term = I2Utils.GetCaptureMatch(match); + GetParsedTerm(term).Usage++; + } + } + ScheduleUpdateTermsToShowInList(); + } + #endregion + + #region Misc + + public static void SetAllTerms_When_InferredTerms_IsInSource() + { + var Locals = Resources.FindObjectsOfTypeAll(typeof(Localize)) as Localize[]; + + if (Locals==null) + return; + + foreach (var localize in Locals) + { + if (localize == null || localize.Source != null && localize.Source.SourceData != mLanguageSource || localize.gameObject == null || !GUITools.ObjectExistInScene (localize.gameObject)) + continue; + + if (!string.IsNullOrEmpty (localize.mTerm) && !string.IsNullOrEmpty (localize.SecondaryTerm)) + continue; + + ApplyInferredTerm( localize ); + } + + ParseTerms (true, false, true); + } + + public static void ApplyInferredTerm( Localize localize) + { + if (mLanguageSource==null) + return; + if (!string.IsNullOrEmpty (localize.mTerm) && !string.IsNullOrEmpty (localize.mTermSecondary)) + return; + + string sTerm, sSecTerm; + localize.GetFinalTerms (out sTerm, out sSecTerm); + + if (string.IsNullOrEmpty (localize.mTerm)) + { + var termData = mLanguageSource.GetTermData (sTerm, true); + if (termData!=null) + localize.mTerm = termData.Term; + } + + if (string.IsNullOrEmpty (localize.mTermSecondary)) + { + var termData = mLanguageSource.GetTermData (sSecTerm, true); + if (termData!=null) + localize.mTermSecondary = termData.Term; + } + + //localize.Source = mLanguageSource; + } + + #endregion + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_ParseTerms.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_ParseTerms.cs.meta new file mode 100644 index 00000000..093359fe --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_ParseTerms.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 697e1bc5d373845df927c0da625b7cad +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Scenes.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Scenes.cs new file mode 100644 index 00000000..a5c1e84c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Tools_Scenes.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LocalizationEditor + { + #region Variables + EditorBuildSettingsScene[] mScenesInBuildSettings; + bool Tools_ShowScenesList; + #endregion + + #region GUI + + void OnGUI_ScenesList( bool SmallSize = false ) + { + mScenesInBuildSettings = EditorBuildSettings.scenes; + string currentScene = Editor_GetCurrentScene (); + + List sceneList = mScenesInBuildSettings.Select(x=>x.path).ToList(); + if (!sceneList.Contains (currentScene)) + sceneList.Insert (0, currentScene); + + mSelectedScenes.RemoveAll (x => !sceneList.Contains(x)); + if (mSelectedScenes.Count==0) + mSelectedScenes.Add (currentScene); + + if (!Tools_ShowScenesList) + { + GUILayout.Space(5); + GUILayout.BeginHorizontal(); + Tools_ShowScenesList = GUILayout.Toggle(Tools_ShowScenesList, "", EditorStyles.foldout, GUILayout.ExpandWidth(false)); + + string sceneText = string.Empty; + if (mSelectedScenes.Count==1 && mSelectedScenes[0]== currentScene) + sceneText = "Current Scene"; + else + sceneText = string.Format("{0} of {1} Scenes", mSelectedScenes.Count, Mathf.Max(mScenesInBuildSettings.Length, mSelectedScenes.Count)); + var stl = new GUIStyle("toolbarbutton"); + stl.richText = true; + if (GUILayout.Button("Scenes to Parse: "+sceneText+"", stl)) + Tools_ShowScenesList = true; + GUILayout.EndHorizontal(); + GUILayout.Space(10); + return; + } + OnGUI_ScenesList_TitleBar(); + + GUI.backgroundColor = Color.Lerp(GUITools.LightGray, Color.white, 0.5f); + mScrollPos_BuildScenes = GUILayout.BeginScrollView( mScrollPos_BuildScenes, LocalizeInspector.GUIStyle_OldTextArea, GUILayout.Height ( SmallSize ? 100 : 200)); + GUI.backgroundColor = Color.white; + + for (int i=0, imax=sceneList.Count; i0) + { + try + { + string FilePath = AssetDatabase.GUIDToAssetPath(assets[0]); + return FilePath; + } + catch(Exception) + { } + } + + return "Assets/ScriptLocalization.cs"; + } + + void BuildScriptWithSelectedTerms( StringBuilder sbTrans, StringBuilder sbTerms ) + { + List Categories = LocalizationManager.GetCategories(); + foreach (string Category in Categories) + { + List CategoryTerms = ScriptTool_GetSelectedTermsInCategory(Category); + if (CategoryTerms.Count<=0) + continue; + + List AdjustedCategoryTerms = new List(CategoryTerms); + for (int i=0, imax=AdjustedCategoryTerms.Count; i ScriptTool_GetSelectedTermsInCategory( string Category ) + { + List list = new List(); + foreach (string FullKey in mSelectedKeys) + { + string categ = LanguageSourceData.GetCategoryFromFullTerm(FullKey); + if (categ == Category && ShouldShowTerm(FullKey)) + { + list.Add( LanguageSourceData.GetKeyFromFullTerm(FullKey) ); + } + } + + return list; + } + + void BuildScriptCategory( StringBuilder sbTrans, StringBuilder sbTerms, string Category, List AdjustedTerms, List Terms ) + { + if (Category==LanguageSourceData.EmptyCategory) + { + for (int i = 0; i < Terms.Count; ++i) + { + sbTrans.AppendLine( " public static string " + AdjustedTerms[i] + " \t\t{ get{ return LocalizationManager.GetTranslation (\"" + Terms[i] + "\"); } }"); + sbTerms.AppendLine(" public const string " + AdjustedTerms[i] + " = \"" + Terms[i] + "\";"); + } + } + else + for (int i=0; i=0) + Term = "_"+Term; + + if (!allowFullLength && Term.Length>Script_Tool_MaxVariableLength) + Term = Term.Substring(0, Script_Tool_MaxVariableLength); + + // Remove invalid characters + char[] chars = Term.ToCharArray(); + for (int i=0, imax=chars.Length; i AdjustedTerms) + { + string lastTerm = "$"; + int Counter = 1; + for (int i=0, imax=AdjustedTerms.Count; i +// { +// EditorApplication.update -= Callback; + +// if (source.GetComponents().Length<=2) +// { +// Debug.Log ("Deleting GameObject '" + source.name + "' and Openning the "+LocalizationManager.GlobalSources[0]+".prefab"); +// DestroyImmediate (source.gameObject); +// } +// else +// { +// Debug.Log ("Deleting the LanguageSource inside GameObject " + source.name + " and Openning the "+LocalizationManager.GlobalSources[0] +".prefab"); +// DestroyImmediate (source); +// } + +// GameObject Prefab = (Resources.Load(LocalizationManager.GlobalSources[0]) as GameObject); +// Selection.activeGameObject = Prefab; +// }; +// } +// GUILayout.FlexibleSpace(); +// GUILayout.EndHorizontal(); + +// GUILayout.Space(10); + } + + private bool bSourceInsidePluginsFolder = true; + public void OnGUI_Warning_SourceInsidePluginsFolder() + { + if (!bSourceInsidePluginsFolder || mLanguageSource.UserAgreesToHaveItInsideThePluginsFolder) + return; + + if (!mLanguageSource.IsGlobalSource()) + { + bSourceInsidePluginsFolder = false; + return; + } + + string pluginPath = UpgradeManager.GetI2LocalizationPath(); + string assetPath = AssetDatabase.GetAssetPath(target); + + if (!assetPath.StartsWith(pluginPath, StringComparison.OrdinalIgnoreCase)) + { + bSourceInsidePluginsFolder = false; + return; + } + + string Text = @"Its advised to move this Global Source to a folder outside the I2 Localization. +For example (Assets/I2/Resources) instead of (Assets/I2/Localization/Resources) + +That way upgrading the plugin its as easy as deleting the I2/Localization and I2/Common folders and reinstalling. + +Do you want the plugin to automatically move the LanguageSource to a folder outside the plugin?"; + EditorGUILayout.HelpBox(Text, MessageType.Warning); + + GUILayout.BeginHorizontal(); + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Keep as is")) + { + SerializedProperty Agree = serializedObject.FindProperty("UserAgreesToHaveItInsideThePluginsFolder"); + Agree.boolValue = true; + bSourceInsidePluginsFolder = true; + } + + GUILayout.FlexibleSpace(); + + if (GUILayout.Button("Ask me later")) + { + bSourceInsidePluginsFolder = false; + } + + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Move to the Recommended Folder")) + EditorApplication.delayCall += MoveGlobalSource; + + GUILayout.FlexibleSpace(); + GUILayout.EndHorizontal(); + + GUILayout.Space(10); + } + + public bool OnGUI_Warning_SourceNotUpToDate() + { + if (mProp_GoogleLiveSyncIsUptoDate.boolValue) + { + return false; + } + + string Text = "Spreadsheet is not up-to-date and Google Live Synchronization is enabled\n\nWhen playing in the device the Spreadsheet will be downloaded and override the translations built from the editor.\n\nTo fix this, Import or Export REPLACE to Google"; + EditorGUILayout.HelpBox(Text, MessageType.Warning); + return true; + } + + private static void MoveGlobalSource() + { + EditorApplication.delayCall -= MoveGlobalSource; + + string pluginPath = UpgradeManager.GetI2LocalizationPath(); + string assetPath = AssetDatabase.GetAssetPath(mLanguageSource.ownerObject); + + string I2Path = pluginPath.Substring(0, pluginPath.Length-"/Localization".Length); + string newPath = I2Path + "/Resources/" + mLanguageSource.ownerObject.name + ".prefab"; + + string fullresFolder = Application.dataPath + I2Path.Replace("Assets","") + "/Resources"; + bool folderExists = Directory.Exists (fullresFolder); + + if (!folderExists) + AssetDatabase.CreateFolder(I2Path, "Resources"); + AssetDatabase.MoveAsset(assetPath, newPath); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + + var prefab = AssetDatabase.LoadAssetAtPath(newPath, typeof(GameObject)) as GameObject; + Selection.activeGameObject = prefab; + + Debug.Log("LanguageSource moved to:" + newPath); + ShowInfo("Please, ignore some console warnings/errors produced by this operation, everything worked fine. In a new release those warnings will be cleared"); + } + + public static void DelayedDestroySource() + { + + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Warnings.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Warnings.cs.meta new file mode 100644 index 00000000..bb324deb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Localization/LocalizationEditor_Warnings.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 20e86d3a806624846bccd81bac9f935f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs new file mode 100644 index 00000000..1ef9d556 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs @@ -0,0 +1,133 @@ +#if UNITY_ANDROID +using UnityEditor.Callbacks; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public class PostProcessBuild_Android + { + // Post Process Scene is a hack, because using PostProcessBuild will be called after the APK is generated, and so, I didn't find a way to copy the new files + [PostProcessScene] + public static void OnPostProcessScene() + { + #if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + bool isFirstScene = (EditorBuildSettings.scenes.Length>0 && EditorBuildSettings.scenes[0].path == EditorApplication.currentScene); + #else + bool isFirstScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene().buildIndex <= 0; + #endif + + if (!EditorApplication.isPlayingOrWillChangePlaymode && + (EditorUserBuildSettings.activeBuildTarget == BuildTarget.Android) && + isFirstScene) + { + string projPath = System.IO.Path.GetFullPath(Application.streamingAssetsPath + "/../../Temp/StagingArea"); + //string projPath = System.IO.Path.GetFullPath(Application.dataPath+ "/Plugins/Android"); + PostProcessAndroid(BuildTarget.Android, projPath); + } + } + + //[PostProcessBuild(10000)] + public static void PostProcessAndroid(BuildTarget buildTarget, string pathToBuiltProject) + { + if (buildTarget!=BuildTarget.Android) + return; + + if (LocalizationManager.Sources.Count <= 0) + LocalizationManager.UpdateSources(); + + // Get language with variants, but also add it without the variant to allow fallbacks (e.g. en-CA also adds en) + var langCodes = LocalizationManager.GetAllLanguagesCode(false).Concat( LocalizationManager.GetAllLanguagesCode(true) ).Distinct().ToList(); + + if (langCodes.Count <= 0) + return; + string stringXML = "\n"+ + "\n"+ + " {0}\n"+ + ""; + + SetStringsFile( pathToBuiltProject+"/res/values", "strings.xml", stringXML, LocalizationManager.GetAppName(langCodes[0]) ); + + + var list = new List(); + list.Add( pathToBuiltProject + "/res/values" ); + foreach (var code in langCodes) + { + // Android doesn't use zh-CN or zh-TW, instead it uses: zh-rCN, zh-rTW, zh + string fixedCode = code; + if (fixedCode.StartsWith("zh", System.StringComparison.OrdinalIgnoreCase)) + { + string googleCode = GoogleLanguages.GetGoogleLanguageCode(fixedCode); + if (googleCode==null) googleCode = fixedCode; + fixedCode = (googleCode == "zh-CN") ? "zh-CN" : googleCode; + } + fixedCode = fixedCode.Replace("-", "-r"); + + string dir = pathToBuiltProject + "/res/values-" + fixedCode; + + SetStringsFile( dir, "strings.xml", stringXML, LocalizationManager.GetAppName(code) ); + } + } + + static void CreateFileIfNeeded ( string folder, string fileName, string text ) + { + try + { + if (!System.IO.Directory.Exists( folder )) + System.IO.Directory.CreateDirectory( folder ); + + if (!System.IO.File.Exists( folder + "/"+fileName )) + System.IO.File.WriteAllText( folder + "/"+fileName, text ); + } + catch (System.Exception e) + { + Debug.Log( e ); + } + } + + static void SetStringsFile(string folder, string fileName, string stringXML, string appName) + { + try + { + appName = appName.Replace("&", "&").Replace("<", "<").Replace(">", ">").Replace("\"", "\\\"").Replace("'", "\\'"); + appName = appName.Replace("\r\n", string.Empty).Replace("\n", string.Empty).Replace("\r", string.Empty); + + if (!System.IO.Directory.Exists(folder)) + System.IO.Directory.CreateDirectory(folder); + + if (!System.IO.File.Exists(folder + "/" + fileName)) + { + // create the string file if it doesn't exist + stringXML = string.Format(stringXML, appName); + } + else + { + stringXML = System.IO.File.ReadAllText(folder + "/" + fileName); + // find app_name + var pattern = "\"app_name\">(.*)<\\/string>"; + var regexPattern = new System.Text.RegularExpressions.Regex(pattern); + if (regexPattern.IsMatch(stringXML)) + { + // Override the AppName if it was found + stringXML = regexPattern.Replace(stringXML, string.Format("\"app_name\">{0}", appName)); + } + else + { + // insert the appName if it wasn't there + int idx = stringXML.IndexOf(""); + if (idx > 0) + stringXML = stringXML.Insert(idx + "".Length, string.Format("\n {0}\n", appName)); + } + } + System.IO.File.WriteAllText(folder + "/" + fileName, stringXML); + } + catch (System.Exception e) + { + Debug.Log(e); + } + } + } +} +#endif \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs.meta new file mode 100644 index 00000000..6b4251ad --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_ANDROID.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c8d936531867014da228239d095833c +timeCreated: 1489354551 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs new file mode 100644 index 00000000..8b9f1890 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs @@ -0,0 +1,102 @@ +#if UNITY_IOS || UNITY_IPHONE +using UnityEditor.Callbacks; +using System.Collections; +using UnityEditor.iOS_I2Loc.Xcode; +using System.IO; +using UnityEditor; +using UnityEngine; +using System.Linq; + + +namespace I2.Loc +{ + public class PostProcessBuild_IOS + { + [PostProcessBuild(10000)] + public static void ChangeXcodePlist(BuildTarget buildTarget, string pathToBuiltProject) + { + if (buildTarget != BuildTarget.iOS) + return; + + if (LocalizationManager.Sources.Count <= 0) + LocalizationManager.UpdateSources(); + var langCodes = LocalizationManager.GetAllLanguagesCode(false).Concat(LocalizationManager.GetAllLanguagesCode(true)).Distinct().ToList(); + if (langCodes.Count <= 0) + return; + + try + { + //----[ Export localized languages to the info.plist ]--------- + + string plistPath = pathToBuiltProject + "/Info.plist"; + PlistDocument plist = new PlistDocument(); + plist.ReadFromString(File.ReadAllText(plistPath)); + + PlistElementDict rootDict = plist.root; + + // Get Language root + var langArray = rootDict.CreateArray("CFBundleLocalizations"); + + // Set the Language Codes + foreach (var code in langCodes) + { + if (code == null || code.Length < 2) + continue; + langArray.AddString(code); + } + + rootDict.SetString("CFBundleDevelopmentRegion", langCodes[0]); + + // Write to file + File.WriteAllText(plistPath, plist.WriteToString()); + + //--[ Localize App Name ]---------- + + string LocalizationRoot = pathToBuiltProject + "/I2Localization"; + if (!Directory.Exists(LocalizationRoot)) + Directory.CreateDirectory(LocalizationRoot); + + var project = new PBXProject(); + string projPath = PBXProject.GetPBXProjectPath(pathToBuiltProject); + //if (!projPath.EndsWith("xcodeproj")) + //projPath = projPath.Substring(0, projPath.LastIndexOfAny("/\\".ToCharArray())); + + project.ReadFromFile(projPath); + //var targetName = PBXProject.GetUnityTargetName(); + //string projBuild = project.TargetGuidByName( targetName ); + + project.RemoveLocalizationVariantGroup("I2 Localization"); + // Set the Language Overrides + foreach (var code in langCodes) + { + if (code == null || code.Length < 2) + continue; + + var LanguageDirRoot = LocalizationRoot + "/" + code + ".lproj"; + if (!Directory.Exists(LanguageDirRoot)) + Directory.CreateDirectory(LanguageDirRoot); + + var infoPlistPath = LanguageDirRoot + "/InfoPlist.strings"; + var InfoPlist = string.Format("CFBundleDisplayName = \"{0}\";", LocalizationManager.GetAppName(code)); + File.WriteAllText(infoPlistPath, InfoPlist); + + var langProjectRoot = "I2Localization/"+code+".lproj"; + + var stringPaths = LanguageDirRoot + "/Localizable.strings"; + File.WriteAllText(stringPaths, string.Empty); + + project.AddLocalization(langProjectRoot + "/Localizable.strings", langProjectRoot + "/Localizable.strings", "I2 Localization"); + project.AddLocalization(langProjectRoot + "/InfoPlist.strings", langProjectRoot + "/InfoPlist.strings", "I2 Localization"); + } + + project.WriteToFile(projPath); + + } + catch (System.Exception e) + { + Debug.Log (e); + } + } + } +} +#endif \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs.meta new file mode 100644 index 00000000..53764a72 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_IOS.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2bf71e767aaa5a245b9d74f326a39549 +timeCreated: 1489354551 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs new file mode 100644 index 00000000..abfd800c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs @@ -0,0 +1,30 @@ +namespace I2.Loc +{ + public class PostProcessBuild_UnloadLanguages + { + // [PostProcessBuild] + // public static void SaveGlobalSources(BuildTarget buildTarget, string pathToBuiltProject) + // { + //if (LocalizationManager.Sources.Count <= 0) + // LocalizationManager.UpdateSources(); + + // foreach (var source in LocalizationManager.Sources.Where(x=>x.IsGlobalSource())) + // { + // source.SaveLanguages(true, PersistentStorage.eFileType.Streaming); + // } + // } + + // [PostProcessScene] + // public static void SaveLocalSources() + // { + // if (EditorApplication.isPlayingOrWillChangePlaymode) + // return; + + // LanguageSource[] sceneSources = (LanguageSource[])Resources.FindObjectsOfTypeAll(typeof(LanguageSource)); + // foreach (var source in sceneSources.Where(x=>!x.IsGlobalSource())) + // { + // source.SaveLanguages(true, PersistentStorage.eFileType.Streaming); + // } + // } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs.meta new file mode 100644 index 00000000..8151b158 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/PostProcessBuild_UnloadLanguages.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 68151af3db9fb734fb3823c020c9b8c0 +timeCreated: 1489354551 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode.meta new file mode 100644 index 00000000..e2e7904d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d9276efd8270b104ea614946e5787aa1 +folderAsset: yes +timeCreated: 1489466610 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/UnityEditor.iOS_I2Loc.Xcode.dll b/popcorn/Assets/I2/Localization/Scripts/Editor/Unity XCode/UnityEditor.iOS_I2Loc.Xcode.dll new file mode 100644 index 0000000000000000000000000000000000000000..939cde4bb0ae0aeb8991307dcf140f041ded12df GIT binary patch literal 123904 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 + { + #if UNITY_5_6 + if (target == BuildTargetGroup.Switch) continue; // some releases of 5.6 defined BuildTargetGroup.Switch but didn't handled it correctly + #endif + EnablePluginsOnPlatform( target ); + } + + // Force these one (iPhone has the same # than iOS and iPhone is deprecated, so iOS was been skipped) + EnablePluginsOnPlatform(BuildTargetGroup.iOS); + } + + static void EnablePluginsOnPlatform( BuildTargetGroup Platform ) + { + string Settings = PlayerSettings.GetScriptingDefineSymbolsForGroup(Platform ); + + bool HasChanged = false; + List symbols = new List( Settings.Split(';')); + + HasChanged |= UpdateSettings("NGUI", "NGUIDebug", "", ref symbols); + HasChanged |= UpdateSettings("DFGUI", "dfPanel", "", ref symbols); + HasChanged |= UpdateSettings("TK2D", "tk2dTextMesh", "", ref symbols); + HasChanged |= UpdateSettings( "TextMeshPro", "TMPro.TMP_FontAsset", "TextMeshPro", ref symbols ); + HasChanged |= UpdateSettings( "SVG", "SVGImporter.SVGAsset", "", ref symbols ); + + if (HasChanged) + { + try + { + Settings = string.Empty; + for (int i=0,imax=symbols.Count; i0) Settings += ";"; + Settings += symbols[i]; + } + PlayerSettings.SetScriptingDefineSymbolsForGroup(Platform, Settings ); + } + catch (Exception) + { + } + } + } + + static bool UpdateSettings( string mPlugin, string mType, string AssemblyType, ref List symbols) + { + try + { + bool hasPluginClass = false; + + if (!string.IsNullOrEmpty( AssemblyType )) + { + var rtype = AppDomain.CurrentDomain.GetAssemblies() + .Where( assembly => assembly.FullName.Contains(AssemblyType) ) + .Select( assembly => assembly.GetType( mType, false ) ) + .Where( t => t!=null ) + .FirstOrDefault(); + if (rtype != null) + hasPluginClass = true; + } + + if (!hasPluginClass) + hasPluginClass = typeof( Localize ).Assembly.GetType( mType, false )!=null; + + + bool hasPluginDef = symbols.IndexOf(mPlugin)>=0; + + if (hasPluginClass != hasPluginDef) + { + if (hasPluginClass) symbols.Add(mPlugin); + else symbols.Remove(mPlugin); + return true; + } + } + catch(Exception) + { + } + return false; + + } + + //[MenuItem( "Tools/I2 Localization/Create I2Languages", false, 1)] + public static void CreateLanguageSources() + { + if (LocalizationManager.GlobalSources==null || LocalizationManager.GlobalSources.Length==0) + return; + + Object GlobalSource = Resources.Load(LocalizationManager.GlobalSources[0]); + LanguageSourceData sourceData = null; + string sourcePath = null; + + if (GlobalSource != null) + { + if (GlobalSource is GameObject) + { + // I2Languages was a prefab before 2018.3, it should be converted to an ScriptableObject + sourcePath = AssetDatabase.GetAssetPath(GlobalSource); + LanguageSource langSourceObj = (GlobalSource as GameObject).GetComponent(); + sourceData = langSourceObj.mSource; + } + else + { + return; + } + } + + LanguageSourceAsset asset = ScriptableObject.CreateInstance(); + if (sourceData != null) + { + asset.mSource = sourceData; + AssetDatabase.DeleteAsset(sourcePath); + } + + if (string.IsNullOrEmpty(sourcePath)) + { + //string PluginPath = GetI2LocalizationPath(); + string ResourcesFolder = "Assets/Resources";//PluginPath.Substring(0, PluginPath.Length-"/Localization".Length) + "/Resources"; + + string fullresFolder = Application.dataPath + ResourcesFolder.Replace("Assets", ""); + if (!Directory.Exists(fullresFolder)) + Directory.CreateDirectory(fullresFolder); + + sourcePath = ResourcesFolder + "/" + LocalizationManager.GlobalSources[0] + ".asset"; + } + else + { + sourcePath = sourcePath.Replace(".prefab", ".asset"); + } + + AssetDatabase.CreateAsset(asset, sourcePath); + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + } + + [MenuItem("Tools/I2 Localization/Help", false, 30)] + [MenuItem("Help/I2 Localization")] + public static void MainHelp() + { + Application.OpenURL(LocalizeInspector.HelpURL_Documentation); + } + + [MenuItem("Tools/I2 Localization/Open I2Languages.asset", false, 0)] + public static void OpenGlobalSource() + { + CreateLanguageSources(); + LanguageSourceAsset GO = Resources.Load(LocalizationManager.GlobalSources[0]); + if (GO == null) + Debug.Log("Unable to find Global Language at Assets/Resources/" + LocalizationManager.GlobalSources[0] + ".asset"); + + Selection.activeObject = GO; + } + + + /*static void CreateScriptLocalization() + { + string[] assets = AssetDatabase.FindAssets("ScriptLocalization"); + if (assets.Length>0) + return; + + string ScriptsFolder = "Assets"; + string ScriptText = LocalizationEditor.mScriptLocalizationHeader + " }\n}"; + + System.IO.File.WriteAllText(ScriptsFolder + "/ScriptLocalization.cs", ScriptText); + + AssetDatabase.SaveAssets(); + AssetDatabase.Refresh(); + }*/ + + public static string GetI2LocalizationPath() + { + string[] assets = AssetDatabase.FindAssets("LocalizationManager"); + if (assets.Length==0) + return string.Empty; + + string PluginPath = AssetDatabase.GUIDToAssetPath(assets[0]); + PluginPath = PluginPath.Substring(0, PluginPath.Length - "/Scripts/LocalizationManager.cs".Length); + + return PluginPath; + } + + public static string GetI2Path() + { + string pluginPath = GetI2LocalizationPath(); + return pluginPath.Substring(0, pluginPath.Length-"/Localization".Length); + } + + public static string GetI2CommonResourcesPath() + { + string I2Path = GetI2Path(); + return I2Path + "/Resources"; + } + } + + public static class UpgradeManagerHelper + { + public static bool HasAttributeOfType(this Enum enumVal) where T:Attribute + { + var type = enumVal.GetType(); + var memInfo = type.GetMember(enumVal.ToString()); + var attributes = memInfo[0].GetCustomAttributes(typeof(T), false); + return attributes.Length > 0; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs.meta new file mode 100644 index 00000000..d3ab67c2 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Editor/UpgradeManager.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6e61480936111c54883dc051751e0a5f +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs b/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs new file mode 100644 index 00000000..43909b02 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs @@ -0,0 +1,24 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + [Serializable] + public class EventCallback + { + public MonoBehaviour Target; + public string MethodName = string.Empty; + + public void Execute( Object Sender = null ) + { + if (HasCallback() && Application.isPlaying) + Target.gameObject.SendMessage(MethodName, Sender, SendMessageOptions.DontRequireReceiver); + } + + public bool HasCallback() + { + return Target != null && !string.IsNullOrEmpty (MethodName); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs.meta b/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs.meta new file mode 100644 index 00000000..ce0e9672 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/EventCallback.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 79fbe85a671c1254880b1fc083a723e5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google.meta b/popcorn/Assets/I2/Localization/Scripts/Google.meta new file mode 100644 index 00000000..bf49de87 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dda5008126b59ad4bad4c9d2626a2345 +folderAsset: yes +timeCreated: 1461137613 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs new file mode 100644 index 00000000..5e51df22 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs @@ -0,0 +1,648 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public enum ePluralType { Zero, One, Two, Few, Many, Plural } + + public static class GoogleLanguages + { + public static string GetLanguageCode(string Filter, bool ShowWarnings = false) + { + if (string.IsNullOrEmpty(Filter)) + return string.Empty; + + string[] Filters = Filter.ToLowerInvariant().Split(" /(),".ToCharArray()); + + foreach (var kvp in mLanguageDef) + if (LanguageMatchesFilter(kvp.Key, Filters)) + return kvp.Value.Code; + + if (ShowWarnings) + Debug.Log($"Language '{Filter}' not recognized. Please, add the language code to GoogleTranslation.cs"); + return string.Empty; + } + + + public static List GetLanguagesForDropdown(string Filter, string CodesToExclude) + { + string[] Filters = Filter.ToLowerInvariant().Split(" /(),".ToCharArray()); + + List Languages = new List(); + + foreach (var kvp in mLanguageDef) + if (string.IsNullOrEmpty(Filter) || LanguageMatchesFilter(kvp.Key, Filters)) + { + string code = string.Concat("[" + kvp.Value.Code + "]"); + if (!CodesToExclude.Contains(code)) + Languages.Add(kvp.Key + " " + code); + } + + // Add headers to variants (e.g. "English/English" before all English variants + for (int i = Languages.Count - 2; i >= 0; --i) + { + string Prefix = Languages[i].Substring(0, Languages[i].IndexOf(" [")); + if (Languages[i + 1].StartsWith(Prefix, StringComparison.Ordinal)) + { + Languages[i] = Prefix + "/" + Languages[i]; + Languages.Insert(i + 1, Prefix + "/"); + } + } + return Languages; + } + + // "Engl Unit" matches "English/United States" + static bool LanguageMatchesFilter(string Language, string[] Filters) + { + Language = Language.ToLowerInvariant(); + for (int i = 0, imax = Filters.Length; i < imax; ++i) + if (Filters[i] != "") + { + if (!Language.Contains(Filters[i].ToLower())) + return false; + Language = Language.Remove(Language.IndexOf(Filters[i], StringComparison.Ordinal), Filters[i].Length); + } + return true; + } + + + // "Arabic/Algeria [ar-XX]" returns "Arabic (Algeria)" + // "English/English [en]" returns "English" + public static string GetFormatedLanguageName(string Language) + { + string BaseLanguage = string.Empty; + + //-- Remove code -------- + int Index = Language.IndexOf(" [", StringComparison.Ordinal); + if (Index > 0) + Language = Language.Substring(0, Index); + + //-- Check for main language: "English/English [en]" returns "English" ----------- + Index = Language.IndexOf('/'); + if (Index > 0) + { + BaseLanguage = Language.Substring(0, Index); + if (Language == BaseLanguage + "/" + BaseLanguage) + return BaseLanguage; + + //-- Convert variants into right format + Language = Language.Replace("/", " (") + ")"; + } + + return Language; + } + + // English British -> "English Canada [en-CA]" + public static string GetCodedLanguage(string Language, string code) + { + string DefaultCode = GetLanguageCode(Language); + if (string.Compare(code, DefaultCode, StringComparison.OrdinalIgnoreCase) == 0) + return Language; + return string.Concat(Language, " [", code, "]"); + } + + // "English Canada [en-CA]" -> "English Canada", "en-CA" + public static void UnPackCodeFromLanguageName(string CodedLanguage, out string Language, out string code) + { + if (string.IsNullOrEmpty(CodedLanguage)) + { + Language = string.Empty; + code = string.Empty; + return; + } + int Index = CodedLanguage.IndexOf("[", StringComparison.Ordinal); + if (Index < 0) + { + Language = CodedLanguage; + code = GetLanguageCode(Language); + } + else + { + Language = CodedLanguage.Substring(0, Index).Trim(); + code = CodedLanguage.Substring(Index + 1, CodedLanguage.IndexOf("]", Index, StringComparison.Ordinal) - Index - 1); + } + } + + public static string GetGoogleLanguageCode(string InternationalCode) + { + foreach (var kvp in mLanguageDef) + if (InternationalCode == kvp.Value.Code) + { + if (kvp.Value.GoogleCode == "-") + return null; + return !string.IsNullOrEmpty(kvp.Value.GoogleCode) ? kvp.Value.GoogleCode : InternationalCode; + } + + return InternationalCode; + } + + public static string GetLanguageName(string code, bool useParenthesesForRegion=false, bool allowDiscardRegion=true) + { + foreach (var kvp in mLanguageDef) + if (code == kvp.Value.Code) + { + var langName = kvp.Key; + if (useParenthesesForRegion) + { + int idx = langName.IndexOf('/'); + if (idx > 0) + langName = langName.Substring(0, idx) + " (" + langName.Substring(idx + 1) + ")"; + } + return langName; + } + + if (allowDiscardRegion) + { + int iCode = code.IndexOf("-", StringComparison.Ordinal); + if (iCode > 0) + return GetLanguageName(code.Substring(0,iCode), useParenthesesForRegion, false); + } + return null; + } + + public static List GetAllInternationalCodes() + { + var set = new HashSet(StringComparer.Ordinal); + + foreach (var kvp in mLanguageDef) + set.Add(kvp.Value.Code); + + return new List(set); + } + + public static bool LanguageCode_HasJoinedWord(string languageCode) + { + foreach (var kvp in mLanguageDef) + if (languageCode == kvp.Value.GoogleCode || languageCode==kvp.Value.Code ) + return kvp.Value.HasJoinedWords; + + return false; + } + + public struct LanguageCodeDef + { + public string Code; // Language International Code + public string GoogleCode; // Google Translator doesn't support all languages, this is the code of closest supported language + public bool HasJoinedWords; // Some languages (e.g. Chinese, Japanese and Thai) don't add spaces to their words (all characters are placed toguether) + public int PluralRule; + } + + public static Dictionary mLanguageDef = new Dictionary(StringComparer.Ordinal) + { + /**/{"Abkhazian", new LanguageCodeDef {PluralRule=1, Code="ab", GoogleCode="-"}}, + /**/{"Afar", new LanguageCodeDef {PluralRule=1, Code="aa", GoogleCode="-"}}, + {"Afrikaans", new LanguageCodeDef {PluralRule=1, Code="af"}}, + /**/{"Akan", new LanguageCodeDef {PluralRule=1, Code="ak", GoogleCode="-"}}, + {"Albanian", new LanguageCodeDef {PluralRule=1, Code="sq"}}, + /**/{"Amharic", new LanguageCodeDef {PluralRule=1, Code="am"}}, + {"Arabic", new LanguageCodeDef {PluralRule=11, Code="ar"}}, + {"Arabic/Algeria", new LanguageCodeDef {PluralRule=11, Code="ar-DZ", GoogleCode="ar"}}, + {"Arabic/Bahrain", new LanguageCodeDef {PluralRule=11, Code="ar-BH", GoogleCode="ar"}}, + {"Arabic/Egypt", new LanguageCodeDef {PluralRule=11, Code="ar-EG", GoogleCode="ar"}}, + {"Arabic/Iraq", new LanguageCodeDef {PluralRule=11, Code="ar-IQ", GoogleCode="ar"}}, + {"Arabic/Jordan", new LanguageCodeDef {PluralRule=11, Code="ar-JO", GoogleCode="ar"}}, + {"Arabic/Kuwait", new LanguageCodeDef {PluralRule=11, Code="ar-KW", GoogleCode="ar"}}, + {"Arabic/Lebanon", new LanguageCodeDef {PluralRule=11, Code="ar-LB", GoogleCode="ar"}}, + {"Arabic/Libya", new LanguageCodeDef {PluralRule=11, Code="ar-LY", GoogleCode="ar"}}, + {"Arabic/Morocco", new LanguageCodeDef {PluralRule=11, Code="ar-MA", GoogleCode="ar"}}, + {"Arabic/Oman", new LanguageCodeDef {PluralRule=11, Code="ar-OM", GoogleCode="ar"}}, + {"Arabic/Qatar", new LanguageCodeDef {PluralRule=11, Code="ar-QA", GoogleCode="ar"}}, + {"Arabic/Saudi Arabia", new LanguageCodeDef {PluralRule=11, Code="ar-SA", GoogleCode="ar"}}, + {"Arabic/Syria", new LanguageCodeDef {PluralRule=11, Code="ar-SY", GoogleCode="ar"}}, + {"Arabic/Tunisia", new LanguageCodeDef {PluralRule=11, Code="ar-TN", GoogleCode="ar"}}, + {"Arabic/U.A.E.", new LanguageCodeDef {PluralRule=11, Code="ar-AE", GoogleCode="ar"}}, + {"Arabic/Yemen", new LanguageCodeDef {PluralRule=11, Code="ar-YE", GoogleCode="ar"}}, + /**/{"Aragonese", new LanguageCodeDef {PluralRule=1, Code="an", GoogleCode="-"}}, + {"Armenian", new LanguageCodeDef {PluralRule=1, Code="hy"}}, + /**/{"Assamese", new LanguageCodeDef {PluralRule=1, Code="as", GoogleCode="-"}}, + /**/{"Avaric", new LanguageCodeDef {PluralRule=1, Code="av", GoogleCode="-"}}, + /**/{"Avestan", new LanguageCodeDef {PluralRule=1, Code="ae", GoogleCode="-"}}, + /**/{"Aymara", new LanguageCodeDef {PluralRule=1, Code="ay", GoogleCode="-"}}, + {"Azerbaijani", new LanguageCodeDef {PluralRule=1, Code="az"}}, + /**/{"Bambara", new LanguageCodeDef {PluralRule=1, Code="bm", GoogleCode="-"}}, + /**/{"Bashkir", new LanguageCodeDef {PluralRule=1, Code="ba", GoogleCode="-"}}, + {"Basque", new LanguageCodeDef {PluralRule=1, Code="eu"}}, + {"Basque/Spain", new LanguageCodeDef {PluralRule=1, Code="eu-ES", GoogleCode="eu"}}, + {"Belarusian", new LanguageCodeDef {PluralRule=6, Code="be"}}, + /**/{"Bengali", new LanguageCodeDef {PluralRule=1, Code="bn"}}, + /**/{"Bihari", new LanguageCodeDef {PluralRule=1, Code="bh", GoogleCode="-"}}, + /**/{"Bislama", new LanguageCodeDef {PluralRule=1, Code="bi", GoogleCode="-"}}, + {"Bosnian", new LanguageCodeDef {PluralRule=6, Code="bs"}}, + /**/{"Breton", new LanguageCodeDef {PluralRule=1, Code="br", GoogleCode="-"}}, + {"Bulgariaa", new LanguageCodeDef {PluralRule=1, Code="bg"}}, + /**/{"Burmese", new LanguageCodeDef {PluralRule=1, Code="my"}}, + {"Catalan", new LanguageCodeDef {PluralRule=1, Code="ca"}}, + /**/{"Chamorro", new LanguageCodeDef {PluralRule=1, Code="ch", GoogleCode="-"}}, + /**/{"Chechen", new LanguageCodeDef {PluralRule=1, Code="ce", GoogleCode="-"}}, + /**/{"Chichewa", new LanguageCodeDef {PluralRule=1, Code="ny"}}, + {"Chinese", new LanguageCodeDef {PluralRule=0, Code="zh", GoogleCode="zh-CN", HasJoinedWords=true}}, + {"Chinese/Hong Kong", new LanguageCodeDef {PluralRule=0, Code="zh-HK", GoogleCode="zh-TW", HasJoinedWords=true}}, + {"Chinese/Macau", new LanguageCodeDef {PluralRule=0, Code="zh-MO", GoogleCode="zh-CN", HasJoinedWords=true}}, + {"Chinese/PRC", new LanguageCodeDef {PluralRule=0, Code="zh-CN", GoogleCode="zh-CN", HasJoinedWords=true}}, + {"Chinese/Simplified", new LanguageCodeDef {PluralRule=0, Code="zh-CN", GoogleCode="zh-CN", HasJoinedWords=true}}, + {"Chinese/Singapore", new LanguageCodeDef {PluralRule=0, Code="zh-SG", GoogleCode="zh-CN", HasJoinedWords=true}}, + {"Chinese/Taiwan", new LanguageCodeDef {PluralRule=0, Code="zh-TW", GoogleCode="zh-TW", HasJoinedWords=true}}, + {"Chinese/Traditional", new LanguageCodeDef {PluralRule=0, Code="zh-TW", GoogleCode="zh-TW", HasJoinedWords=true}}, + /**/{"Chuvash", new LanguageCodeDef {PluralRule=1, Code="cv", GoogleCode="-"}}, + /**/{"Cornish", new LanguageCodeDef {PluralRule=1, Code="kw", GoogleCode="-"}}, // Check plural + /**/{"Corsican", new LanguageCodeDef {PluralRule=1, Code="co"}}, + /**/{"Cree", new LanguageCodeDef {PluralRule=1, Code="cr", GoogleCode="-"}}, + {"Croatian", new LanguageCodeDef {PluralRule=6, Code="hr"}}, + {"Croatian/Bosnia and Herzegovina", new LanguageCodeDef {PluralRule=5, Code="hr-BA", GoogleCode="hr"}}, + {"Czech", new LanguageCodeDef {PluralRule=7, Code="cs"}}, + {"Danish", new LanguageCodeDef {PluralRule=1, Code="da"}}, + /**/{"Divehi", new LanguageCodeDef {PluralRule=1, Code="dv", GoogleCode="-"}}, + {"Dutch", new LanguageCodeDef {PluralRule=1, Code="nl"}}, + {"Dutch/Belgium", new LanguageCodeDef {PluralRule=1, Code="nl-BE", GoogleCode="nl"}}, + {"Dutch/Netherlands", new LanguageCodeDef {PluralRule=1, Code="nl-NL", GoogleCode="nl"}}, + /**/{"Dzongkha", new LanguageCodeDef {PluralRule=1, Code="dz", GoogleCode="-"}}, + {"English", new LanguageCodeDef {PluralRule=1, Code="en"}}, + {"English/Australia", new LanguageCodeDef {PluralRule=1, Code="en-AU", GoogleCode="en"}}, + {"English/Belize", new LanguageCodeDef {PluralRule=1, Code="en-BZ", GoogleCode="en"}}, + {"English/Canada", new LanguageCodeDef {PluralRule=1, Code="en-CA", GoogleCode="en"}}, + {"English/Caribbean", new LanguageCodeDef {PluralRule=1, Code="en-CB", GoogleCode="en"}}, + {"English/Ireland", new LanguageCodeDef {PluralRule=1, Code="en-IE", GoogleCode="en"}}, + {"English/Jamaica", new LanguageCodeDef {PluralRule=1, Code="en-JM", GoogleCode="en"}}, + {"English/New Zealand", new LanguageCodeDef {PluralRule=1, Code="en-NZ", GoogleCode="en"}}, + {"English/Republic of the Philippines", new LanguageCodeDef {PluralRule=1, Code="en-PH", GoogleCode="en"}}, + {"English/South Africa",new LanguageCodeDef {PluralRule=1, Code="en-ZA", GoogleCode="en"}}, + {"English/Trinidad", new LanguageCodeDef {PluralRule=1, Code="en-TT", GoogleCode="en"}}, + {"English/United Kingdom",new LanguageCodeDef {PluralRule=1, Code="en-GB", GoogleCode="en"}}, + {"English/United States",new LanguageCodeDef {PluralRule=1, Code="en-US", GoogleCode="en"}}, + {"English/Zimbabwe", new LanguageCodeDef {PluralRule=1, Code="en-ZW", GoogleCode="en"}}, + {"Esperanto", new LanguageCodeDef {PluralRule=1, Code="eo"}}, + {"Estonian", new LanguageCodeDef {PluralRule=1, Code="et"}}, + /**/{"Ewe", new LanguageCodeDef {PluralRule=1, Code="ee", GoogleCode="-"}}, + {"Faeroese", new LanguageCodeDef {PluralRule=1, Code="fo", GoogleCode="-"}}, + /**/{"Fijian", new LanguageCodeDef {PluralRule=1, Code="fj", GoogleCode="-"}}, + //{"Filipino", new LanguageCodeDef(){PluralRule=2, Code="tl"}}, + {"Finnish", new LanguageCodeDef {PluralRule=1, Code="fi"}}, + {"French", new LanguageCodeDef {PluralRule=2, Code="fr"}}, + {"French/Belgium", new LanguageCodeDef {PluralRule=2, Code="fr-BE", GoogleCode="fr"}}, + {"French/Canada", new LanguageCodeDef {PluralRule=2, Code="fr-CA", GoogleCode="fr"}}, + {"French/France", new LanguageCodeDef {PluralRule=2, Code="fr-FR", GoogleCode="fr"}}, + {"French/Luxembourg", new LanguageCodeDef {PluralRule=2, Code="fr-LU", GoogleCode="fr"}}, + {"French/Principality of Monaco", new LanguageCodeDef {PluralRule=2, Code="fr-MC", GoogleCode="fr"}}, + {"French/Switzerland", new LanguageCodeDef {PluralRule=2, Code="fr-CH", GoogleCode="fr"}}, + /**/{"Fulah", new LanguageCodeDef {PluralRule=1, Code="ff", GoogleCode="-"}}, + {"Galician", new LanguageCodeDef {PluralRule=1, Code="gl"}}, + {"Galician/Spain", new LanguageCodeDef {PluralRule=1, Code="gl-ES", GoogleCode="gl"}}, + {"Georgian", new LanguageCodeDef {PluralRule=0, Code="ka"}}, + {"German", new LanguageCodeDef {PluralRule=1, Code="de"}}, + {"German/Austria", new LanguageCodeDef {PluralRule=1, Code="de-AT", GoogleCode="de"}}, + {"German/Germany", new LanguageCodeDef {PluralRule=1, Code="de-DE", GoogleCode="de"}}, + {"German/Liechtenstein",new LanguageCodeDef {PluralRule=1, Code="de-LI", GoogleCode="de"}}, + {"German/Luxembourg", new LanguageCodeDef {PluralRule=1, Code="de-LU", GoogleCode="de"}}, + {"German/Switzerland", new LanguageCodeDef {PluralRule=1, Code="de-CH", GoogleCode="de"}}, + {"Greek", new LanguageCodeDef {PluralRule=1, Code="el"}}, + /**/{"Guaraní", new LanguageCodeDef {PluralRule=1, Code="gn", GoogleCode="-"}}, + {"Gujarati", new LanguageCodeDef {PluralRule=1, Code="gu"}}, + /**/{"Haitian", new LanguageCodeDef {PluralRule=1, Code="ht"}}, + /**/{"Hausa", new LanguageCodeDef {PluralRule=1, Code="ha"}}, + {"Hebrew", new LanguageCodeDef {PluralRule=1, Code="he", GoogleCode="iw"}}, + /**/{"Herero", new LanguageCodeDef {PluralRule=1, Code="hz", GoogleCode="-"}}, + {"Hindi", new LanguageCodeDef {PluralRule=1, Code="hi"}}, + /**/{"Hiri Motu", new LanguageCodeDef {PluralRule=1, Code="ho", GoogleCode="-"}}, + {"Hungarian", new LanguageCodeDef {PluralRule=1, Code="hu"}}, + /**/{"Interlingua", new LanguageCodeDef {PluralRule=1, Code="ia", GoogleCode="-"}}, + {"Indonesian", new LanguageCodeDef {PluralRule=0, Code="id"}}, + /**/{"Interlingue", new LanguageCodeDef {PluralRule=1, Code="ie", GoogleCode="-"}}, + {"Irish", new LanguageCodeDef {PluralRule=10, Code="ga"}}, + /**/{"Igbo", new LanguageCodeDef {PluralRule=1, Code="ig"}}, + /**/{"Inupiaq", new LanguageCodeDef {PluralRule=1, Code="ik", GoogleCode="-"}}, + /**/{"Ido", new LanguageCodeDef {PluralRule=1, Code="io", GoogleCode="-"}}, + {"Icelandic", new LanguageCodeDef {PluralRule=14, Code="is"}}, + {"Italian", new LanguageCodeDef {PluralRule=1, Code="it"}}, + {"Italian/Italy", new LanguageCodeDef {PluralRule=1, Code="it-IT", GoogleCode="it"}}, + {"Italian/Switzerland", new LanguageCodeDef {PluralRule=1, Code="it-CH", GoogleCode="it"}}, + /**/{"Inuktitut", new LanguageCodeDef {PluralRule=1, Code="iu", GoogleCode="-"}}, + {"Japanese", new LanguageCodeDef {PluralRule=0, Code="ja", HasJoinedWords=true}}, + /**/{"Javanese", new LanguageCodeDef {PluralRule=1, Code="jv"}}, + /**/{"Kalaallisut", new LanguageCodeDef {PluralRule=1, Code="kl", GoogleCode="-"}}, + {"Kannada", new LanguageCodeDef {PluralRule=1, Code="kn"}}, + /**/{"Kanuri", new LanguageCodeDef {PluralRule=1, Code="kr", GoogleCode="-"}}, + /**/{"Kashmiri", new LanguageCodeDef {PluralRule=1, Code="ks", GoogleCode="-"}}, + {"Kazakh", new LanguageCodeDef {PluralRule=1, Code="kk"}}, + /**/{"Central Khmer", new LanguageCodeDef {PluralRule=1, Code="km"}}, + /**/{"Kikuyu", new LanguageCodeDef {PluralRule=1, Code="ki", GoogleCode="-"}}, + /**/{"Kinyarwanda", new LanguageCodeDef {PluralRule=1, Code="rw", GoogleCode="-"}}, + /**/{"Kirghiz", new LanguageCodeDef {PluralRule=1, Code="ky"}}, + /**/{"Komi", new LanguageCodeDef {PluralRule=1, Code="kv", GoogleCode="-"}}, + /**/{"Kongo", new LanguageCodeDef {PluralRule=1, Code="kg", GoogleCode="-"}}, + {"Korean", new LanguageCodeDef {PluralRule=0, Code="ko"}}, + {"Kurdish", new LanguageCodeDef {PluralRule=1, Code="ku"}}, + /**/{"Kuanyama", new LanguageCodeDef {PluralRule=1, Code="kj", GoogleCode="-"}}, + {"Latin", new LanguageCodeDef {PluralRule=1, Code="la"}}, + /**/{"Luxembourgish", new LanguageCodeDef {PluralRule=1, Code="lb"}}, + /**/{"Ganda", new LanguageCodeDef {PluralRule=1, Code="lg", GoogleCode="-"}}, + /**/{"Limburgan", new LanguageCodeDef {PluralRule=1, Code="li", GoogleCode="-"}}, + /**/{"Lingala", new LanguageCodeDef {PluralRule=1, Code="ln", GoogleCode="-"}}, + /**/{"Lao", new LanguageCodeDef {PluralRule=1, Code="lo"}}, + {"Latvian", new LanguageCodeDef {PluralRule=5, Code="lv"}}, + /**/{"Luba-Katanga", new LanguageCodeDef {PluralRule=1, Code="lu", GoogleCode="-"}}, + {"Lithuanian", new LanguageCodeDef {PluralRule=5, Code="lt"}}, + /**/{"Manx", new LanguageCodeDef {PluralRule=1, Code="gv", GoogleCode="-"}}, + {"Macedonian", new LanguageCodeDef {PluralRule=13, Code="mk"}}, + /**/{"Malagasy", new LanguageCodeDef {PluralRule=1, Code="mg"}}, + {"Malay", new LanguageCodeDef {PluralRule=0, Code="ms"}}, + {"Malay/Brunei Darussalam", new LanguageCodeDef {PluralRule=0, Code="ms-BN", GoogleCode="ms"}}, + {"Malay/Malaysia", new LanguageCodeDef {PluralRule=0, Code="ms-MY", GoogleCode="ms"}}, + {"Malayalam", new LanguageCodeDef {PluralRule=1, Code="ml"}}, + {"Maltese", new LanguageCodeDef {PluralRule=12, Code="mt"}}, + {"Maori", new LanguageCodeDef {PluralRule=2, Code="mi"}}, + {"Marathi", new LanguageCodeDef {PluralRule=1, Code="mr"}}, + /**/{"Marshallese", new LanguageCodeDef {PluralRule=1, Code="mh", GoogleCode="-"}}, + {"Mongolian", new LanguageCodeDef {PluralRule=1, Code="mn"}}, + /**/{"Nauru", new LanguageCodeDef {PluralRule=1, Code="na", GoogleCode="-"}}, + /**/{"Navajo", new LanguageCodeDef {PluralRule=1, Code="nv", GoogleCode="-"}}, + /**/{"North Ndebele", new LanguageCodeDef {PluralRule=1, Code="nd", GoogleCode="-"}}, + /**/{"Nepali", new LanguageCodeDef {PluralRule=1, Code="ne"}}, + /**/{"Ndonga", new LanguageCodeDef {PluralRule=1, Code="ng", GoogleCode="-"}}, + {"Northern Sotho", new LanguageCodeDef {PluralRule=1, Code="ns", GoogleCode="st"}}, + {"Norwegian", new LanguageCodeDef {PluralRule=1, Code="nb", GoogleCode="no"}}, + {"Norwegian/Nynorsk", new LanguageCodeDef {PluralRule=1, Code="nn", GoogleCode="no"}}, + /**/{"Sichuan Yi", new LanguageCodeDef {PluralRule=1, Code="ii", GoogleCode="-"}}, + /**/{"South Ndebele", new LanguageCodeDef {PluralRule=1, Code="nr", GoogleCode="-"}}, + /**/{"Occitan", new LanguageCodeDef {PluralRule=1, Code="oc", GoogleCode="-"}}, + /**/{"Ojibwa", new LanguageCodeDef {PluralRule=1, Code="oj", GoogleCode="-"}}, + /**/{"Church Slavic", new LanguageCodeDef {PluralRule=1, Code="cu", GoogleCode="-"}}, + /**/{"Oromo", new LanguageCodeDef {PluralRule=1, Code="om", GoogleCode="-"}}, + /**/{"Oriya", new LanguageCodeDef {PluralRule=1, Code="or", GoogleCode="-"}}, + /**/{"Ossetian", new LanguageCodeDef {PluralRule=1, Code="os", GoogleCode="-"}}, + /**/{"Pali", new LanguageCodeDef {PluralRule=1, Code="pi", GoogleCode="-"}}, + {"Pashto", new LanguageCodeDef {PluralRule=1, Code="ps"}}, + {"Persian", new LanguageCodeDef {PluralRule=0, Code="fa"}}, + {"Polish", new LanguageCodeDef {PluralRule=8, Code="pl"}}, + {"Portuguese", new LanguageCodeDef {PluralRule=1, Code="pt"}}, + {"Portuguese/Brazil", new LanguageCodeDef {PluralRule=2, Code="pt-BR", GoogleCode="pt"}}, + {"Portuguese/Portugal", new LanguageCodeDef {PluralRule=1, Code="pt-PT", GoogleCode="pt"}}, + {"Punjabi", new LanguageCodeDef {PluralRule=1, Code="pa"}}, + {"Quechua", new LanguageCodeDef {PluralRule=1, Code="qu", GoogleCode="-"}}, + {"Quechua/Bolivia", new LanguageCodeDef {PluralRule=1, Code="qu-BO", GoogleCode="-"}}, + {"Quechua/Ecuador", new LanguageCodeDef {PluralRule=1, Code="qu-EC", GoogleCode="-"}}, + {"Quechua/Peru", new LanguageCodeDef {PluralRule=1, Code="qu-PE", GoogleCode="-"}}, + {"Rhaeto-Romanic", new LanguageCodeDef {PluralRule=1, Code="rm", GoogleCode="ro"}}, + {"Romanian", new LanguageCodeDef {PluralRule=4, Code="ro"}}, + /**/{"Rundi", new LanguageCodeDef {PluralRule=1, Code="rn", GoogleCode="-"}}, + {"Russian", new LanguageCodeDef {PluralRule=6, Code="ru"}}, + {"Russian/Republic of Moldova", new LanguageCodeDef {PluralRule=6, Code="ru-MO", GoogleCode="ru"}}, + /**/{"Sanskrit", new LanguageCodeDef {PluralRule=1, Code="sa", GoogleCode="-"}}, + /**/{"Sardinian", new LanguageCodeDef {PluralRule=1, Code="sc", GoogleCode="-"}}, + /**/{"Sindhi", new LanguageCodeDef {PluralRule=1, Code="sd"}}, + /**/{"Northern Sami", new LanguageCodeDef {PluralRule=1, Code="se", GoogleCode="-"}}, + /**/{"Samoan", new LanguageCodeDef {PluralRule=1, Code="sm"}}, + /**/{"Sango", new LanguageCodeDef {PluralRule=1, Code="sg", GoogleCode="-"}}, + {"Serbian", new LanguageCodeDef {PluralRule=6, Code="sr"}}, + {"Serbian/Bosnia and Herzegovina", new LanguageCodeDef {PluralRule=5, Code="sr-BA", GoogleCode="sr"}}, + {"Serbian/Serbia and Montenegro", new LanguageCodeDef {PluralRule=5, Code="sr-SP", GoogleCode="sr"}}, + /**/{"Scottish Gaelic", new LanguageCodeDef {PluralRule=1, Code="gd"}}, + /**/{"Shona", new LanguageCodeDef {PluralRule=1, Code="sn"}}, + /**/{"Sinhala", new LanguageCodeDef {PluralRule=1, Code="si"}}, + {"Slovak", new LanguageCodeDef {PluralRule=7, Code="sk"}}, + {"Slovenian", new LanguageCodeDef {PluralRule=9, Code="sl"}}, + /**/{"Somali", new LanguageCodeDef {PluralRule=1, Code="so"}}, + /**/{"Southern Sotho", new LanguageCodeDef {PluralRule=1, Code="st"}}, + {"Spanish", new LanguageCodeDef {PluralRule=1, Code="es"}}, + {"Spanish/Argentina", new LanguageCodeDef {PluralRule=1, Code="es-AR", GoogleCode="es"}}, + {"Spanish/Bolivia", new LanguageCodeDef {PluralRule=1, Code="es-BO", GoogleCode="es"}}, + {"Spanish/Castilian", new LanguageCodeDef {PluralRule=1, Code="es-ES", GoogleCode="es"}}, + {"Spanish/Chile", new LanguageCodeDef {PluralRule=1, Code="es-CL", GoogleCode="es"}}, + {"Spanish/Colombia", new LanguageCodeDef {PluralRule=1, Code="es-CO", GoogleCode="es"}}, + {"Spanish/Costa Rica", new LanguageCodeDef {PluralRule=1, Code="es-CR", GoogleCode="es"}}, + {"Spanish/Dominican Republic", new LanguageCodeDef {PluralRule=1, Code="es-DO", GoogleCode="es"}}, + {"Spanish/Ecuador", new LanguageCodeDef {PluralRule=1, Code="es-EC", GoogleCode="es"}}, + {"Spanish/El Salvador", new LanguageCodeDef {PluralRule=1, Code="es-SV", GoogleCode="es"}}, + {"Spanish/Guatemala", new LanguageCodeDef {PluralRule=1, Code="es-GT", GoogleCode="es"}}, + {"Spanish/Honduras", new LanguageCodeDef {PluralRule=1, Code="es-HN", GoogleCode="es"}}, + {"Spanish/Mexico", new LanguageCodeDef {PluralRule=1, Code="es-MX", GoogleCode="es"}}, + {"Spanish/Nicaragua", new LanguageCodeDef {PluralRule=1, Code="es-NI", GoogleCode="es"}}, + {"Spanish/Panama", new LanguageCodeDef {PluralRule=1, Code="es-PA", GoogleCode="es"}}, + {"Spanish/Paraguay", new LanguageCodeDef {PluralRule=1, Code="es-PY", GoogleCode="es"}}, + {"Spanish/Peru", new LanguageCodeDef {PluralRule=1, Code="es-PE", GoogleCode="es"}}, + {"Spanish/Puerto Rico", new LanguageCodeDef {PluralRule=1, Code="es-PR", GoogleCode="es"}}, + {"Spanish/Spain", new LanguageCodeDef {PluralRule=1, Code="es-ES", GoogleCode="es"}}, + {"Spanish/Uruguay", new LanguageCodeDef {PluralRule=1, Code="es-UY", GoogleCode="es"}}, + {"Spanish/Venezuela", new LanguageCodeDef {PluralRule=1, Code="es-VE", GoogleCode="es"}}, + {"Spanish/Latin Americas", new LanguageCodeDef {PluralRule=1, Code="es-US", GoogleCode="es"}}, + /**/{"Sundanese", new LanguageCodeDef {PluralRule=1, Code="su"}}, + {"Swahili", new LanguageCodeDef {Code="sw"}}, + /**/{"Swati", new LanguageCodeDef {PluralRule=1, Code="ss", GoogleCode="-"}}, + {"Swedish", new LanguageCodeDef {PluralRule=1, Code="sv"}}, + {"Swedish/Finland", new LanguageCodeDef {PluralRule=1, Code="sv-FI", GoogleCode="sv"}}, + {"Swedish/Sweden", new LanguageCodeDef {PluralRule=1, Code="sv-SE", GoogleCode="sv"}}, + {"Tamil", new LanguageCodeDef {PluralRule=1, Code="ta"}}, + {"Tatar", new LanguageCodeDef {PluralRule=0, Code="tt", GoogleCode="-"}}, + {"Telugu", new LanguageCodeDef {PluralRule=1, Code="te"}}, + /**/{"Tajik", new LanguageCodeDef {PluralRule=1, Code="tg"}}, + {"Thai", new LanguageCodeDef {PluralRule=0, Code="th", HasJoinedWords=true}}, + /**/{"Tigrinya", new LanguageCodeDef {PluralRule=1, Code="ti", GoogleCode="-"}}, + /**/{"Tibetan", new LanguageCodeDef {PluralRule=1, Code="bo", GoogleCode="-"}}, + /**/{"Turkmen", new LanguageCodeDef {PluralRule=1, Code="tk", GoogleCode="-"}}, + /**/{"Tagalog", new LanguageCodeDef {PluralRule=1, Code="tl"}}, + /**/{"Tswana", new LanguageCodeDef {PluralRule=1, Code="tn", GoogleCode="-"}}, + /**/{"Tonga", new LanguageCodeDef {PluralRule=1, Code="to", GoogleCode="-"}}, + {"Turkish", new LanguageCodeDef {PluralRule=0, Code="tr"}}, + /**/{"Tsonga", new LanguageCodeDef {PluralRule=1, Code="ts", GoogleCode="-"}}, + /**/{"Twi", new LanguageCodeDef {PluralRule=1, Code="tw", GoogleCode="-"}}, + /**/{"Tahitian", new LanguageCodeDef {PluralRule=1, Code="ty", GoogleCode="-"}}, + /**/{"Uighur", new LanguageCodeDef {PluralRule=1, Code="ug", GoogleCode="-"}}, + {"Ukrainian", new LanguageCodeDef {PluralRule=6, Code="uk"}}, + {"Urdu", new LanguageCodeDef {PluralRule=1, Code="ur"}}, + {"Uzbek", new LanguageCodeDef {PluralRule=2, Code="uz"}}, + /**/{"Venda", new LanguageCodeDef {PluralRule=1, Code="ve", GoogleCode="-"}}, + {"Vietnamese", new LanguageCodeDef {PluralRule=1, Code="vi"}}, + /**/{"Volapük", new LanguageCodeDef {PluralRule=1, Code="vo", GoogleCode="-"}}, + /**/{"Walloon", new LanguageCodeDef {PluralRule=1, Code="wa", GoogleCode="-"}}, + {"Welsh", new LanguageCodeDef {PluralRule=16, Code="cy"}}, + /**/{"Wolof", new LanguageCodeDef {PluralRule=1, Code="wo", GoogleCode="-"}}, + /**/{"Frisian", new LanguageCodeDef {PluralRule=1, Code="fy"}}, + {"Xhosa", new LanguageCodeDef {PluralRule=1, Code="xh"}}, + {"Yiddish", new LanguageCodeDef {PluralRule=1, Code="yi"}}, + /**/{"Yoruba", new LanguageCodeDef {PluralRule=1, Code="yo"}}, + /**/{"Zhuang", new LanguageCodeDef {PluralRule=1, Code="za", GoogleCode="-"}}, + {"Zulu", new LanguageCodeDef {PluralRule=1, Code="zu"}} + }; + + static int GetPluralRule( string langCode ) + { + if (langCode.Length > 2) + langCode = langCode.Substring(0, 2); + langCode = langCode.ToLower(); + + foreach (var kvp in mLanguageDef) + if (kvp.Value.Code == langCode) + { + return kvp.Value.PluralRule; + } + return 0; + } + + + //http://www.unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html + //http://cldr.unicode.org/cldr-features#TOC-Locale-specific-patterns-for-formatting-and-parsing: + //http://cldr.unicode.org/index/cldr-spec/plural-rules + public static bool LanguageHasPluralType( string langCode, string pluralType ) + { + if (pluralType == "Plural" || pluralType=="Zero" || pluralType=="One") + return true; + + int rule = GetPluralRule (langCode); + + switch (rule) + { + case 3: // Celtic (Scottish Gaelic) + return pluralType=="Two" || pluralType=="Few"; + + case 4: // Families: Romanic (Romanian) + case 5: // Families: Baltic (Latvian, Lithuanian) + case 6: // Families: Slavic (Belarusian, Bosnian, Croatian, Serbian, Russian, Ukrainian) + case 7: // Families: Slavic (Slovak, Czech) + case 8: // Families: Slavic (Polish) + return pluralType=="Few"; + + case 9: // Families: Slavic (Slovenian, Sorbian) + return pluralType=="Two" || pluralType=="Few"; + + case 10: // Families: Celtic (Irish Gaelic) + case 11: // Families: Semitic (Arabic) + case 15: // Families: Celtic (Breton) + case 16: // Families: (Welsh) + return pluralType=="Two" || pluralType=="Few" || pluralType=="Many"; + + case 12: // Families: Semitic (Maltese) + return pluralType=="Few" || pluralType=="Many"; + + case 13: // Families: Slavic (Macedonian) + return pluralType=="Two"; + } + + return false; + } + + // https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals + public static ePluralType GetPluralType( string langCode, int n ) + { + if (n == 0) return ePluralType.Zero; + if (n == 1) return ePluralType.One; + + int rule = GetPluralRule (langCode); + + switch (rule) + { + case 0: // Families: Asian (Chinese, Japanese, Korean), Persian, Turkic/Altaic (Turkish), Thai, Lao + return ePluralType.Plural; + + case 1: // Families: Germanic (Danish, Dutch, English, Faroese, Frisian, German, Norwegian, Swedish), Finno-Ugric (Estonian, Finnish, Hungarian), Language isolate (Basque), Latin/Greek (Greek), Semitic (Hebrew), Romanic (Italian, Portuguese, Spanish, Catalan), Vietnamese + return n==1 ? ePluralType.One : ePluralType.Plural; + + case 2: // Families: Romanic (French, Brazilian Portuguese) + return n<=1 ? ePluralType.One : ePluralType.Plural; + + case 3: // Celtic (Scottish Gaelic) + return n==1 || n==11 ? ePluralType.One : + n==2 || n==12 ? ePluralType.Two : + inRange(n,3,10) || inRange(n,13,19) ? ePluralType.Few : ePluralType.Plural; + + case 4: // Families: Romanic (Romanian) + return n==1 ? ePluralType.One : + inRange(n%100, 1, 19) ? ePluralType.Few : ePluralType.Plural; + + case 5: // Families: Baltic (Latvian, Lithuanian) + return n%10==1 && n%100!=11 ? ePluralType.One : + n%10>=2 && (n%100<10 || n%100>=20) ? ePluralType.Few : ePluralType.Plural; + + case 6: // Families: Slavic (Belarusian, Bosnian, Croatian, Serbian, Russian, Ukrainian) + return n % 10 == 1 && n % 100 != 11 ? ePluralType.One : + inRange (n%10,2,4) && !inRange (n%100,12,14) ? ePluralType.Few : ePluralType.Plural; + + case 7: // Families: Slavic (Slovak, Czech) + return n==1 ? ePluralType.One : + inRange(n,2,4) ? ePluralType.Few : ePluralType.Plural; + + case 8: // Families: Slavic (Polish) + return n==1 ? ePluralType.One : + inRange (n%10,2,4) && !inRange (n%100,12,14) ? ePluralType.Few : ePluralType.Plural; + + case 9: // Families: Slavic (Slovenian, Sorbian) + return n%100==1 ? ePluralType.One : + n%100==2 ? ePluralType.Two : + inRange(n%100,3,4) ? ePluralType.Few : ePluralType.Plural; + + case 10: // Families: Celtic (Irish Gaelic) + return n==1 ? ePluralType.One : + n==2 ? ePluralType.Two : + inRange(n, 3,6) ? ePluralType.Few : + inRange(n, 7,10)? ePluralType.Many : ePluralType.Plural; + + case 11: // Families: Semitic (Arabic) + return n==0 ? ePluralType.Zero : + n==1 ? ePluralType.One : + n==2 ? ePluralType.Two : + inRange(n%100,3,10) ? ePluralType.Few : + n%100>=11 ? ePluralType.Many : ePluralType.Plural; + + case 12: // Families: Semitic (Maltese) + return n==1 ? ePluralType.One : + inRange(n%100, 1, 10) ? ePluralType.Few : + inRange(n%100, 11,19) ? ePluralType.Many : ePluralType.Plural; + + case 13: // Families: Slavic (Macedonian) + return n % 10 == 1 ? ePluralType.One : + n % 10 == 2 ? ePluralType.Two : ePluralType.Plural; + + case 14: // Plural rule #15 (2 forms) + return n%10==1 && n%100!=11 ? ePluralType.One : ePluralType.Plural; + + case 15: // Families: Celtic (Breton) + return n % 10 == 1 && n % 100 != 11 && n % 100 != 71 && n % 100 != 91 ? ePluralType.One : + n % 10 == 2 && n % 100 != 12 && n % 100 != 72 && n % 100 != 92 ? ePluralType.Two : + (n % 10 == 3 || n % 10 == 4 || n % 10 == 9) && n % 100 != 13 && n % 100 != 14 && n % 100 != 19 && n % 100 != 73 && n % 100 != 74 && n % 100 != 79 && n % 100 != 93 && n % 100 != 94 && n % 100 != 99 ? ePluralType.Few : + n%1000000==0 ? ePluralType.Many : ePluralType.Plural; + + case 16: // Families: (Welsh) + return n==0 ? ePluralType.Zero : + n==1 ? ePluralType.One : + n==2 ? ePluralType.Two : + n==3 ? ePluralType.Few : + n==6 ? ePluralType.Many : ePluralType.Plural; + + } + + return ePluralType.Plural; + } + + // A number that belong to the pluralType form + public static int GetPluralTestNumber( string langCode, ePluralType pluralType ) + { + switch (pluralType) + { + case ePluralType.Zero: + return 0; + + case ePluralType.One: + return 1; + + case ePluralType.Few: + return 3; + + case ePluralType.Many: + { + int rule = GetPluralRule (langCode); + if (rule == 10) return 8; + if (rule == 11 || rule==12) return 13; + if (rule == 15) return 1000000; + return 6; + } + + default: + return 936; + } + } + + static bool inRange(int amount, int min, int max) + { + return amount >= min && amount <= max; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs.meta new file mode 100644 index 00000000..d4aa9145 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleLanguages.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 26e29b3e77176de4cbb64a3ec85beee6 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs new file mode 100644 index 00000000..90a7a9ca --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs @@ -0,0 +1,86 @@ +using System.Collections.Generic; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public static partial class GoogleTranslation + { + public delegate void fnOnTranslated(string Translation, string Error); + + public static bool CanTranslate () + { + return LocalizationManager.Sources.Count > 0 && + !string.IsNullOrEmpty (LocalizationManager.GetWebServiceURL()); + } + + + // LanguageCodeFrom can be "auto" + // After the translation is returned from Google, it will call OnTranslationReady(TranslationResult, ErrorMsg) + // TranslationResult will be null if translation failed + public static void Translate( string text, string LanguageCodeFrom, string LanguageCodeTo, fnOnTranslated OnTranslationReady ) + { + LocalizationManager.InitializeIfNeeded(); + if (!CanTranslate()) + { + OnTranslationReady(null, "WebService is not set correctly or needs to be reinstalled"); + return; + } + //LanguageCodeTo = GoogleLanguages.GetGoogleLanguageCode(LanguageCodeTo); + + if (LanguageCodeTo==LanguageCodeFrom) + { + OnTranslationReady(text, null); + return; + } + + TranslationDictionary queries = new TranslationDictionary(System.StringComparer.Ordinal); + + + // Unsupported language + if (string.IsNullOrEmpty(LanguageCodeTo)) + { + OnTranslationReady(string.Empty, null); + return; + } + CreateQueries(text, LanguageCodeFrom, LanguageCodeTo, queries); // can split plurals and specializations into several queries + + Translate(queries, (results,error)=> + { + if (!string.IsNullOrEmpty(error) || results.Count==0) + { + OnTranslationReady(null, error); + return; + } + + string result = RebuildTranslation( text, queries, LanguageCodeTo); // gets the result from google and rebuilds the text from multiple queries if its is plurals + OnTranslationReady( result, null ); + }); + } + + // Query google for the translation and waits until google returns + // On some Unity versions (e.g. 2017.1f1) unity doesn't handle well waiting for WWW in the main thread, so this call can fail + // In those cases, its advisable to use the Async version (GoogleTranslation.Translate(....)) + public static string ForceTranslate ( string text, string LanguageCodeFrom, string LanguageCodeTo ) + { + TranslationDictionary dict = new TranslationDictionary(System.StringComparer.Ordinal); + AddQuery(text, LanguageCodeFrom, LanguageCodeTo, dict); + + var job = new TranslationJob_Main(dict, null); + while (true) + { + var state = job.GetState(); + if (state == TranslationJob.eJobState.Running) + continue; + + if (state == TranslationJob.eJobState.Failed) + return null; + + //TranslationJob.eJobState.Succeeded + return GetQueryResult( text, "", dict); + } + } + + } +} + diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs.meta new file mode 100644 index 00000000..4acd6858 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: cc4d0073f9e452047bd31b01de2bbd82 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs new file mode 100644 index 00000000..4e7d5b06 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs @@ -0,0 +1,175 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine.Networking; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + + public static partial class GoogleTranslation + { + static List mCurrentTranslations = new List(); + static List mTranslationJobs = new List(); + + public delegate void fnOnTranslationReady(TranslationDictionary dict, string error); + +#region Multiple Translations + + public static void Translate( TranslationDictionary requests, fnOnTranslationReady OnTranslationReady, bool usePOST = true ) + { + //WWW www = GetTranslationWWW( requests, usePOST ); + //I2.Loc.CoroutineManager.Start(WaitForTranslation(www, OnTranslationReady, requests)); + AddTranslationJob( new TranslationJob_Main(requests, OnTranslationReady) ); + } + + public static bool ForceTranslate(TranslationDictionary requests, bool usePOST = true) + { + var job = new TranslationJob_Main(requests, null); + while (true) + { + var state = job.GetState(); + if (state == TranslationJob.eJobState.Running) + continue; + + if (state == TranslationJob.eJobState.Failed) + return false; + + //TranslationJob.eJobState.Succeeded + return true; + } + } + + public static List ConvertTranslationRequest(TranslationDictionary requests, bool encodeGET) + { + List results = new List(); + var sb = new StringBuilder(); + + foreach (var kvp in requests) + { + var request = kvp.Value; + if (sb.Length > 0) + sb.Append(""); + + sb.Append(GoogleLanguages.GetGoogleLanguageCode(request.LanguageCode)); + sb.Append(":"); + for (int i = 0; i < request.TargetLanguagesCode.Length; ++i) + { + if (i != 0) sb.Append(","); + sb.Append(GoogleLanguages.GetGoogleLanguageCode(request.TargetLanguagesCode[i])); + } + sb.Append("="); + + var text = TitleCase(request.Text) == request.Text ? request.Text.ToLowerInvariant() : request.Text; + + if (!encodeGET) + { + sb.Append(text); + } + else + { + sb.Append(Uri.EscapeDataString(text)); + if (sb.Length > 4000) + { + results.Add(sb.ToString()); + sb.Length = 0; + } + } + } + results.Add(sb.ToString()); + return results; + } + + static void AddTranslationJob( TranslationJob job ) + { + mTranslationJobs.Add(job); + if (mTranslationJobs.Count==1) + { + CoroutineManager.Start(WaitForTranslations()); + } + } + + static IEnumerator WaitForTranslations() + { + while (mTranslationJobs.Count > 0) + { + var jobs = mTranslationJobs.ToArray(); + foreach (var job in jobs) + { + if (job.GetState() != TranslationJob.eJobState.Running) + mTranslationJobs.Remove(job); + } + yield return null; + } + } + + + + public static string ParseTranslationResult( string html, TranslationDictionary requests ) + { + //Debug.Log(html); + // Handle google restricting the webservice to run + if (html.StartsWith("") || html.StartsWith("")) + { + if (html.Contains("The script completed but did not return anything")) + return "The current Google WebService is not supported.\nPlease, delete the WebService from the Google Drive and Install the latest version."; + if (html.Contains("Service invoked too many times in a short time")) + return ""; // ignore and try again + return "There was a problem contacting the WebService. Please try again later\n" + html; + } + + string[] texts = html.Split (new[]{""}, StringSplitOptions.None); + string[] splitter = {""}; + int i = 0; + + var Keys = requests.Keys.ToArray(); + foreach (var text in Keys) + { + var temp = FindQueryFromOrigText(text, requests); + var fullText = texts[i++]; + if (temp.Tags != null) + { + //for (int j = 0, jmax = temp.Tags.Length; j < jmax; ++j) + for (int j = temp.Tags.Length-1; j>=0; --j) + { + fullText = fullText.Replace(GetGoogleNoTranslateTag(j), temp.Tags[j]); + //fullText = fullText.Replace( /*"{[" + j + "]}"*/ ((char)(0x2600+j)).ToString(), temp.Tags[j]); + } + } + + temp.Results = fullText.Split (splitter, StringSplitOptions.None); + + // Google has problem translating this "This Is An Example" but not this "this is an example" + if (TitleCase(text)==text) + { + for (int j=0; j0 || mTranslationJobs.Count > 0; + } + + public static void CancelCurrentGoogleTranslations() + { + mCurrentTranslations.Clear (); + foreach (var job in mTranslationJobs) + { + job.Dispose(); + } + mTranslationJobs.Clear(); + } + +#endregion + } +} + diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs.meta new file mode 100644 index 00000000..61a1aeb2 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Post.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 94b94d27ab6931c4abee1e4d3655b660 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Queries.cs b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Queries.cs new file mode 100644 index 00000000..04f8ba61 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/GoogleTranslation_Queries.cs @@ -0,0 +1,375 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public struct TranslationQuery + { + public string OrigText; + public string Text; // Text without Tags + public string LanguageCode; + public string[] TargetLanguagesCode; + public string[] Results; // This is filled google returns the translations + public string[] Tags; // This are the sections of the orignal text that shoudn't be translated + } + + public static partial class GoogleTranslation + { + public static void CreateQueries(string text, string LanguageCodeFrom, string LanguageCodeTo, TranslationDictionary dict) + { + if (!text.Contains("[i2s_")) + { + CreateQueries_Plurals(text, LanguageCodeFrom, LanguageCodeTo, dict); + return; + } + + var variants = SpecializationManager.GetSpecializations(text); + foreach (var kvp in variants) + { + CreateQueries_Plurals(kvp.Value, LanguageCodeFrom, LanguageCodeTo, dict); + } + } + + static void CreateQueries_Plurals(string text, string LanguageCodeFrom, string LanguageCodeTo, TranslationDictionary dict) + { + bool hasPluralParams = text.Contains("{[#"); + bool hasPluralTypes = text.Contains("[i2p_"); + if (!HasParameters(text) || !hasPluralParams && !hasPluralTypes) + { + AddQuery(text, LanguageCodeFrom, LanguageCodeTo, dict); + return; + } + + bool forcePluralParam = hasPluralParams; + + for (var i = (ePluralType)0; i <= ePluralType.Plural; ++i) + { + var pluralType = i.ToString(); + if (!GoogleLanguages.LanguageHasPluralType(LanguageCodeTo, pluralType)) + continue; + + var newText = GetPluralText(text, pluralType); + int testNumber = GoogleLanguages.GetPluralTestNumber(LanguageCodeTo, i); + + var parameter = GetPluralParameter(newText, forcePluralParam); + if (!string.IsNullOrEmpty(parameter)) + newText = newText.Replace(parameter, testNumber.ToString()); + + //Debug.Log("Translate: " + newText); + + AddQuery(newText, LanguageCodeFrom, LanguageCodeTo, dict); + } + } + + public static void AddQuery(string text, string LanguageCodeFrom, string LanguageCodeTo, TranslationDictionary dict) + { + if (string.IsNullOrEmpty(text)) + return; + + + if (!dict.ContainsKey(text)) + { + var query = new TranslationQuery { OrigText = text, LanguageCode = LanguageCodeFrom, TargetLanguagesCode = new[] { LanguageCodeTo } }; + query.Text = text; + ParseNonTranslatableElements(ref query); + dict[text] = query; + } + else + { + var query = dict[text]; + if (Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo) < 0) + { + query.TargetLanguagesCode = query.TargetLanguagesCode.Concat(new[] { LanguageCodeTo }).Distinct().ToArray(); + } + dict[text] = query; + } + } + + static string GetTranslation(string text, string LanguageCodeTo, TranslationDictionary dict) + { + if (!dict.ContainsKey(text)) + return null; + var query = dict[text]; + + int langIdx = Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo); + if (langIdx < 0) + return ""; + + if (query.Results == null) + return ""; + return query.Results[langIdx]; + } + + static TranslationQuery FindQueryFromOrigText(string origText, TranslationDictionary dict) + { + foreach (var kvp in dict) + { + if (kvp.Value.OrigText == origText) + return kvp.Value; + } + return default(TranslationQuery); + } + + public static bool HasParameters( string text ) + { + int idx = text.IndexOf("{[", StringComparison.Ordinal); + if (idx < 0) return false; + return text.IndexOf("]}", idx, StringComparison.Ordinal) > 0; + } + + public static string GetPluralParameter(string text, bool forceTag) // force tag requires that the parameter has the form {[#param]} + { + // Try finding the "plural parameter" that has the form {[#name]} + // this allows using the second parameter as plural: "Player {[name1]} has {[#value]} points" + int idx0 = text.IndexOf("{[#", StringComparison.Ordinal); + if (idx0 < 0) + { + if (forceTag) return null; + idx0 = text.IndexOf("{[", StringComparison.Ordinal); // fallback to the first paremeter if no one has the # tag + } + if (idx0 < 0) + return null; + + int idx1 = text.IndexOf("]}", idx0+2, StringComparison.Ordinal); + if (idx1 < 0) + return null; // no closing parameter tag + + return text.Substring(idx0, idx1 - idx0 + 2); + } + + public static string GetPluralText( string text, string pluralType ) + { + pluralType = "[i2p_" + pluralType + "]"; + int idx0 = text.IndexOf(pluralType, StringComparison.Ordinal); + if (idx0>=0) + { + idx0 += pluralType.Length; + int idx1 = text.IndexOf("[i2p_",idx0, StringComparison.Ordinal); + if (idx1 < 0) idx1 = text.Length; + + return text.Substring(idx0, idx1 - idx0); + } + + // PluralType not found, fallback to the first one + idx0 = text.IndexOf("[i2p_", StringComparison.Ordinal); + if (idx0 < 0) + return text; // No plural tags: "my text" + + if (idx0>0) + return text.Substring(0, idx0); // Case: "my text[i2p_zero]hello" + + // Case: "[i2p_plural]my text[i2p_zero]hello" + idx0 = text.IndexOf("]", StringComparison.Ordinal); + if (idx0 < 0) return text; // starts like a plural, but has none + + idx0 += 1; + int idx2 = text.IndexOf("[i2p_", idx0, StringComparison.Ordinal); + if (idx2 < 0) idx2 = text.Length; + return text.Substring(idx0, idx2 - idx0); + } + + static int FindClosingTag(string tag, MatchCollection matches, int startIndex) + { + for (int i = startIndex, imax = matches.Count; i < imax; ++i) + { + var newTag = I2Utils.GetCaptureMatch(matches[i]); + if (newTag[0]=='/' && tag.StartsWith(newTag.Substring(1), StringComparison.Ordinal)) + return i; + } + return -1; + } + + static string GetGoogleNoTranslateTag(int tagNumber) + { + //return " I2NT" + tagNumber; + if (tagNumber < 70) + return "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++".Substring(0, tagNumber+1); + + string s = ""; + for (int i = -1; i < tagNumber; ++i) + s += "+"; + return s; + } + + + static void ParseNonTranslatableElements( ref TranslationQuery query ) + { + //\[i2nt].*\[\/i2nt] + var matches = Regex.Matches( query.Text, @"\{\[(.*?)]}|\[(.*?)]|\<(.*?)>"); + if (matches == null || matches.Count == 0) + return; + + string finalText = query.Text; + List finalTags = new List(); + for (int i=0, imax=matches.Count; i + + if (iClosingTag < 0) + { + // Its not a tag, its a parameter + var fulltag = matches[i].ToString(); + if (fulltag.StartsWith("{[", StringComparison.Ordinal) && fulltag.EndsWith("]}", StringComparison.Ordinal)) + { + finalText = finalText.Replace(fulltag, GetGoogleNoTranslateTag(finalTags.Count)+" "); // 0x2600 is the start of the UNICODE Miscellaneous Symbols table, so they are not going to be translated by google + //finalText = finalText.Replace(fulltag, /*"{[" + finalTags.Count + "]}"*/ ((char)(0x2600 + finalTags.Count)).ToString()); // 0x2600 is the start of the UNICODE Miscellaneous Symbols table, so they are not going to be translated by google + finalTags.Add(fulltag); + } + continue; + } + + if (tag == "i2nt") + { + var tag1 = query.Text.Substring(matches[i].Index, matches[iClosingTag].Index-matches[i].Index + matches[iClosingTag].Length); + finalText = finalText.Replace(tag1, GetGoogleNoTranslateTag(finalTags.Count)+" "); + //finalText = finalText.Replace(tag1, /*"{[" + finalTags.Count + "]}"*/ ((char)(0x2600 + finalTags.Count)).ToString()); + + finalTags.Add(tag1); + } + else + { + var tag1 = matches[i].ToString(); + finalText = finalText.Replace(tag1, GetGoogleNoTranslateTag(finalTags.Count)+" "); + //finalText = finalText.Replace(tag1, /*"{[" + finalTags.Count + "]}"*/ ((char)(0x2600 + finalTags.Count)).ToString()); + finalTags.Add(tag1); + + var tag2 = matches[iClosingTag].ToString(); + finalText = finalText.Replace(tag2, GetGoogleNoTranslateTag(finalTags.Count)+" "); + //finalText = finalText.Replace(tag2, /*"{[" + finalTags.Count + "]}"*/ ((char)(0x2600 + finalTags.Count)).ToString()); + finalTags.Add(tag2); + } + } + + query.Text = finalText; + query.Tags = finalTags.ToArray(); + } + + public static string GetQueryResult(string text, string LanguageCodeTo, TranslationDictionary dict) + { + if (!dict.ContainsKey(text)) + return null; + + var query = dict[text]; + if (query.Results == null || query.Results.Length < 0) + return null; + + if (string.IsNullOrEmpty(LanguageCodeTo)) + return query.Results[0]; + + int idx = Array.IndexOf(query.TargetLanguagesCode, LanguageCodeTo); + if (idx < 0) + return null; + + return query.Results[idx]; + } + + public static string RebuildTranslation(string text, TranslationDictionary dict, string LanguageCodeTo) + { + if (!text.Contains("[i2s_")) + { + return RebuildTranslation_Plural(text, dict, LanguageCodeTo); + } + + var variants = SpecializationManager.GetSpecializations(text); + var results = new Dictionary(StringComparer.Ordinal); + + foreach (var kvp in variants) + { + results[kvp.Key] = RebuildTranslation_Plural(kvp.Value, dict, LanguageCodeTo); + } + return SpecializationManager.SetSpecializedText(results); + } + + static string RebuildTranslation_Plural( string text, TranslationDictionary dict, string LanguageCodeTo ) + { + bool hasPluralParams = text.Contains("{[#"); + bool hasPluralTypes = text.Contains("[i2p_"); + if (!HasParameters(text) || !hasPluralParams && !hasPluralTypes) + { + return GetTranslation (text, LanguageCodeTo, dict); + } + + var sb = new StringBuilder(); + + string pluralTranslation = null; + bool forcePluralParam = hasPluralParams; + + + for (var i = ePluralType.Plural; i >= 0; --i) + { + var pluralType = i.ToString(); + if (!GoogleLanguages.LanguageHasPluralType(LanguageCodeTo, pluralType)) + continue; + + var newText = GetPluralText(text, pluralType); + int testNumber = GoogleLanguages.GetPluralTestNumber(LanguageCodeTo, i); + + var parameter = GetPluralParameter(newText, forcePluralParam); + if (!string.IsNullOrEmpty(parameter)) + newText = newText.Replace(parameter, testNumber.ToString()); + + var translation = GetTranslation(newText, LanguageCodeTo, dict); + //Debug.LogFormat("from: {0} -> {1}", newText, translation); + if (!string.IsNullOrEmpty(parameter)) + translation = translation.Replace(testNumber.ToString(), parameter); + + if (i==ePluralType.Plural) + { + pluralTranslation = translation; + } + else + { + if (translation == pluralTranslation) + continue; + sb.AppendFormat("[i2p_{0}]", pluralType); + } + sb.Append(translation); + } + + return sb.ToString (); + } + + + + public static string UppercaseFirst(string s) + { + if (string.IsNullOrEmpty(s)) + { + return string.Empty; + } + char[] a = s.ToLower().ToCharArray(); + a[0] = char.ToUpper(a[0]); + return new string(a); + } + public static string TitleCase(string s) + { + if (string.IsNullOrEmpty(s)) + { + return string.Empty; + } + +#if NETFX_CORE + var sb = new StringBuilder(s); + sb[0] = char.ToUpper(sb[0]); + for (int i = 1, imax=s.Length; i Childs { get { yield break;} } + public IEnumerable DeepChilds + { + get + { + foreach (var C in Childs) + foreach (var D in C.DeepChilds) + yield return D; + } + } + + public override string ToString() + { + return "JSONNode"; + } + public virtual string ToString(string aPrefix) + { + return "JSONNode"; + } + + #endregion common interface + + #region typecasting properties + public virtual int AsInt + { + get + { + int v = 0; + if (int.TryParse(Value,out v)) + return v; + return 0; + } + set + { + Value = value.ToString(); + } + } + public virtual float AsFloat + { + get + { + float v = 0.0f; + if (float.TryParse(Value,out v)) + return v; + return 0.0f; + } + set + { + Value = value.ToString(); + } + } + public virtual double AsDouble + { + get + { + double v = 0.0; + if (double.TryParse(Value,out v)) + return v; + return 0.0; + } + set + { + Value = value.ToString(); + } + } + public virtual bool AsBool + { + get + { + bool v = false; + if (bool.TryParse(Value,out v)) + return v; + return !string.IsNullOrEmpty(Value); + } + set + { + Value = value?"true":"false"; + } + } + public virtual JSONArray AsArray + { + get + { + return this as JSONArray; + } + } + public virtual JSONClass AsObject + { + get + { + return this as JSONClass; + } + } + + + #endregion typecasting properties + + #region operators + public static implicit operator JSONNode(string s) + { + return new JSONData(s); + } + public static implicit operator string(JSONNode d) + { + return d == null?null:d.Value; + } + public static bool operator ==(JSONNode a, object b) + { + if (b == null && a is JSONLazyCreator) + return true; + return ReferenceEquals(a,b); + } + + public static bool operator !=(JSONNode a, object b) + { + return !(a == b); + } + public override bool Equals (object obj) + { + return ReferenceEquals(this, obj); + } + public override int GetHashCode () + { + return base.GetHashCode(); + } + + + #endregion operators + + internal static string Escape(string aText) + { + string result = ""; + foreach(char c in aText) + { + switch(c) + { + case '\\' : result += "\\\\"; break; + case '\"' : result += "\\\""; break; + case '\n' : result += "\\n" ; break; + case '\r' : result += "\\r" ; break; + case '\t' : result += "\\t" ; break; + case '\b' : result += "\\b" ; break; + case '\f' : result += "\\f" ; break; + default : result += c ; break; + } + } + return result; + } + + public static JSONNode Parse(string aJSON) + { + Stack stack = new Stack(); + JSONNode ctx = null; + int i = 0; + string Token = ""; + string TokenName = ""; + bool QuoteMode = false; + while (i < aJSON.Length) + { + switch (aJSON[i]) + { + case '{': + if (QuoteMode) + { + Token += aJSON[i]; + break; + } + stack.Push(new JSONClass()); + if (ctx != null) + { + TokenName = TokenName.Trim(); + if (ctx is JSONArray) + ctx.Add(stack.Peek()); + else if (TokenName != "") + ctx.Add(TokenName,stack.Peek()); + } + TokenName = ""; + Token = ""; + ctx = stack.Peek(); + break; + + case '[': + if (QuoteMode) + { + Token += aJSON[i]; + break; + } + + stack.Push(new JSONArray()); + if (ctx != null) + { + TokenName = TokenName.Trim(); + if (ctx is JSONArray) + ctx.Add(stack.Peek()); + else if (TokenName != "") + ctx.Add(TokenName,stack.Peek()); + } + TokenName = ""; + Token = ""; + ctx = stack.Peek(); + break; + + case '}': + case ']': + if (QuoteMode) + { + Token += aJSON[i]; + break; + } + if (stack.Count == 0) + throw new Exception("JSON Parse: Too many closing brackets"); + + stack.Pop(); + if (Token != "") + { + TokenName = TokenName.Trim(); + if (ctx is JSONArray) + ctx.Add(Token); + else if (TokenName != "") + ctx.Add(TokenName,Token); + } + TokenName = ""; + Token = ""; + if (stack.Count>0) + ctx = stack.Peek(); + break; + + case ':': + if (QuoteMode) + { + Token += aJSON[i]; + break; + } + TokenName = Token; + Token = ""; + break; + + case '"': + QuoteMode ^= true; + break; + + case ',': + if (QuoteMode) + { + Token += aJSON[i]; + break; + } + if (Token != "") + { + if (ctx is JSONArray) + ctx.Add(Token); + else if (TokenName != "") + ctx.Add(TokenName, Token); + } + TokenName = ""; + Token = ""; + break; + + case '\r': + case '\n': + break; + + case ' ': + case '\t': + if (QuoteMode) + Token += aJSON[i]; + break; + + case '\\': + ++i; + if (QuoteMode) + { + char C = aJSON[i]; + switch (C) + { + case 't' : Token += '\t'; break; + case 'r' : Token += '\r'; break; + case 'n' : Token += '\n'; break; + case 'b' : Token += '\b'; break; + case 'f' : Token += '\f'; break; + case 'u': + { + string s = aJSON.Substring(i+1,4); + Token += (char)int.Parse(s, NumberStyles.AllowHexSpecifier); + i += 4; + break; + } + default : Token += C; break; + } + } + break; + + default: + Token += aJSON[i]; + break; + } + ++i; + } + if (QuoteMode) + { + throw new Exception("JSON Parse: Quotation marks seems to be messed up."); + } + return ctx; + } + + public virtual void Serialize(BinaryWriter aWriter) {} + + public void SaveToStream(Stream aData) + { + var W = new BinaryWriter(aData); + Serialize(W); + } + + #if USE_SharpZipLib + public void SaveToCompressedStream(System.IO.Stream aData) + { + using (var gzipOut = new ICSharpCode.SharpZipLib.BZip2.BZip2OutputStream(aData)) + { + gzipOut.IsStreamOwner = false; + SaveToStream(gzipOut); + gzipOut.Close(); + } + } + + public void SaveToCompressedFile(string aFileName) + { + #if USE_FileIO + System.IO.Directory.CreateDirectory((new System.IO.FileInfo(aFileName)).Directory.FullName); + using(var F = System.IO.File.OpenWrite(aFileName)) + { + SaveToCompressedStream(F); + } + #else + throw new Exception("Can't use File IO stuff in webplayer"); + #endif + } + public string SaveToCompressedBase64() + { + using (var stream = new System.IO.MemoryStream()) + { + SaveToCompressedStream(stream); + stream.Position = 0; + return System.Convert.ToBase64String(stream.ToArray()); + } + } + + #else + public void SaveToCompressedStream(Stream aData) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + public void SaveToCompressedFile(string aFileName) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + public string SaveToCompressedBase64() + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + #endif + + public void SaveToFile(string aFileName) + { + #if USE_FileIO + Directory.CreateDirectory(new FileInfo(aFileName).Directory.FullName); + using(var F = File.OpenWrite(aFileName)) + { + SaveToStream(F); + } + #else + throw new Exception("Can't use File IO stuff in webplayer"); + #endif + } + public string SaveToBase64() + { + using (var stream = new MemoryStream()) + { + SaveToStream(stream); + stream.Position = 0; + return Convert.ToBase64String(stream.ToArray()); + } + } + public static JSONNode Deserialize(BinaryReader aReader) + { + JSONBinaryTag type = (JSONBinaryTag)aReader.ReadByte(); + switch(type) + { + case JSONBinaryTag.Array: + { + int count = aReader.ReadInt32(); + JSONArray tmp = new JSONArray(); + for(int i = 0; i < count; i++) + tmp.Add(Deserialize(aReader)); + return tmp; + } + case JSONBinaryTag.Class: + { + int count = aReader.ReadInt32(); + JSONClass tmp = new JSONClass(); + for(int i = 0; i < count; i++) + { + string key = aReader.ReadString(); + var val = Deserialize(aReader); + tmp.Add(key, val); + } + return tmp; + } + case JSONBinaryTag.Value: + { + return new JSONData(aReader.ReadString()); + } + case JSONBinaryTag.IntValue: + { + return new JSONData(aReader.ReadInt32()); + } + case JSONBinaryTag.DoubleValue: + { + return new JSONData(aReader.ReadDouble()); + } + case JSONBinaryTag.BoolValue: + { + return new JSONData(aReader.ReadBoolean()); + } + case JSONBinaryTag.FloatValue: + { + return new JSONData(aReader.ReadSingle()); + } + + default: + { + throw new Exception("Error deserializing JSON. Unknown tag: " + type); + } + } + } + + #if USE_SharpZipLib + public static JSONNode LoadFromCompressedStream(System.IO.Stream aData) + { + var zin = new ICSharpCode.SharpZipLib.BZip2.BZip2InputStream(aData); + return LoadFromStream(zin); + } + public static JSONNode LoadFromCompressedFile(string aFileName) + { + #if USE_FileIO + using(var F = System.IO.File.OpenRead(aFileName)) + { + return LoadFromCompressedStream(F); + } + #else + throw new Exception("Can't use File IO stuff in webplayer"); + #endif + } + public static JSONNode LoadFromCompressedBase64(string aBase64) + { + var tmp = System.Convert.FromBase64String(aBase64); + var stream = new System.IO.MemoryStream(tmp); + stream.Position = 0; + return LoadFromCompressedStream(stream); + } + #else + public static JSONNode LoadFromCompressedFile(string aFileName) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + public static JSONNode LoadFromCompressedStream(Stream aData) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + public static JSONNode LoadFromCompressedBase64(string aBase64) + { + throw new Exception("Can't use compressed functions. You need include the SharpZipLib and uncomment the define at the top of SimpleJSON"); + } + #endif + + public static JSONNode LoadFromStream(Stream aData) + { + using(var R = new BinaryReader(aData)) + { + return Deserialize(R); + } + } + public static JSONNode LoadFromFile(string aFileName) + { + #if USE_FileIO + using(var F = File.OpenRead(aFileName)) + { + return LoadFromStream(F); + } + #else + throw new Exception("Can't use File IO stuff in webplayer"); + #endif + } + public static JSONNode LoadFromBase64(string aBase64) + { + var tmp = Convert.FromBase64String(aBase64); + var stream = new MemoryStream(tmp); + stream.Position = 0; + return LoadFromStream(stream); + } + } // End of JSONNode + + public class JSONArray : JSONNode, IEnumerable + { + private List m_List = new List(); + public override JSONNode this[int aIndex] + { + get + { + if (aIndex<0 || aIndex >= m_List.Count) + return new JSONLazyCreator(this); + return m_List[aIndex]; + } + set + { + if (aIndex<0 || aIndex >= m_List.Count) + m_List.Add(value); + else + m_List[aIndex] = value; + } + } + public override JSONNode this[string aKey] + { + get{ return new JSONLazyCreator(this);} + set{ m_List.Add(value); } + } + public override int Count + { + get { return m_List.Count; } + } + public override void Add(string aKey, JSONNode aItem) + { + m_List.Add(aItem); + } + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_List.Count) + return null; + JSONNode tmp = m_List[aIndex]; + m_List.RemoveAt(aIndex); + return tmp; + } + public override JSONNode Remove(JSONNode aNode) + { + m_List.Remove(aNode); + return aNode; + } + public override IEnumerable Childs + { + get + { + foreach(JSONNode N in m_List) + yield return N; + } + } + public IEnumerator GetEnumerator() + { + foreach(JSONNode N in m_List) + yield return N; + } + public override string ToString() + { + string result = "[ "; + foreach (JSONNode N in m_List) + { + if (result.Length > 2) + result += ", "; + result += N.ToString(); + } + result += " ]"; + return result; + } + public override string ToString(string aPrefix) + { + string result = "[ "; + foreach (JSONNode N in m_List) + { + if (result.Length > 3) + result += ", "; + result += "\n" + aPrefix + " "; + result += N.ToString(aPrefix+" "); + } + result += "\n" + aPrefix + "]"; + return result; + } + public override void Serialize (BinaryWriter aWriter) + { + aWriter.Write((byte)JSONBinaryTag.Array); + aWriter.Write(m_List.Count); + for(int i = 0; i < m_List.Count; i++) + { + m_List[i].Serialize(aWriter); + } + } + } // End of JSONArray + + public class JSONClass : JSONNode, IEnumerable + { + private Dictionary m_Dict = new Dictionary(StringComparer.Ordinal); + public override JSONNode this[string aKey] + { + get + { + if (m_Dict.ContainsKey(aKey)) + return m_Dict[aKey]; + return new JSONLazyCreator(this, aKey); + } + set + { + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = value; + else + m_Dict.Add(aKey,value); + } + } + public override JSONNode this[int aIndex] + { + get + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + +#if DISABLE_LINQ_EXT + foreach (var kvp in m_Dict) + { + if (aIndex==0) + return kvp.Value; + aIndex--; + } + return null; +#else + return m_Dict.ElementAt(aIndex).Value; +#endif + } + set + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return; +#if DISABLE_LINQ_EXT + string[] keys = new string[m_Dict.Keys.Count]; + m_Dict.Keys.CopyTo(keys,0); + string key = keys[aIndex]; +#else + string key = m_Dict.ElementAt(aIndex).Key; +#endif + m_Dict[key] = value; + } + } + public override int Count + { + get { return m_Dict.Count; } + } + + + public override void Add(string aKey, JSONNode aItem) + { + if (!string.IsNullOrEmpty(aKey)) + { + if (m_Dict.ContainsKey(aKey)) + m_Dict[aKey] = aItem; + else + m_Dict.Add(aKey, aItem); + } + else + m_Dict.Add(Guid.NewGuid().ToString(), aItem); + } + + public override JSONNode Remove(string aKey) + { + if (!m_Dict.ContainsKey(aKey)) + return null; + JSONNode tmp = m_Dict[aKey]; + m_Dict.Remove(aKey); + return tmp; + } + public override JSONNode Remove(int aIndex) + { + if (aIndex < 0 || aIndex >= m_Dict.Count) + return null; + +#if DISABLE_LINQ_EXT + string[] keys = new string[m_Dict.Keys.Count]; + m_Dict.Keys.CopyTo(keys,0); + string key = keys[aIndex]; + var value = m_Dict[key]; + m_Dict.Remove(key); + return value; +#else + var item = m_Dict.ElementAt(aIndex); + m_Dict.Remove(item.Key); + return item.Value; +#endif + } + public override JSONNode Remove(JSONNode aNode) + { + try + { +#if DISABLE_LINQ_EXT + foreach (var kvp in m_Dict) + if (kvp.Value == aNode) + { + m_Dict.Remove(kvp.Key); + break; + } + return aNode; +#else + var item = m_Dict.Where(k => k.Value == aNode).First(); + m_Dict.Remove(item.Key); + return aNode; +#endif + } + catch + { + return null; + } + } + + public override IEnumerable Childs + { + get + { + foreach(KeyValuePair N in m_Dict) + yield return N.Value; + } + } + + public IEnumerator GetEnumerator() + { + foreach(KeyValuePair N in m_Dict) + yield return N; + } + public override string ToString() + { + string result = "{"; + foreach (KeyValuePair N in m_Dict) + { + if (result.Length > 2) + result += ", "; + result += "\"" + Escape(N.Key) + "\":" + N.Value; + } + result += "}"; + return result; + } + public override string ToString(string aPrefix) + { + string result = "{ "; + foreach (KeyValuePair N in m_Dict) + { + if (result.Length > 3) + result += ", "; + result += "\n" + aPrefix + " "; + result += "\"" + Escape(N.Key) + "\" : " + N.Value.ToString(aPrefix+" "); + } + result += "\n" + aPrefix + "}"; + return result; + } + public override void Serialize (BinaryWriter aWriter) + { + aWriter.Write((byte)JSONBinaryTag.Class); + aWriter.Write(m_Dict.Count); + foreach(string K in m_Dict.Keys) + { + aWriter.Write(K); + m_Dict[K].Serialize(aWriter); + } + } + } // End of JSONClass + + public class JSONData : JSONNode + { + private string m_Data; + public override string Value + { + get { return m_Data; } + set { m_Data = value; } + } + public JSONData(string aData) + { + m_Data = aData; + } + public JSONData(float aData) + { + AsFloat = aData; + } + public JSONData(double aData) + { + AsDouble = aData; + } + public JSONData(bool aData) + { + AsBool = aData; + } + public JSONData(int aData) + { + AsInt = aData; + } + + public override string ToString() + { + return "\"" + Escape(m_Data) + "\""; + } + public override string ToString(string aPrefix) + { + return "\"" + Escape(m_Data) + "\""; + } + public override void Serialize (BinaryWriter aWriter) + { + var tmp = new JSONData(""); + + tmp.AsInt = AsInt; + if (tmp.m_Data == m_Data) + { + aWriter.Write((byte)JSONBinaryTag.IntValue); + aWriter.Write(AsInt); + return; + } + tmp.AsFloat = AsFloat; + if (tmp.m_Data == m_Data) + { + aWriter.Write((byte)JSONBinaryTag.FloatValue); + aWriter.Write(AsFloat); + return; + } + tmp.AsDouble = AsDouble; + if (tmp.m_Data == m_Data) + { + aWriter.Write((byte)JSONBinaryTag.DoubleValue); + aWriter.Write(AsDouble); + return; + } + + tmp.AsBool = AsBool; + if (tmp.m_Data == m_Data) + { + aWriter.Write((byte)JSONBinaryTag.BoolValue); + aWriter.Write(AsBool); + return; + } + aWriter.Write((byte)JSONBinaryTag.Value); + aWriter.Write(m_Data); + } + } // End of JSONData + + internal class JSONLazyCreator : JSONNode + { + private JSONNode m_Node; + private string m_Key; + + public JSONLazyCreator(JSONNode aNode) + { + m_Node = aNode; + m_Key = null; + } + public JSONLazyCreator(JSONNode aNode, string aKey) + { + m_Node = aNode; + m_Key = aKey; + } + + private void Set(JSONNode aVal) + { + if (m_Key == null) + { + m_Node.Add(aVal); + } + else + { + m_Node.Add(m_Key, aVal); + } + m_Node = null; // Be GC friendly. + } + + public override JSONNode this[int aIndex] + { + get + { + return new JSONLazyCreator(this); + } + set + { + var tmp = new JSONArray(); + tmp.Add(value); + Set(tmp); + } + } + + public override JSONNode this[string aKey] + { + get + { + return new JSONLazyCreator(this, aKey); + } + set + { + var tmp = new JSONClass(); + tmp.Add(aKey, value); + Set(tmp); + } + } + public override void Add (JSONNode aItem) + { + var tmp = new JSONArray(); + tmp.Add(aItem); + Set(tmp); + } + public override void Add (string aKey, JSONNode aItem) + { + var tmp = new JSONClass(); + tmp.Add(aKey, aItem); + Set(tmp); + } + public static bool operator ==(JSONLazyCreator a, object b) + { + if (b == null) + return true; + return ReferenceEquals(a,b); + } + + public static bool operator !=(JSONLazyCreator a, object b) + { + return !(a == b); + } + public override bool Equals (object obj) + { + if (obj == null) + return true; + return ReferenceEquals(this, obj); + } + public override int GetHashCode () + { + return base.GetHashCode(); + } + + public override string ToString() + { + return ""; + } + public override string ToString(string aPrefix) + { + return ""; + } + + public override int AsInt + { + get + { + JSONData tmp = new JSONData(0); + Set(tmp); + return 0; + } + set + { + JSONData tmp = new JSONData(value); + Set(tmp); + } + } + public override float AsFloat + { + get + { + JSONData tmp = new JSONData(0.0f); + Set(tmp); + return 0.0f; + } + set + { + JSONData tmp = new JSONData(value); + Set(tmp); + } + } + public override double AsDouble + { + get + { + JSONData tmp = new JSONData(0.0); + Set(tmp); + return 0.0; + } + set + { + JSONData tmp = new JSONData(value); + Set(tmp); + } + } + public override bool AsBool + { + get + { + JSONData tmp = new JSONData(false); + Set(tmp); + return false; + } + set + { + JSONData tmp = new JSONData(value); + Set(tmp); + } + } + public override JSONArray AsArray + { + get + { + JSONArray tmp = new JSONArray(); + Set(tmp); + return tmp; + } + } + public override JSONClass AsObject + { + get + { + JSONClass tmp = new JSONClass(); + Set(tmp); + return tmp; + } + } + } // End of JSONLazyCreator + + public static class JSON + { + public static JSONNode Parse(string aJSON) + { + return JSONNode.Parse(aJSON); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/SimpleJSON.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/SimpleJSON.cs.meta new file mode 100644 index 00000000..a86ec175 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/SimpleJSON.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c6bd173cd8524b04daa3dabce666b456 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs new file mode 100644 index 00000000..73259206 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using UnityEngine.Networking; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + + public class TranslationJob : IDisposable + { + public eJobState mJobState = eJobState.Running; + + public enum eJobState { Running, Succeeded, Failed } + + public virtual eJobState GetState() { return mJobState; } + + public virtual void Dispose() { } + + } + + public class TranslationJob_WWW : TranslationJob + { + public UnityWebRequest www; + + public override void Dispose() + { + if (www!=null) + www.Dispose(); + www = null; + } + + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs.meta new file mode 100644 index 00000000..3dd1594d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7dae211a5bb44db46a568fb70fca3296 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs new file mode 100644 index 00000000..0e805b16 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine.Networking; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public class TranslationJob_GET : TranslationJob_WWW + { + TranslationDictionary _requests; + GoogleTranslation.fnOnTranslationReady _OnTranslationReady; + List mQueries; + public string mErrorMessage; + + public TranslationJob_GET(TranslationDictionary requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady) + { + _requests = requests; + _OnTranslationReady = OnTranslationReady; + + mQueries = GoogleTranslation.ConvertTranslationRequest(requests, true); + + GetState(); + } + + void ExecuteNextQuery() + { + if (mQueries.Count == 0) + { + mJobState = eJobState.Succeeded; + return; + } + + int lastQuery = mQueries.Count - 1; + var query = mQueries[lastQuery]; + mQueries.RemoveAt(lastQuery); + + string url = $"{LocalizationManager.GetWebServiceURL()}?action=Translate&list={query}"; + www = UnityWebRequest.Get(url); + I2Utils.SendWebRequest(www); + } + + public override eJobState GetState() + { + if (www != null && www.isDone) + { + ProcessResult(www.downloadHandler.data, www.error); + www.Dispose(); + www = null; + } + + if (www==null) + { + ExecuteNextQuery(); + } + + return mJobState; + } + + public void ProcessResult(byte[] bytes, string errorMsg) + { + if (string.IsNullOrEmpty(errorMsg)) + { + var wwwText = Encoding.UTF8.GetString(bytes, 0, bytes.Length); //www.text + errorMsg = GoogleTranslation.ParseTranslationResult(wwwText, _requests); + + if (string.IsNullOrEmpty(errorMsg)) + { + if (_OnTranslationReady!=null) + _OnTranslationReady(_requests, null); + return; + } + } + + mJobState = eJobState.Failed; + mErrorMessage = errorMsg; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs.meta new file mode 100644 index 00000000..7835a839 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_GET.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 13df42f7287eccc4399bc757d577030e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs new file mode 100644 index 00000000..256d6aac --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs @@ -0,0 +1,102 @@ +using System.Collections.Generic; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public class TranslationJob_Main : TranslationJob + { + TranslationJob_WEB mWeb; + TranslationJob_POST mPost; + TranslationJob_GET mGet; + + TranslationDictionary _requests; + GoogleTranslation.fnOnTranslationReady _OnTranslationReady; + public string mErrorMessage; + + public TranslationJob_Main(TranslationDictionary requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady) + { + _requests = requests; + _OnTranslationReady = OnTranslationReady; + + //mWeb = new TranslationJob_WEB(requests, OnTranslationReady); + mPost = new TranslationJob_POST(requests, OnTranslationReady); + } + + public override eJobState GetState() + { + if (mWeb != null) + { + var state = mWeb.GetState(); + switch (state) + { + case eJobState.Running: return eJobState.Running; + case eJobState.Succeeded: + { + mJobState = eJobState.Succeeded; + break; + } + case eJobState.Failed: + { + mWeb.Dispose(); + mWeb = null; + mPost = new TranslationJob_POST(_requests, _OnTranslationReady); + break; + } + } + } + if (mPost != null) + { + var state = mPost.GetState(); + switch (state) + { + case eJobState.Running: return eJobState.Running; + case eJobState.Succeeded: + { + mJobState = eJobState.Succeeded; + break; + } + case eJobState.Failed: + { + mPost.Dispose(); + mPost = null; + mGet = new TranslationJob_GET(_requests, _OnTranslationReady); + break; + } + } + } + if (mGet != null) + { + var state = mGet.GetState(); + switch (state) + { + case eJobState.Running: return eJobState.Running; + case eJobState.Succeeded: + { + mJobState = eJobState.Succeeded; + break; + } + case eJobState.Failed: + { + mErrorMessage = mGet.mErrorMessage; + if (_OnTranslationReady != null) + _OnTranslationReady(_requests, mErrorMessage); + mGet.Dispose(); + mGet = null; + break; + } + } + } + + return mJobState; + } + + public override void Dispose() + { + if (mPost != null) mPost.Dispose(); + if (mGet != null) mGet.Dispose(); + mPost = null; + mGet = null; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs.meta new file mode 100644 index 00000000..43390b4a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_Main.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b6aed7ae05f9c254596b3728c5811bdb +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs new file mode 100644 index 00000000..50a089e8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.Networking; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public class TranslationJob_POST : TranslationJob_WWW + { + TranslationDictionary _requests; + GoogleTranslation.fnOnTranslationReady _OnTranslationReady; + + public TranslationJob_POST(TranslationDictionary requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady) + { + _requests = requests; + _OnTranslationReady = OnTranslationReady; + + var data = GoogleTranslation.ConvertTranslationRequest(requests, false); + + WWWForm form = new WWWForm(); + form.AddField("action", "Translate"); + form.AddField("list", data[0]); + + www = UnityWebRequest.Post(LocalizationManager.GetWebServiceURL(), form); + I2Utils.SendWebRequest(www); + } + + public override eJobState GetState() + { + if (www != null && www.isDone) + { + ProcessResult(www.downloadHandler.data, www.error); + www.Dispose(); + www = null; + } + + return mJobState; + } + + public void ProcessResult(byte[] bytes, string errorMsg) + { + if (!string.IsNullOrEmpty(errorMsg)) + { + // check for + //if (errorMsg.Contains("rewind")) // "necessary data rewind wasn't possible" + mJobState = eJobState.Failed; + } + else + { + var wwwText = Encoding.UTF8.GetString(bytes, 0, bytes.Length); //www.text + errorMsg = GoogleTranslation.ParseTranslationResult(wwwText, _requests); + if (_OnTranslationReady!=null) + _OnTranslationReady(_requests, errorMsg); + mJobState = eJobState.Succeeded; + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs.meta new file mode 100644 index 00000000..abc2d46f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_POST.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3450e33294f339348ae4e52731974230 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs new file mode 100644 index 00000000..cf6d13b3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Text.RegularExpressions; +using UnityEngine; +using UnityEngine.Networking; + +namespace I2.Loc +{ + using TranslationDictionary = Dictionary; + + public class TranslationJob_WEB : TranslationJob_WWW + { + TranslationDictionary _requests; + GoogleTranslation.fnOnTranslationReady _OnTranslationReady; + public string mErrorMessage; + + string mCurrentBatch_ToLanguageCode; + string mCurrentBatch_FromLanguageCode; + List mCurrentBatch_Text; + + List> mQueries; + + public TranslationJob_WEB(TranslationDictionary requests, GoogleTranslation.fnOnTranslationReady OnTranslationReady) + { + _requests = requests; + _OnTranslationReady = OnTranslationReady; + + FindAllQueries(); + ExecuteNextBatch(); + } + + void FindAllQueries() + { + mQueries = new List>(); + foreach (var kvp in _requests) + { + foreach (var langCode in kvp.Value.TargetLanguagesCode) + { + mQueries.Add(new KeyValuePair(kvp.Value.OrigText, kvp.Value.LanguageCode+":"+langCode)); + } + } + + mQueries.Sort((a, b) => a.Value.CompareTo(b.Value)); + } + + void ExecuteNextBatch() + { + if (mQueries.Count==0) + { + mJobState = eJobState.Succeeded; + return; + } + mCurrentBatch_Text = new List(); + + string lastLangCode = null; + int maxLength = 200; + + var sb = new StringBuilder(); + int i; + for (i=0; i maxLength) + break; + } + mQueries.RemoveRange(0, i); + + var fromtoLang = lastLangCode.Split(':'); + mCurrentBatch_FromLanguageCode = fromtoLang[0]; + mCurrentBatch_ToLanguageCode = fromtoLang[1]; + + string url = string.Format ("http://www.google.com/translate_t?hl=en&vi=c&ie=UTF8&oe=UTF8&submit=Translate&langpair={0}|{1}&text={2}", mCurrentBatch_FromLanguageCode, mCurrentBatch_ToLanguageCode, Uri.EscapeUriString( sb.ToString() )); + Debug.Log(url); + + www = UnityWebRequest.Get(url); + I2Utils.SendWebRequest(www); + } + + public override eJobState GetState() + { + if (www != null && www.isDone) + { + ProcessResult(www.downloadHandler.data, www.error); + www.Dispose(); + www = null; + } + + if (www == null) + { + ExecuteNextBatch(); + } + + return mJobState; + } + + public void ProcessResult(byte[] bytes, string errorMsg) + { + if (string.IsNullOrEmpty(errorMsg)) + { + var wwwText = Encoding.UTF8.GetString(bytes, 0, bytes.Length); //www.text + var result = ParseTranslationResult(wwwText, "aab"); + //errorMsg = GoogleTranslation.ParseTranslationResult(wwwText, _requests); + Debug.Log(result); + + if (string.IsNullOrEmpty(errorMsg)) + { + if (_OnTranslationReady != null) + _OnTranslationReady(_requests, null); + return; + } + } + + mJobState = eJobState.Failed; + mErrorMessage = errorMsg; + } + + string ParseTranslationResult( string html, string OriginalText ) + { + try + { + // This is a Hack for reading Google Translation while Google doens't change their response format + int iStart = html.IndexOf("TRANSLATED_TEXT='", StringComparison.Ordinal) + "TRANSLATED_TEXT='".Length; + int iEnd = html.IndexOf("';var", iStart, StringComparison.Ordinal); + + string Translation = html.Substring( iStart, iEnd-iStart); + + // Convert to normalized HTML + Translation = Regex.Replace(Translation, @"\\x([a-fA-F0-9]{2})", + match => char.ConvertFromUtf32(int.Parse(match.Groups[1].Value, NumberStyles.HexNumber))); + + // Convert ASCII Characters + Translation = Regex.Replace(Translation, @"&#(\d+);", + match => char.ConvertFromUtf32(int.Parse(match.Groups[1].Value))); + + Translation = Translation.Replace("
", "\n"); + + if (OriginalText.ToUpper()==OriginalText) + Translation = Translation.ToUpper(); + else + if (GoogleTranslation.UppercaseFirst(OriginalText)==OriginalText) + Translation = GoogleTranslation.UppercaseFirst(Translation); + else + if (GoogleTranslation.TitleCase(OriginalText)==OriginalText) + Translation = GoogleTranslation.TitleCase(Translation); + + return Translation; + } + catch (Exception ex) + { + Debug.LogError(ex.Message); + return string.Empty; + } + } + } + + } \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs.meta new file mode 100644 index 00000000..408e6adb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Google/TranslationJob_WEB.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3b72399bd2ff39042b1320bb943e0a20 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs new file mode 100644 index 00000000..85adffb3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs @@ -0,0 +1,43 @@ +using System; + +namespace I2.Loc +{ + public enum eLanguageDataFlags + { + DISABLED = 1, + KEEP_LOADED = 2, + NOT_LOADED = 4 + } + [Serializable] + public class LanguageData + { + public string Name; + public string Code; + public byte Flags; // eLanguageDataFlags + + [NonSerialized] + public bool Compressed = false; // This will be used in the next version for only loading used Languages + + public bool IsEnabled () { return (Flags & (int)eLanguageDataFlags.DISABLED) == 0; } + + public void SetEnabled( bool bEnabled ) + { + if (bEnabled) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.DISABLED); + else Flags = (byte)(Flags | (int)eLanguageDataFlags.DISABLED); + } + + public bool IsLoaded () { return (Flags & (int)eLanguageDataFlags.NOT_LOADED) == 0; } + public bool CanBeUnloaded () { return (Flags & (int)eLanguageDataFlags.KEEP_LOADED) == 0; } + + public void SetLoaded ( bool loaded ) + { + if (loaded) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.NOT_LOADED); + else Flags = (byte)(Flags | (int)eLanguageDataFlags.NOT_LOADED); + } + public void SetCanBeUnLoaded(bool allowUnloading) + { + if (allowUnloading) Flags = (byte)(Flags & ~(int)eLanguageDataFlags.KEEP_LOADED); + else Flags = (byte)(Flags | (int)eLanguageDataFlags.KEEP_LOADED); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs.meta new file mode 100644 index 00000000..6ce04567 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageData.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: cde54ba5e482bec4c88b52e618b81cc9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource.meta new file mode 100644 index 00000000..fad69b2f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 75c7654f6d20207418b4cbce1b29906d +folderAsset: yes +timeCreated: 1518833279 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSource.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSource.cs new file mode 100644 index 00000000..c816b11f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSource.cs @@ -0,0 +1,178 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + [AddComponentMenu("I2/Localization/Source")] + [ExecuteInEditMode] + public class LanguageSource : MonoBehaviour, ISerializationCallbackReceiver, ILanguageSource + { + public LanguageSourceData SourceData + { + get { return mSource; } + set { mSource = value; } + } + public LanguageSourceData mSource = new LanguageSourceData(); + + // Because of Unity2018.3 change in Prefabs, now all the source variables are moved into LanguageSourceData + // But to avoid loosing previously serialized data, these vars are copied into mSource.XXXX when deserializing) + // These are going to be removed once everyone port their projects to the new I2L version. + #region Legacy Variables + + // TODO: also copy public string name; and owner + + public int version; + public bool NeverDestroy; // Keep between scenes (will call DontDestroyOnLoad ) + + public bool UserAgreesToHaveItOnTheScene; + public bool UserAgreesToHaveItInsideThePluginsFolder; + public bool GoogleLiveSyncIsUptoDate = true; + + public List Assets = new List(); // References to Fonts, Atlasses and other objects the localization may need + + public string Google_WebServiceURL; + public string Google_SpreadsheetKey; + public string Google_SpreadsheetName; + public string Google_LastUpdatedVersion; + + + public LanguageSourceData.eGoogleUpdateFrequency GoogleUpdateFrequency = LanguageSourceData.eGoogleUpdateFrequency.Weekly; + + public float GoogleUpdateDelay = 5; // How many second to delay downloading data from google (to avoid lag on the startup) + + public delegate void fnOnSourceUpdated(LanguageSourceData source, bool ReceivedNewData, string errorMsg); + public event fnOnSourceUpdated Event_OnSourceUpdateFromGoogle; + + public List mLanguages = new List(); + + public bool IgnoreDeviceLanguage; // If false, it will use the Device's language as the initial Language, otherwise it will use the first language in the source. + + public LanguageSourceData.eAllowUnloadLanguages _AllowUnloadingLanguages = LanguageSourceData.eAllowUnloadLanguages.Never; + + public List mTerms = new List(); + + public bool CaseInsensitiveTerms; + + public LanguageSourceData.MissingTranslationAction OnMissingTranslation = LanguageSourceData.MissingTranslationAction.Fallback; + + public string mTerm_AppName; + + #endregion + + #region EditorVariables + #if UNITY_EDITOR + + public string Spreadsheet_LocalFileName; + public string Spreadsheet_LocalCSVSeparator = ","; + public string Spreadsheet_LocalCSVEncoding = "utf-8"; + public bool Spreadsheet_SpecializationAsRows = true; + + public string Google_Password = "change_this"; + public LanguageSourceData.eGoogleUpdateFrequency GoogleInEditorCheckFrequency = LanguageSourceData.eGoogleUpdateFrequency.Daily; +#endif + #endregion + + void Awake() + { + #if UNITY_EDITOR + if (BuildPipeline.isBuildingPlayer) + return; + #endif + // NeverDestroy = false; + + // if (NeverDestroy) + //{ + // if (mSource.ManagerHasASimilarSource()) + // { + // Object.Destroy (this); + // return; + // } + // else + // { + // if (Application.isPlaying) + // DontDestroyOnLoad (gameObject); + // } + //} + mSource.owner = this; + mSource.Awake(); + } + + private void OnDestroy() + { + NeverDestroy = false; + + if (!NeverDestroy) + { + mSource.OnDestroy(); + } + } + + public string GetSourceName() + { + string s = gameObject.name; + Transform tr = transform.parent; + while (tr) + { + s = string.Concat(tr.name, "_", s); + tr = tr.parent; + } + return s; + } + + public void OnBeforeSerialize() + { + version = 1; + } + + public void OnAfterDeserialize() + { + if (version==0 || mSource==null) + { + mSource = new LanguageSourceData(); + mSource.owner = this; + mSource.UserAgreesToHaveItOnTheScene = UserAgreesToHaveItOnTheScene; + mSource.UserAgreesToHaveItInsideThePluginsFolder = UserAgreesToHaveItInsideThePluginsFolder; + mSource.IgnoreDeviceLanguage = IgnoreDeviceLanguage; + mSource._AllowUnloadingLanguages = _AllowUnloadingLanguages; + mSource.CaseInsensitiveTerms = CaseInsensitiveTerms; + mSource.OnMissingTranslation = OnMissingTranslation; + mSource.mTerm_AppName = mTerm_AppName; + + mSource.GoogleLiveSyncIsUptoDate = GoogleLiveSyncIsUptoDate; + mSource.Google_WebServiceURL = Google_WebServiceURL; + mSource.Google_SpreadsheetKey = Google_SpreadsheetKey; + mSource.Google_SpreadsheetName = Google_SpreadsheetName; + mSource.Google_LastUpdatedVersion = Google_LastUpdatedVersion; + mSource.GoogleUpdateFrequency = GoogleUpdateFrequency; + mSource.GoogleUpdateDelay = GoogleUpdateDelay; + + mSource.Event_OnSourceUpdateFromGoogle += Event_OnSourceUpdateFromGoogle; + + if (mLanguages != null && mLanguages.Count>0) + { + mSource.mLanguages.Clear(); + mSource.mLanguages.AddRange(mLanguages); + mLanguages.Clear(); + } + if (Assets != null && Assets.Count > 0) + { + mSource.Assets.Clear(); + mSource.Assets.AddRange(Assets); + Assets.Clear(); + } + if (mTerms != null && mTerms.Count>0) + { + mSource.mTerms.Clear(); + for (int i=0; i mTerms = new List(); + + public bool CaseInsensitiveTerms; + + //This is used to overcome the issue with Unity not serializing Dictionaries + [NonSerialized] public Dictionary mDictionary = new Dictionary(StringComparer.Ordinal); + + public enum MissingTranslationAction { Empty, Fallback, ShowWarning, ShowTerm } + public MissingTranslationAction OnMissingTranslation = MissingTranslationAction.Fallback; + + public string mTerm_AppName; + + #endregion + + #region Variables : Languages + + public List mLanguages = new List(); + + public bool IgnoreDeviceLanguage; // If false, it will use the Device's language as the initial Language, otherwise it will use the first language in the source. + + public enum eAllowUnloadLanguages { Never, OnlyInDevice, EditorAndDevice } + public eAllowUnloadLanguages _AllowUnloadingLanguages = eAllowUnloadLanguages.Never; + + #endregion + + #region Variables : Google + + public string Google_WebServiceURL; + public string Google_SpreadsheetKey; + public string Google_SpreadsheetName; + public string Google_LastUpdatedVersion; + +#if UNITY_EDITOR + public string Google_Password = "change_this"; +#endif + + public enum eGoogleUpdateFrequency { Always, Never, Daily, Weekly, Monthly, OnlyOnce, EveryOtherDay } + public eGoogleUpdateFrequency GoogleUpdateFrequency = eGoogleUpdateFrequency.Weekly; + public eGoogleUpdateFrequency GoogleInEditorCheckFrequency = eGoogleUpdateFrequency.Daily; + + // When Manual, the user has to call LocalizationManager.ApplyDownloadedDataFromGoogle() during a loading screen or similar + public enum eGoogleUpdateSynchronization { Manual, OnSceneLoaded, AsSoonAsDownloaded } + public eGoogleUpdateSynchronization GoogleUpdateSynchronization = eGoogleUpdateSynchronization.OnSceneLoaded; + + public float GoogleUpdateDelay; // How many second to delay downloading data from google (to avoid lag on the startup) + + public event LanguageSource.fnOnSourceUpdated Event_OnSourceUpdateFromGoogle; // (LanguageSource, bool ReceivedNewData, string errorMsg) + + #endregion + + #region Variables : Assets + + public List Assets = new List(); // References to Fonts, Atlasses and other objects the localization may need + + //This is used to overcome the issue with Unity not serializing Dictionaries + [NonSerialized] public Dictionary mAssetDictionary = new Dictionary(StringComparer.Ordinal); + + #endregion + + #region EditorVariables +#if UNITY_EDITOR + + public string Spreadsheet_LocalFileName; + public string Spreadsheet_LocalCSVSeparator = ","; + public string Spreadsheet_LocalCSVEncoding = "utf-8"; + public bool Spreadsheet_SpecializationAsRows = true; + +#endif + #endregion + + #region Language + + public void Awake() + { + LocalizationManager.AddSource (this); + UpdateDictionary(); + UpdateAssetDictionary(); + LocalizationManager.LocalizeAll(true); + } + + public void OnDestroy() + { + LocalizationManager.RemoveSource(this); + } + + + + public bool IsEqualTo( LanguageSourceData Source ) + { + if (Source.mLanguages.Count != mLanguages.Count) + return false; + + for (int i=0, imax=mLanguages.Count; i x == null); + mAssetDictionary = Assets.Distinct() + .GroupBy(o => o.name, System.StringComparer.Ordinal) + .ToDictionary(g => g.Key, g => g.First(), System.StringComparer.Ordinal); + } + + public Object FindAsset( string Name ) + { + if (Assets!=null) + { + if (mAssetDictionary==null || mAssetDictionary.Count!=Assets.Count) + { + UpdateAssetDictionary(); + } + Object obj; + if (mAssetDictionary.TryGetValue(Name, out obj)) + { + return obj; + } + //for (int i=0, imax=Assets.Length; i string.CompareOrdinal(a.Term, b.Term)); + + int nLanguages = mLanguages.Count; + bool firstLine = true; + foreach (TermData termData in mTerms) + { + string Term; + + if (string.IsNullOrEmpty(Category) || Category==EmptyCategory && termData.Term.IndexOfAny(CategorySeparators)<0) + Term = termData.Term; + else + if (termData.Term.StartsWith(Category + @"/", System.StringComparison.Ordinal) && Category!=termData.Term) + Term = termData.Term.Substring(Category.Length+1); + else + continue; // Term doesn't belong to this category + + + if (!firstLine) Builder.Append("[ln]"); + firstLine = false; + + if (!specializationsAsRows) + { + AppendI2Term(Builder, nLanguages, Term, termData, Separator, null); + } + else + { + var allSpecializations = termData.GetAllSpecializations(); + for (int i=0; i< allSpecializations.Count; ++i) + { + if (i!=0) + Builder.Append("[ln]"); + var specialization = allSpecializations[i]; + AppendI2Term(Builder, nLanguages, Term, termData, Separator, specialization); + } + } + + } + return Builder.ToString(); + } + + static void AppendI2Term( StringBuilder Builder, int nLanguages, string Term, TermData termData, char Separator, string forceSpecialization ) + { + //--[ Key ] -------------- + AppendI2Text(Builder, Term); + if (!string.IsNullOrEmpty(forceSpecialization) && forceSpecialization != "Any") + { + Builder.Append("["); + Builder.Append(forceSpecialization); + Builder.Append("]"); + } + Builder.Append ("[*]"); + + //--[ Type and Description ] -------------- + Builder.Append (termData.TermType.ToString()); + Builder.Append ("[*]"); + Builder.Append (termData.Description); + + //--[ Languages ] -------------- + for (int i=0; i0); + + /*if (translation == null) + translation = string.Empty; + else + if (translation == "") + translation = "-";*/ + //if (isAutoTranslated) Builder.Append("[i2auto]"); + AppendI2Text(Builder, translation); + } + } + + static void AppendI2Text(StringBuilder Builder, string text) + { + if (string.IsNullOrEmpty(text)) + return; + + if (text.StartsWith("\'", System.StringComparison.Ordinal) || text.StartsWith("=", System.StringComparison.Ordinal)) + Builder.Append('\''); + Builder.Append(text); + } + + + #endregion + + #region Language Cache format + + string Export_Language_to_Cache( int langIndex, bool fillTermWithFallback ) + { + if (!mLanguages[langIndex].IsLoaded()) + return null; + + StringBuilder sb = new StringBuilder(); + + for (int i=0; i 0) + sb.Append("[i2t]"); + var term = mTerms[i]; + sb.Append(term.Term); + sb.Append("="); + + string translation = term.Languages[langIndex]; + if (OnMissingTranslation==MissingTranslationAction.Fallback && string.IsNullOrEmpty(translation)) + { + if (TryGetFallbackTranslation(term, out translation, langIndex, skipDisabled: true)) + { + sb.Append("[i2fb]"); + if (fillTermWithFallback) term.Languages[langIndex] = translation; + } + } + if (!string.IsNullOrEmpty(translation)) + sb.Append(translation); + } + + return sb.ToString(); + } + + #endregion + + #region CSV format + + public string Export_CSV( string Category, char Separator = ',', bool specializationsAsRows = true) + { + StringBuilder Builder = new StringBuilder(); + + int nLanguages = mLanguages.Count; + Builder.AppendFormat ("Key{0}Type{0}Desc", Separator); + + foreach (LanguageData langData in mLanguages) + { + Builder.Append (Separator); + if (!langData.IsEnabled()) + Builder.Append('$'); + AppendString ( Builder, GoogleLanguages.GetCodedLanguage(langData.Name, langData.Code), Separator ); + } + Builder.Append ("\n"); + + + mTerms.Sort((a, b) => string.CompareOrdinal(a.Term, b.Term)); + + foreach (TermData termData in mTerms) + { + string Term; + + if (string.IsNullOrEmpty(Category) || Category==EmptyCategory && termData.Term.IndexOfAny(CategorySeparators)<0) + Term = termData.Term; + else + if (termData.Term.StartsWith(Category + @"/", System.StringComparison.Ordinal) && Category!=termData.Term) + Term = termData.Term.Substring(Category.Length+1); + else + continue; // Term doesn't belong to this category + + if (specializationsAsRows) + { + foreach (var specialization in termData.GetAllSpecializations()) + { + AppendTerm(Builder, nLanguages, Term, termData, specialization, Separator); + } + } + else + { + AppendTerm(Builder, nLanguages, Term, termData, null, Separator); + } + } + return Builder.ToString(); + } + + static void AppendTerm(StringBuilder Builder, int nLanguages, string Term, TermData termData, string specialization, char Separator) + { + //--[ Key ] -------------- + AppendString( Builder, Term, Separator ); + + if (!string.IsNullOrEmpty(specialization) && specialization!="Any") + Builder.AppendFormat( "[{0}]",specialization ); + + //--[ Type and Description ] -------------- + Builder.Append (Separator); + Builder.Append (termData.TermType.ToString()); + Builder.Append (Separator); + AppendString(Builder, termData.Description, Separator); + + //--[ Languages ] -------------- + for (int i=0; i0); + + //if (string.IsNullOrEmpty(s)) + // s = "-"; + + AppendTranslation(Builder, translation, Separator, /*isAutoTranslated ? "[i2auto]" : */null); + } + Builder.Append ("\n"); + } + + + static void AppendString( StringBuilder Builder, string Text, char Separator ) + { + if (string.IsNullOrEmpty(Text)) + return; + Text = Text.Replace ("\\n", "\n"); + if (Text.IndexOfAny((Separator+"\n\"").ToCharArray())>=0) + { + Text = Text.Replace("\"", "\"\""); + Builder.AppendFormat("\"{0}\"", Text); + } + else + { + Builder.Append (Text); + } + } + + static void AppendTranslation( StringBuilder Builder, string Text, char Separator, string tags ) + { + if (string.IsNullOrEmpty(Text)) + return; + Text = Text.Replace ("\\n", "\n"); + if (Text.IndexOfAny((Separator+"\n\"").ToCharArray())>=0) + { + Text = Text.Replace("\"", "\"\""); + Builder.AppendFormat("\"{0}{1}\"", tags, Text); + } + else + { + Builder.Append (tags); + Builder.Append (Text); + } + } + + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_CSV.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_CSV.cs.meta new file mode 100644 index 00000000..39b942db --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_CSV.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7a375153c79873c469c79a5b4f9027f3 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs new file mode 100644 index 00000000..a94eb3d5 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs @@ -0,0 +1,62 @@ +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.Networking; + +namespace I2.Loc +{ + public enum eSpreadsheetUpdateMode { None, Replace, Merge, AddNewTerms } + + public partial class LanguageSourceData + { + public UnityWebRequest Export_Google_CreateWWWcall( eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace ) + { + #if UNITY_WEBPLAYER + Debug.Log ("Contacting google translation is not yet supported on WebPlayer" ); + return null; +#else + string Data = Export_Google_CreateData(); + + WWWForm form = new WWWForm(); + form.AddField("key", Google_SpreadsheetKey); + form.AddField("action", "SetLanguageSource"); + form.AddField("data", Data); + form.AddField("updateMode", UpdateMode.ToString()); + + #if UNITY_EDITOR + form.AddField("password", Google_Password); +#endif + + + UnityWebRequest www = UnityWebRequest.Post(LocalizationManager.GetWebServiceURL(this), form); + I2Utils.SendWebRequest(www); + return www; + #endif + } + + string Export_Google_CreateData() + { + List Categories = GetCategories(true); + StringBuilder Builder = new StringBuilder(); + + bool bFirst = true; + foreach (string category in Categories) + { + if (bFirst) + bFirst = false; + else + Builder.Append(""); + + #if !UNITY_EDITOR + bool Spreadsheet_SpecializationAsRows = true; + #endif + + string CSV = Export_I2CSV(category, specializationsAsRows:Spreadsheet_SpecializationAsRows); + Builder.Append(category); + Builder.Append(""); + Builder.Append(CSV); + } + return Builder.ToString(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs.meta new file mode 100644 index 00000000..65aa2700 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Export_Google.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 86f9d1c7a0c3815419fc67a9d657ce40 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs new file mode 100644 index 00000000..889be0bb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs @@ -0,0 +1,253 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public partial class LanguageSourceData + { + public string Import_CSV( string Category, string CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace, char Separator = ',' ) + { + List CSV = LocalizationReader.ReadCSV (CSVstring, Separator); + return Import_CSV( Category, CSV, UpdateMode ); + } + + public string Import_I2CSV( string Category, string I2CSVstring, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace ) + { + List CSV = LocalizationReader.ReadI2CSV (I2CSVstring); + return Import_CSV( Category, CSV, UpdateMode ); + } + + public string Import_CSV( string Category, List CSV, eSpreadsheetUpdateMode UpdateMode = eSpreadsheetUpdateMode.Replace ) + { + string[] Tokens = CSV[0]; + + int LanguagesStartIdx = 1; + int TypeColumnIdx = -1; + int DescColumnIdx = -1; + + var ValidColumnName_Key = new[]{ "Key" }; + var ValidColumnName_Type = new[]{ "Type" }; + var ValidColumnName_Desc = new[]{ "Desc", "Description" }; + + if (Tokens.Length>1 && ArrayContains(Tokens[0], ValidColumnName_Key)) + { + if (UpdateMode == eSpreadsheetUpdateMode.Replace) + ClearAllData(); + + if (Tokens.Length>2) + { + if (ArrayContains(Tokens[1], ValidColumnName_Type)) + { + TypeColumnIdx = 1; + LanguagesStartIdx = 2; + } + if (ArrayContains(Tokens[1], ValidColumnName_Desc)) + { + DescColumnIdx = 1; + LanguagesStartIdx = 2; + } + + } + if (Tokens.Length>3) + { + if (ArrayContains(Tokens[2], ValidColumnName_Type)) + { + TypeColumnIdx = 2; + LanguagesStartIdx = 3; + } + if (ArrayContains(Tokens[2], ValidColumnName_Desc)) + { + DescColumnIdx = 2; + LanguagesStartIdx = 3; + } + } + } + else + return "Bad Spreadsheet Format.\nFirst columns should be 'Key', 'Type' and 'Desc'"; + + int nLanguages = Mathf.Max (Tokens.Length-LanguagesStartIdx, 0); + int[] LanIndices = new int[nLanguages]; + for (int i=0; i0) + { + specialization = sKey.Substring(idx + 1, sKey.Length - idx - 2); + if (specialization == "touch") specialization = "Touch"; + sKey = sKey.Remove(idx); + } + } + ValidateFullTerm(ref sKey); + if (string.IsNullOrEmpty(sKey)) + continue; + + TermData termData = GetTermData(sKey); + + // Check to see if its a new term + if (termData==null) + { + termData = new TermData(); + termData.Term = sKey; + + termData.Languages = new string[ mLanguages.Count ]; + termData.Flags = new byte[ mLanguages.Count ]; + for (int j=0; j0) + termData.TermType = GetTermType(Tokens[TypeColumnIdx]); + + if (DescColumnIdx>0) + termData.Description = Tokens[DescColumnIdx]; + + for (int j = 0; j < LanIndices.Length && j < Tokens.Length - LanguagesStartIdx; ++j) + if (!string.IsNullOrEmpty(Tokens[j + LanguagesStartIdx])) // Only change the translation if there is a new value + { + var lanIdx = LanIndices[j]; + if (lanIdx < 0) + continue; + var value = Tokens[j + LanguagesStartIdx]; + + if (value == "-") + value = string.Empty; + else + if (value == "") + value = null; + + termData.SetTranslation(lanIdx, value, specialization); + } + } + if (Application.isPlaying) + { + SaveLanguages(HasUnloadedLanguages()); + } + return string.Empty; + } + + bool ArrayContains( string MainText, params string[] texts ) + { + for (int i=0, imax=texts.Length; i=0) + return true; + return false; + } + + public static eTermType GetTermType( string type ) + { + for (int i=0, imax=(int)eTermType.Object; i<=imax; ++i) + if (string.Equals( ((eTermType)i).ToString(), type, StringComparison.OrdinalIgnoreCase)) + return (eTermType)i; + + return eTermType.Text; + } + + #region Language Cache format + + void Import_Language_from_Cache(int langIndex, string langData, bool useFallback, bool onlyCurrentSpecialization) + { + int index = 0; + while (index < langData.Length) + { + int nextIndex = langData.IndexOf("[i2t]", index, StringComparison.Ordinal); + if (nextIndex < 0) nextIndex = langData.Length; + + // check for errors + int termNameEnd = langData.IndexOf("=", index, StringComparison.Ordinal); + if (termNameEnd >= nextIndex) + return; + + string termName = langData.Substring(index, termNameEnd - index); + index = termNameEnd+1; + + var termData = GetTermData(termName); + if (termData != null) + { + string translation = null; + + if (index != nextIndex) + { + translation = langData.Substring(index, nextIndex - index); + if (translation.StartsWith("[i2fb]", StringComparison.Ordinal)) + { + translation = useFallback ? translation.Substring(6) : null; + } + if (onlyCurrentSpecialization && translation != null) + { + translation = SpecializationManager.GetSpecializedText(translation); + } + } + termData.Languages[langIndex] = translation; + } + index = nextIndex + 5; + } + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs.meta new file mode 100644 index 00000000..7c86dd83 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_CSV.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6dfd98b5473aa1a49b82726182b50d08 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs new file mode 100644 index 00000000..33e7dd18 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs @@ -0,0 +1,386 @@ +using System; +using System.Collections; +using System.Text; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.SceneManagement; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public partial class LanguageSourceData + { + private string mDelayedGoogleData; // Data that was downloaded and is waiting for a levelLoaded event to apply the localization without a lag in performance + #region Connection to Web Service + + public static void FreeUnusedLanguages() + { + var source = LocalizationManager.Sources[0]; + int langIndex = source.GetLanguageIndex(LocalizationManager.CurrentLanguage); + + for (int i=0; i 19) // Check for corruption from previous versions + savedSpreadsheetVersion = string.Empty; + Google_LastUpdatedVersion = savedSpreadsheetVersion; + + //Debug.Log ("[I2Loc] Using Saved (PlayerPref) data in 'I2Source_"+PlayerPrefName+"'" ); + Import_Google_Result(I2SavedData, eSpreadsheetUpdateMode.Replace); + } + + bool IsNewerVersion( string currentVersion, string newVersion ) + { + if (string.IsNullOrEmpty (newVersion)) // if no new version + return false; + if (string.IsNullOrEmpty (currentVersion)) // there is a new version, but not a current one + return true; + + long currentV, newV; + if (!long.TryParse (newVersion, out newV) || !long.TryParse (currentVersion, out currentV)) // if can't parse either, then force get the new one + return true; + + return newV > currentV; + } + + // When JustCheck is true, importing from google will not download any data, just detect if the Spreadsheet is up-to-date + public void Import_Google( bool ForceUpdate, bool justCheck) + { + if (!ForceUpdate && GoogleUpdateFrequency==eGoogleUpdateFrequency.Never) + return; + + if (!I2Utils.IsPlaying()) + return; + + #if UNITY_EDITOR + if (justCheck && GoogleInEditorCheckFrequency==eGoogleUpdateFrequency.Never) + return; + #endif + + #if UNITY_EDITOR + var updateFrequency = GoogleInEditorCheckFrequency; + #else + var updateFrequency = GoogleUpdateFrequency; + #endif + + string PlayerPrefName = GetSourcePlayerPrefName(); + + if (!ForceUpdate && updateFrequency != eGoogleUpdateFrequency.Always) + { + #if UNITY_EDITOR + string sTimeOfLastUpdate = EditorPrefs.GetString("LastGoogleUpdate_"+PlayerPrefName, ""); + #else + string sTimeOfLastUpdate = PersistentStorage.GetSetting_String("LastGoogleUpdate_"+PlayerPrefName, ""); + #endif + DateTime TimeOfLastUpdate; + try + { + if (DateTime.TryParse( sTimeOfLastUpdate, out TimeOfLastUpdate )) + { + double TimeDifference = (DateTime.Now-TimeOfLastUpdate).TotalDays; + switch (updateFrequency) + { + case eGoogleUpdateFrequency.Daily: if (TimeDifference<1) return; + break; + case eGoogleUpdateFrequency.Weekly: if (TimeDifference<8) return; + break; + case eGoogleUpdateFrequency.Monthly: if (TimeDifference<31) return; + break; + case eGoogleUpdateFrequency.OnlyOnce: return; + case eGoogleUpdateFrequency.EveryOtherDay : if (TimeDifference < 2) return; + break; + } + } + } + catch(Exception) + { } + } + #if UNITY_EDITOR + EditorPrefs.SetString("LastGoogleUpdate_" + PlayerPrefName, DateTime.Now.ToString()); + #else + PersistentStorage.SetSetting_String("LastGoogleUpdate_"+PlayerPrefName, DateTime.Now.ToString()); + #endif + + //--[ Checking google for updated data ]----------------- + CoroutineManager.Start(Import_Google_Coroutine(justCheck)); + } + + string GetSourcePlayerPrefName() + { + if (owner == null) + return null; + string sourceName = (owner as Object).name; + if (!string.IsNullOrEmpty(Google_SpreadsheetKey)) + { + sourceName += Google_SpreadsheetKey; + } + // If its a global source, use its name, otherwise, use the name and the level it is in + if (Array.IndexOf(LocalizationManager.GlobalSources, (owner as Object).name)>=0) + return sourceName; +#if UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9 || UNITY_5_0 || UNITY_5_1 || UNITY_5_2 + return Application.loadedLevelName + "_" + sourceName; +#else + return SceneManager.GetActiveScene().name+"_"+ sourceName; +#endif + } + + IEnumerator Import_Google_Coroutine(bool JustCheck) + { + UnityWebRequest www = Import_Google_CreateWWWcall(false, JustCheck); + if (www==null) + yield break; + + while (!www.isDone) + yield return null; + + //Debug.Log ("Google Result: " + www.text); + bool notError = string.IsNullOrEmpty(www.error); + string wwwText = null; + + if (notError) + { + var bytes = www.downloadHandler.data; + wwwText = Encoding.UTF8.GetString(bytes, 0, bytes.Length); //www.text + + bool isEmpty = string.IsNullOrEmpty(wwwText) || wwwText == "\"\""; + + if (JustCheck) + { + if (!isEmpty) + { + Debug.LogWarning("Spreadsheet is not up-to-date and Google Live Synchronization is enabled\nWhen playing in the device the Spreadsheet will be downloaded and translations may not behave as what you see in the editor.\nTo fix this, Import or Export replace to Google"); + GoogleLiveSyncIsUptoDate = false; + } + + yield break; + } + + if (!isEmpty) + { + mDelayedGoogleData = wwwText; + + switch (GoogleUpdateSynchronization) + { + case eGoogleUpdateSynchronization.AsSoonAsDownloaded: + { + ApplyDownloadedDataFromGoogle(); + break; + } + case eGoogleUpdateSynchronization.Manual: + break; + case eGoogleUpdateSynchronization.OnSceneLoaded: + { + SceneManager.sceneLoaded += ApplyDownloadedDataOnSceneLoaded; + break; + } + } + + yield break; + } + } + + if (Event_OnSourceUpdateFromGoogle != null) + Event_OnSourceUpdateFromGoogle(this, false, www.error); + + Debug.Log("Language Source was up-to-date with Google Spreadsheet"); + } + + void ApplyDownloadedDataOnSceneLoaded(Scene scene, LoadSceneMode mode) + { + SceneManager.sceneLoaded -= ApplyDownloadedDataOnSceneLoaded; + ApplyDownloadedDataFromGoogle(); + } + + public void ApplyDownloadedDataFromGoogle() + { + if (string.IsNullOrEmpty(mDelayedGoogleData)) + return; + + var errorMsg = Import_Google_Result(mDelayedGoogleData, eSpreadsheetUpdateMode.Replace, true); + if (string.IsNullOrEmpty(errorMsg)) + { + if (Event_OnSourceUpdateFromGoogle != null) + Event_OnSourceUpdateFromGoogle(this, true, ""); + + LocalizationManager.LocalizeAll(true); + Debug.Log("Done Google Sync"); + } + else + { + if (Event_OnSourceUpdateFromGoogle != null) + Event_OnSourceUpdateFromGoogle(this, false, ""); + + Debug.Log("Done Google Sync: source was up-to-date"); + } + } + + public UnityWebRequest Import_Google_CreateWWWcall( bool ForceUpdate, bool justCheck ) + { + if (!HasGoogleSpreadsheet()) + return null; + + string savedVersion = PersistentStorage.GetSetting_String("I2SourceVersion_"+GetSourcePlayerPrefName(), Google_LastUpdatedVersion); + if (savedVersion.Length > 19) // Check for corruption + savedVersion= string.Empty; + +#if !UNITY_EDITOR + if (IsNewerVersion(savedVersion, Google_LastUpdatedVersion)) + Google_LastUpdatedVersion = savedVersion; +#endif + + string query = string.Format("{0}?key={1}&action=GetLanguageSource&version={2}", + LocalizationManager.GetWebServiceURL(this), + Google_SpreadsheetKey, + ForceUpdate ? "0" : Google_LastUpdatedVersion); +#if UNITY_EDITOR + if (justCheck) + { + query += "&justcheck=true"; + } +#endif + UnityWebRequest www = UnityWebRequest.Get(query); + I2Utils.SendWebRequest(www); + return www; + } + + public bool HasGoogleSpreadsheet() + { + return !string.IsNullOrEmpty(Google_WebServiceURL) && !string.IsNullOrEmpty(Google_SpreadsheetKey) && + !string.IsNullOrEmpty(LocalizationManager.GetWebServiceURL(this)); + } + + public string Import_Google_Result( string JsonString, eSpreadsheetUpdateMode UpdateMode, bool saveInPlayerPrefs = false ) + { + try + { + string ErrorMsg = string.Empty; + if (string.IsNullOrEmpty(JsonString) || JsonString == "\"\"") + { + return ErrorMsg; + } + + int idxV = JsonString.IndexOf("version=", StringComparison.Ordinal); + int idxSV = JsonString.IndexOf("script_version=", StringComparison.Ordinal); + if (idxV < 0 || idxSV < 0) + { + return "Invalid Response from Google, Most likely the WebService needs to be updated"; + } + + idxV += "version=".Length; + idxSV += "script_version=".Length; + + string newSpreadsheetVersion = JsonString.Substring(idxV, JsonString.IndexOf(",", idxV, StringComparison.Ordinal) - idxV); + var scriptVersion = int.Parse(JsonString.Substring(idxSV, JsonString.IndexOf(",", idxSV, StringComparison.Ordinal) - idxSV)); + + if (newSpreadsheetVersion.Length > 19) // Check for corruption + newSpreadsheetVersion = string.Empty; + + if (scriptVersion != LocalizationManager.GetRequiredWebServiceVersion()) + { + return "The current Google WebService is not supported.\nPlease, delete the WebService from the Google Drive and Install the latest version."; + } + + //Debug.Log (Google_LastUpdatedVersion + " - " + newSpreadsheetVersion); + if (saveInPlayerPrefs && !IsNewerVersion(Google_LastUpdatedVersion, newSpreadsheetVersion)) +#if UNITY_EDITOR + return ""; +#else + return "LanguageSource is up-to-date"; +#endif + + if (saveInPlayerPrefs) + { + string PlayerPrefName = GetSourcePlayerPrefName(); + PersistentStorage.SaveFile(PersistentStorage.eFileType.Persistent, "I2Source_" + PlayerPrefName + ".loc", "[i2e]" + StringObfucator.Encode(JsonString)); + PersistentStorage.SetSetting_String("I2SourceVersion_" + PlayerPrefName, newSpreadsheetVersion); + PersistentStorage.ForceSaveSettings(); + } + Google_LastUpdatedVersion = newSpreadsheetVersion; + + if (UpdateMode == eSpreadsheetUpdateMode.Replace) + ClearAllData(); + + int CSVstartIdx = JsonString.IndexOf("[i2category]", StringComparison.Ordinal); + while (CSVstartIdx > 0) + { + CSVstartIdx += "[i2category]".Length; + int endCat = JsonString.IndexOf("[/i2category]", CSVstartIdx, StringComparison.Ordinal); + string category = JsonString.Substring(CSVstartIdx, endCat - CSVstartIdx); + endCat += "[/i2category]".Length; + + int endCSV = JsonString.IndexOf("[/i2csv]", endCat, StringComparison.Ordinal); + string csv = JsonString.Substring(endCat, endCSV - endCat); + + CSVstartIdx = JsonString.IndexOf("[i2category]", endCSV, StringComparison.Ordinal); + + Import_I2CSV(category, csv, UpdateMode); + + // Only the first CSV should clear the Data + if (UpdateMode == eSpreadsheetUpdateMode.Replace) + UpdateMode = eSpreadsheetUpdateMode.Merge; + } + + GoogleLiveSyncIsUptoDate = true; + if (I2Utils.IsPlaying()) + { + SaveLanguages(true); + } + + if (!string.IsNullOrEmpty(ErrorMsg)) + Editor_SetDirty(); + return ErrorMsg; + } + catch (Exception e) + { + Debug.LogWarning(e); + return e.ToString(); + } + } + +#endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs.meta new file mode 100644 index 00000000..336c8739 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Import_Google.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 637497c3e1b8b944e9a645fe50e27401 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs new file mode 100644 index 00000000..437d770d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs @@ -0,0 +1,329 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace I2.Loc +{ + public partial class LanguageSourceData + { + #region Language + + public int GetLanguageIndex( string language, bool AllowDiscartingRegion = true, bool SkipDisabled = true) + { + // First look for an exact match + for (int i=0, imax=mLanguages.Count; iBestSimilitud) + { + BestSimilitud = commonWords; + MostSimilar = i; + } + //if (AreTheSameLanguage(mLanguages[i].Name, language)) + // return i; + } + if (MostSimilar>=0) + return MostSimilar; + } + return -1; + } + + public LanguageData GetLanguageData(string language, bool AllowDiscartingRegion = true) + { + int idx = GetLanguageIndex(language, AllowDiscartingRegion, false); + return idx < 0 ? null : mLanguages[idx]; + } + + // TODO: Fix IsCurrentLanguage when current=English and there are two variants in the source (English Canada, English US) + public bool IsCurrentLanguage( int languageIndex ) + { + return LocalizationManager.CurrentLanguage == mLanguages[languageIndex].Name; + } + + public int GetLanguageIndexFromCode( string Code, bool exactMatch=true, bool ignoreDisabled = false) + { + for (int i = 0, imax = mLanguages.Count; i < imax; ++i) + { + if (ignoreDisabled && !mLanguages[i].IsEnabled()) + continue; + + if (string.Compare(mLanguages[i].Code, Code, StringComparison.OrdinalIgnoreCase) == 0) + return i; + } + + if (!exactMatch) + { + // Find any match without using the Regions + for (int i = 0, imax = mLanguages.Count; i < imax; ++i) + { + if (ignoreDisabled && !mLanguages[i].IsEnabled()) + continue; + + if (string.Compare(mLanguages[i].Code, 0, Code, 0, 2, StringComparison.OrdinalIgnoreCase) == 0) + return i; + } + } + + return -1; + } + + public static int GetCommonWordInLanguageNames(string Language1, string Language2) + { + if (string.IsNullOrEmpty (Language1) || string.IsNullOrEmpty (Language2)) + return 0; + var separators = "( )-/\\".ToCharArray(); + string[] Words1 = Language1.ToLower().Split(separators); + string[] Words2 = Language2.ToLower().Split(separators); + + int similitud = 0; + foreach (var word in Words1) + if (!string.IsNullOrEmpty(word) && Words2.Contains(word)) + similitud++; + + foreach (var word in Words2) + if (!string.IsNullOrEmpty(word) && Words1.Contains(word)) + similitud++; + + return similitud; + } + + public static bool AreTheSameLanguage(string Language1, string Language2) + { + Language1 = GetLanguageWithoutRegion(Language1); + Language2 = GetLanguageWithoutRegion(Language2); + return string.Compare(Language1, Language2, StringComparison.OrdinalIgnoreCase)==0; + } + + public static string GetLanguageWithoutRegion(string Language) + { + int Index = Language.IndexOfAny("(/\\[,{".ToCharArray()); + if (Index<0) + return Language; + return Language.Substring(0, Index).Trim(); + } + + public void AddLanguage(string LanguageName) + { + AddLanguage(LanguageName, GoogleLanguages.GetLanguageCode(LanguageName)); + } + + public void AddLanguage( string LanguageName, string LanguageCode ) + { + if (GetLanguageIndex(LanguageName, false)>=0) + return; + + LanguageData Lang = new LanguageData(); + Lang.Name = LanguageName; + Lang.Code = LanguageCode; + mLanguages.Add (Lang); + + int NewSize = mLanguages.Count; + for (int i=0, imax=mTerms.Count; i GetLanguages( bool skipDisabled = true) + { + List Languages = new List(); + for (int j = 0, jmax = mLanguages.Count; j < jmax; ++j) + { + if (!skipDisabled || mLanguages[j].IsEnabled()) + Languages.Add(mLanguages[j].Name); + } + return Languages; + } + + public List GetLanguagesCode(bool allowRegions = true, bool skipDisabled = true) + { + List Languages = new List(); + for (int j = 0, jmax = mLanguages.Count; j < jmax; ++j) + { + if (skipDisabled && !mLanguages[j].IsEnabled()) + continue; + + var code = mLanguages[j].Code; + + if (!allowRegions && code != null && code.Length > 2) + code = code.Substring(0, 2); + + if (!string.IsNullOrEmpty(code) && !Languages.Contains(code)) + Languages.Add(code); + } + return Languages; + } + + public bool IsLanguageEnabled(string Language) + { + int idx = GetLanguageIndex(Language, false); + return idx >= 0 && mLanguages[idx].IsEnabled(); + } + + public void EnableLanguage(string Language, bool bEnabled) + { + int idx = GetLanguageIndex(Language, false, false); + if (idx >= 0) + mLanguages[idx].SetEnabled(bEnabled); + } + + #endregion + + #region Save/Load Language + + public bool AllowUnloadingLanguages() + { + #if UNITY_EDITOR + return _AllowUnloadingLanguages==eAllowUnloadLanguages.EditorAndDevice; + #else + return _AllowUnloadingLanguages!=eAllowUnloadLanguages.Never; + #endif + } + + string GetSavedLanguageFileName(int languageIndex) + { + if (languageIndex < 0) + return null; + + return "LangSource_" + GetSourcePlayerPrefName() + "_" + mLanguages[languageIndex].Name + ".loc"; + } + public void LoadLanguage( int languageIndex, bool UnloadOtherLanguages, bool useFallback, bool onlyCurrentSpecialization, bool forceLoad ) + { + if (!AllowUnloadingLanguages()) + return; + + // Some consoles don't allow IO access + if (!PersistentStorage.CanAccessFiles()) + return; + + if (languageIndex >= 0 && (forceLoad || !mLanguages[languageIndex].IsLoaded())) + { + var tempPath = GetSavedLanguageFileName(languageIndex); + var langData = PersistentStorage.LoadFile(PersistentStorage.eFileType.Temporal, tempPath, false); + + if (!string.IsNullOrEmpty(langData)) + { + Import_Language_from_Cache(languageIndex, langData, useFallback, onlyCurrentSpecialization); + mLanguages[languageIndex].SetLoaded(true); + } + } + if (UnloadOtherLanguages && I2Utils.IsPlaying()) + { + for (int lan = 0; lan < mLanguages.Count; ++lan) + { + if (lan != languageIndex) + UnloadLanguage(lan); + } + } + } + + // if forceLoad, then the language is loaded from the cache even if its already loaded + // this is needed to cleanup fallbacks + public void LoadAllLanguages(bool forceLoad=false) + { + for (int i = 0; i < mLanguages.Count; ++i) + { + LoadLanguage(i, false, false, false, forceLoad); + } + } + + public void UnloadLanguage(int languageIndex) + { + if (!AllowUnloadingLanguages()) + return; + + // Some consoles don't allow IO access + if (!PersistentStorage.CanAccessFiles()) + return; + + if (!I2Utils.IsPlaying() || + !mLanguages[languageIndex].IsLoaded() || + !mLanguages[languageIndex].CanBeUnloaded() || + IsCurrentLanguage(languageIndex) || + !PersistentStorage.HasFile(PersistentStorage.eFileType.Temporal, GetSavedLanguageFileName(languageIndex))) + { + return; + } + + foreach (var termData in mTerms) + { + termData.Languages[languageIndex] = null; + } + mLanguages[languageIndex].SetLoaded(false); + } + + public void SaveLanguages( bool unloadAll, PersistentStorage.eFileType fileLocation = PersistentStorage.eFileType.Temporal) + { + if (!AllowUnloadingLanguages()) + return; + + // Some consoles don't allow IO access + if (!PersistentStorage.CanAccessFiles()) + return; + + for (int i = 0; i < mLanguages.Count; ++i) + { + var data = Export_Language_to_Cache(i, IsCurrentLanguage(i)); + if (string.IsNullOrEmpty(data)) + continue; + + PersistentStorage.SaveFile(PersistentStorage.eFileType.Temporal, GetSavedLanguageFileName(i), data); + } + + if (unloadAll) + { + for (int i = 0; i < mLanguages.Count; ++i) + { + if (unloadAll && !IsCurrentLanguage(i)) + UnloadLanguage(i); + } + } + } + + public bool HasUnloadedLanguages() + { + for (int i = 0; i < mLanguages.Count; ++i) + { + if (!mLanguages[i].IsLoaded()) + return true; + } + return false; + + } +#endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs.meta new file mode 100644 index 00000000..c8f0b8c8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Languages.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3c8d05bf03c50f64eb591ea1499fae82 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs new file mode 100644 index 00000000..3ed49a2e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs @@ -0,0 +1,67 @@ +using System.Collections.Generic; + +namespace I2.Loc +{ + public partial class LanguageSourceData + { + public static string EmptyCategory = "Default"; + public static char[] CategorySeparators = "/\\".ToCharArray(); + + #region Keys + + public List GetCategories( bool OnlyMainCategory = false, List Categories = null ) + { + if (Categories==null) + Categories = new List(); + + foreach (TermData data in mTerms) + { + string sCategory = GetCategoryFromFullTerm( data.Term, OnlyMainCategory ); + if (!Categories.Contains(sCategory)) + Categories.Add(sCategory); + } + Categories.Sort(); + return Categories; + } + + public static string GetKeyFromFullTerm( string FullTerm, bool OnlyMainCategory = false ) + { + int Index = OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) : + FullTerm.LastIndexOfAny(CategorySeparators); + + return Index<0 ? FullTerm :FullTerm.Substring(Index+1); + } + + public static string GetCategoryFromFullTerm( string FullTerm, bool OnlyMainCategory = false ) + { + int Index = OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) : + FullTerm.LastIndexOfAny(CategorySeparators); + + return Index<0 ? EmptyCategory : FullTerm.Substring(0, Index); + } + + public static void DeserializeFullTerm( string FullTerm, out string Key, out string Category, bool OnlyMainCategory = false ) + { + int Index = OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) : + FullTerm.LastIndexOfAny(CategorySeparators); + + if (Index<0) + { + Category = EmptyCategory; + Key = FullTerm; + } + else + { + Category = FullTerm.Substring(0, Index); + Key = FullTerm.Substring(Index+1); + } + } + + #endregion + + #region Misc + + #endregion + + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs.meta new file mode 100644 index 00000000..47ca03b3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Misc.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: eaa919dd06da3464082b8f16759a5b16 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs new file mode 100644 index 00000000..7776e85a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; + +namespace I2.Loc +{ + public partial class LanguageSourceData + { + #region Language + + public void UpdateDictionary(bool force = false) + { + if (!force && mDictionary != null && mDictionary.Count == mTerms.Count) + return; + + StringComparer comparer = CaseInsensitiveTerms ? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal; + if (mDictionary.Comparer != comparer) + mDictionary = new Dictionary(comparer); + else + mDictionary.Clear(); + + for (int i = 0, imax = mTerms.Count; i < imax; ++i) + { + var termData = mTerms[i]; + ValidateFullTerm(ref termData.Term); + + mDictionary[termData.Term]= mTerms[i]; + mTerms[i].Validate(); + } + + if (I2Utils.IsPlaying()) + { + SaveLanguages(true); + } + } + + public string GetTranslation (string term, string overrideLanguage = null, string overrideSpecialization = null, bool skipDisabled = false, bool allowCategoryMistmatch = false) + { + string Translation; + if (TryGetTranslation(term, out Translation, overrideLanguage:overrideLanguage, overrideSpecialization:overrideSpecialization, skipDisabled:skipDisabled, allowCategoryMistmatch:allowCategoryMistmatch)) + return Translation; + + return string.Empty; + } + + public bool TryGetTranslation (string term, out string Translation, string overrideLanguage=null, string overrideSpecialization=null, bool skipDisabled=false, bool allowCategoryMistmatch=false) + { + int Index = GetLanguageIndex( overrideLanguage==null ? LocalizationManager.CurrentLanguage : overrideLanguage, SkipDisabled: false ); + + if (Index>=0 && (!skipDisabled || mLanguages[Index].IsEnabled())) + { + TermData data = GetTermData(term, allowCategoryMistmatch:allowCategoryMistmatch); + if (data!=null) + { + Translation = data.GetTranslation(Index, overrideSpecialization, editMode:true); + + // "---" is a code to define that the translation is meant to be empty + if (Translation == "---") + { + Translation = string.Empty; + return true; + } + + if (!string.IsNullOrEmpty(Translation)) + { + // has a valid translation + return true; + } + + Translation = null; + } + + if (OnMissingTranslation == MissingTranslationAction.ShowWarning) + { + Translation = $""; + return true; + } + + if (OnMissingTranslation == MissingTranslationAction.Fallback && data!=null) + { + return TryGetFallbackTranslation(data, out Translation, Index, overrideSpecialization, skipDisabled); + } + + if (OnMissingTranslation == MissingTranslationAction.Empty) + { + Translation = string.Empty; + return true; + } + + if (OnMissingTranslation == MissingTranslationAction.ShowTerm) + { + Translation = term; + return true; + } + + } + + Translation = null; + return false; + } + + bool TryGetFallbackTranslation(TermData termData, out string Translation, int langIndex, string overrideSpecialization = null, bool skipDisabled = false) + { + // Find base Language Code + string baseLanguage = mLanguages[langIndex].Code; + if (!string.IsNullOrEmpty(baseLanguage)) + { + if (baseLanguage.Contains('-')) + { + baseLanguage = baseLanguage.Substring(0, baseLanguage.IndexOf('-')); + } + + // Try finding in any of the Region of the base language + for (int i = 0; i < mLanguages.Count; ++i) + { + if (i != langIndex && + mLanguages[i].Code.StartsWith(baseLanguage, StringComparison.Ordinal) && + (!skipDisabled || mLanguages[i].IsEnabled()) ) + { + Translation = termData.GetTranslation(i, overrideSpecialization, editMode: true); + if (!string.IsNullOrEmpty(Translation)) + return true; + } + } + } + + + // Otherwise, Try finding the first active language with a valid translation + for (int i = 0; i < mLanguages.Count; ++i) + { + if (i!=langIndex && + (!skipDisabled || mLanguages[i].IsEnabled()) && + (baseLanguage==null || !mLanguages[i].Code.StartsWith(baseLanguage, StringComparison.Ordinal))) + { + Translation = termData.GetTranslation(i, overrideSpecialization, editMode: true); + if (!string.IsNullOrEmpty(Translation)) + return true; + } + } + Translation = null; + return false; + } + + public TermData AddTerm( string term ) + { + return AddTerm (term, eTermType.Text); + } + + public TermData GetTermData( string term, bool allowCategoryMistmatch = false) + { + if (string.IsNullOrEmpty(term)) + return null; + + if (mDictionary.Count==0)// != mTerms.Count) + UpdateDictionary(); + + TermData data; + if (mDictionary.TryGetValue(term, out data)) + return data; + + TermData d = null; + if (allowCategoryMistmatch) + { + var keyPart = GetKeyFromFullTerm (term); + foreach (var kvp in mDictionary) + if (kvp.Value.IsTerm (keyPart, true)) + { + if (d == null) + d = kvp.Value; + else + return null; + } + } + return d; + } + + public bool ContainsTerm(string term) + { + return GetTermData(term)!=null; + } + + public List GetTermsList ( string Category = null ) + { + if (mDictionary.Count != mTerms.Count) + UpdateDictionary(); + if (string.IsNullOrEmpty( Category )) + return new List( mDictionary.Keys ); + var terms = new List(); + for (int i=0; iEmptyCategory.Length && Term[EmptyCategory.Length]=='/') + Term = Term.Substring(EmptyCategory.Length+1); + } + Term = I2Utils.GetValidTermName(Term, true); + } + + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs.meta new file mode 100644 index 00000000..640162a8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LanguageSource/LanguageSourceData_Terms.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f55c00558b2b4f94086c04e47d98a645 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs b/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs new file mode 100644 index 00000000..4c6ffdd0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs @@ -0,0 +1,243 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using UnityEngine; + +namespace I2.Loc +{ + public class LocalizationReader + { + #region Dictionary Assets + + public static Dictionary ReadTextAsset( TextAsset asset ) + { + string Text = Encoding.UTF8.GetString (asset.bytes, 0, asset.bytes.Length); + Text = Text.Replace("\r\n", "\n"); + Text = Text.Replace("\r", "\n"); + StringReader reader = new StringReader(Text); + + string s; + Dictionary Dict = new Dictionary(StringComparer.Ordinal); + while ( (s=reader.ReadLine()) != null ) + { + string Key, Value, Category, TermType, Comment; + if (!TextAsset_ReadLine(s, out Key, out Value, out Category, out Comment, out TermType)) + continue; + + if (!string.IsNullOrEmpty(Key) && !string.IsNullOrEmpty(Value)) + Dict[Key]=Value; + } + return Dict; + } + + public static bool TextAsset_ReadLine( string line, out string key, out string value, out string category, out string comment, out string termType ) + { + key = string.Empty; + category= string.Empty; + comment = string.Empty; + termType= string.Empty; + value = string.Empty; + + //--[ Comment ]----------------------- + int iComment = line.LastIndexOf("//", StringComparison.Ordinal); + if (iComment>=0) + { + comment = line.Substring(iComment+2).Trim(); + comment = DecodeString(comment); + line = line.Substring(0, iComment); + } + + //--[ Key ]----------------------------- + int iKeyEnd = line.IndexOf("=", StringComparison.Ordinal); + if (iKeyEnd<0) + { + return false; + } + + key = line.Substring(0, iKeyEnd).Trim(); + value = line.Substring(iKeyEnd+1).Trim(); + value = value.Replace ("\r\n", "\n").Replace ("\n", "\\n"); + value = DecodeString(value); + + //--[ Type ]--------- + if (key.Length>2 && key[0]=='[') + { + int iTypeEnd = key.IndexOf(']'); + if (iTypeEnd>=0) + { + termType = key.Substring(1, iTypeEnd-1); + key = key.Substring(iTypeEnd+1); + } + } + + ValidateFullTerm( ref key ); + + return true; + } + + #endregion + + #region CSV + public static string ReadCSVfile( string Path, Encoding encoding ) + { + string Text = string.Empty; + #if (UNITY_WP8 || UNITY_METRO) && !UNITY_EDITOR + byte[] buffer = UnityEngine.Windows.File.ReadAllBytes (Path); + Text = Encoding.UTF8.GetString(buffer, 0, buffer.Length); + #else + /*using (System.IO.StreamReader reader = System.IO.File.OpenText(Path)) + { + Text = reader.ReadToEnd(); + }*/ + using (var reader = new StreamReader(Path, encoding )) + Text = reader.ReadToEnd(); + #endif + + Text = Text.Replace("\r\n", "\n"); + Text = Text.Replace("\r", "\n"); + + return Text; + } + + public static List ReadCSV( string Text, char Separator=',' ) + { + int iStart = 0; + List CSV = new List(); + + while (iStart < Text.Length) + { + string[] list = ParseCSVline (Text, ref iStart, Separator); + if (list==null) break; + CSV.Add(list); + } + return CSV; + } + + static string[] ParseCSVline( string Line, ref int iStart, char Separator ) + { + List list = new List(); + + //Line = "puig,\"placeres,\"\"cab\nr\nera\"\"algo\"\npuig";//\"Frank\npuig\nplaceres\",aaa,frank\nplaceres"; + + int TextLength = Line.Length; + int iWordStart = iStart; + bool InsideQuote = false; + + while (iStart < TextLength) + { + char c = Line[iStart]; + + if (InsideQuote) + { + if (c=='\"') //--[ Look for Quote End ]------------ + { + if (iStart+1 >= TextLength || Line[iStart+1] != '\"') //-- Single Quote: Quotation Ends + { + InsideQuote = false; + } + else + if (iStart+2 < TextLength && Line[iStart+2]=='\"') //-- Tripple Quotes: Quotation ends + { + InsideQuote = false; + iStart+=2; + } + else + iStart++; // Skip Double Quotes + } + } + + else //-----[ Separators ]---------------------- + + if (c=='\n' || c==Separator) + { + AddCSVtoken(ref list, ref Line, iStart, ref iWordStart); + if (c=='\n') // Stop the row on line breaks + { + iStart++; + break; + } + } + + else //--------[ Start Quote ]-------------------- + + if (c=='\"') + InsideQuote = true; + + iStart++; + } + if (iStart>iWordStart) + AddCSVtoken(ref list, ref Line, iStart, ref iWordStart); + + return list.ToArray(); + } + + static void AddCSVtoken( ref List list, ref string Line, int iEnd, ref int iWordStart) + { + string Text = Line.Substring(iWordStart, iEnd-iWordStart); + iWordStart = iEnd+1; + + Text = Text.Replace("\"\"", "\"" ); + if (Text.Length>1 && Text[0]=='\"' && Text[Text.Length-1]=='\"') + Text = Text.Substring(1, Text.Length-2 ); + + list.Add( Text); + } + + + + #endregion + + #region I2CSV + + public static List ReadI2CSV( string Text ) + { + string[] ColumnSeparator = {"[*]"}; + string[] RowSeparator = {"[ln]"}; + + List CSV = new List(); + foreach (var line in Text.Split (RowSeparator, StringSplitOptions.None)) + CSV.Add (line.Split (ColumnSeparator, StringSplitOptions.None)); + + return CSV; + } + + #endregion + + #region Misc + + public static void ValidateFullTerm( ref string Term ) + { + Term = Term.Replace('\\', '/'); + int First = Term.IndexOf('/'); + if (First<0) + return; + + int second; + while ( (second=Term.LastIndexOf('/')) != First ) + Term = Term.Remove( second,1); + } + + + // this function encodes \r\n and \n into \\n + public static string EncodeString( string str ) + { + if (string.IsNullOrEmpty(str)) + return string.Empty; + + return str.Replace("\r\n", "<\\n>") + .Replace("\r", "<\\n>") + .Replace("\n", "<\\n>"); + } + + public static string DecodeString( string str ) + { + if (string.IsNullOrEmpty(str)) + return string.Empty; + + return str.Replace("<\\n>", "\r\n"); + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs.meta new file mode 100644 index 00000000..e6c09794 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LocalizationReader.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6ec1933af6b4d6947ba69b9bda4260d1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Localize.cs b/popcorn/Assets/I2/Localization/Scripts/Localize.cs new file mode 100644 index 00000000..bc701cab --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Localize.cs @@ -0,0 +1,519 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using UnityEngine; +using UnityEngine.Events; +using Object = UnityEngine.Object; + +#if UNITY_EDITOR +using UnityEditor.Events; +using UnityEditor; +#endif + +namespace I2.Loc +{ + [AddComponentMenu("I2/Localization/I2 Localize")] + public class Localize : MonoBehaviour + { + #region Variables: Term + public string Term + { + get { return mTerm; } + set { SetTerm(value); } + } + public string SecondaryTerm + { + get { return mTermSecondary; } + set { SetTerm(null, value); } + } + + public string mTerm = string.Empty, // if Target is a Label, this will be the text, if sprite, this will be the spriteName, etc + mTermSecondary = string.Empty; // if Target is a Label, this will be the font Name, if sprite, this will be the Atlas name, etc + + // This are the terms actually used (will be mTerm/mSecondaryTerm or will get them from the objects if those are missing. e.g. Labels' text and font name) + // This are set when the component starts + [NonSerialized] public string FinalTerm, FinalSecondaryTerm; + + public enum TermModification { DontModify, ToUpper, ToLower, ToUpperFirst, ToTitle/*, CustomRange*/} + public TermModification PrimaryTermModifier = TermModification.DontModify, + SecondaryTermModifier = TermModification.DontModify; + public string TermPrefix, TermSuffix; + + public bool LocalizeOnAwake = true; + + string LastLocalizedLanguage; // Used to avoid Localizing everytime the object is Enabled + +#if UNITY_EDITOR + public ILanguageSource Source; // Source used while in the Editor to preview the Terms (can be of type LanguageSource or LanguageSourceAsset) +#endif + + #endregion + + #region Variables: Target + + public bool IgnoreRTL; // If false, no Right To Left processing will be done + public int MaxCharactersInRTL; // If the language is RTL, the translation will be split in lines not longer than this amount and the RTL fix will be applied per line + public bool IgnoreNumbersInRTL = true; // If the language is RTL, the translation will not convert numbers (will preserve them like: e.g. 123) + + public bool CorrectAlignmentForRTL = true; // If true, when Right To Left language, alignment will be set to Right + + public bool AddSpacesToJoinedLanguages; // Some languages (e.g. Chinese, Japanese and Thai) don't add spaces to their words (all characters are placed toguether), making this variable true, will add spaces to all characters to allow wrapping long texts into multiple lines. + public bool AllowLocalizedParameters=true; + public bool AllowParameters=true; + + #endregion + + #region Variables: References + + public List TranslatedObjects = new List(); // For targets that reference objects (e.g. AudioSource, UITexture,etc) + // this keeps a reference to the possible options. + // If the value is not the name of any of this objects then it will try to load the object from the Resources + + + [NonSerialized] public Dictionary mAssetDictionary = new Dictionary(StringComparer.Ordinal); //This is used to overcome the issue with Unity not serializing Dictionaries + + #endregion + + #region Variable Translation Modifiers + + + public UnityEvent LocalizeEvent = new UnityEvent(); // This allows scripts to modify the translations : e.g. "Player {0} wins" -> "Player Red wins" + + + public static string MainTranslation, SecondaryTranslation; // The callback should use and modify this variables + public static string CallBackTerm, CallBackSecondaryTerm; // during the callback, this will hold the FinalTerm and FinalSecondary to know what terms are originating the translation + public static Localize CurrentLocalizeComponent; // while in the LocalizeCallBack, this points to the Localize calling the callback + + public bool AlwaysForceLocalize; // Force localization when the object gets enabled (useful for callbacks and parameters that change the localization even through the language is the same as in the previous time it was localized) + + [SerializeField] public EventCallback LocalizeCallBack = new EventCallback(); //LocalizeCallBack is deprecated. Please use LocalizeEvent instead. + + #endregion + + #region Variables: Editor Related + public bool mGUI_ShowReferences; + public bool mGUI_ShowTems = true; + public bool mGUI_ShowCallback; + #endregion + + #region Variables: Runtime (LocalizeTarget) + + public ILocalizeTarget mLocalizeTarget; + public string mLocalizeTargetName; // Used to resolve multiple targets in a prefab + + #endregion + + #region Localize + + void Awake() + { + #if UNITY_EDITOR + if (BuildPipeline.isBuildingPlayer) + return; + #endif + + UpdateAssetDictionary(); + FindTarget(); + + if (LocalizeOnAwake) + OnLocalize(); + } + + #if UNITY_EDITOR + void OnValidate() + { + if (LocalizeCallBack.HasCallback()) + { + try + { + var methodInfo = UnityEventBase.GetValidMethodInfo(LocalizeCallBack.Target, LocalizeCallBack.MethodName, Array.Empty()); + + if (methodInfo != null) + { + UnityAction methodDelegate = Delegate.CreateDelegate(typeof(UnityAction), LocalizeCallBack.Target, methodInfo, false) as UnityAction; + if (methodDelegate != null) + UnityEventTools.AddPersistentListener(LocalizeEvent, methodDelegate); + } + } + catch(Exception) + {} + + LocalizeCallBack.Target = null; + LocalizeCallBack.MethodName = null; + } + } + #endif + + void OnEnable() + { + OnLocalize (); + } + + public bool HasCallback() + { + if (LocalizeCallBack.HasCallback()) + return true; + return LocalizeEvent.GetPersistentEventCount() > 0; + } + + public void OnLocalize( bool Force = false ) + { + if (!Force && (!enabled || gameObject==null || !gameObject.activeInHierarchy)) + return; + + if (string.IsNullOrEmpty(LocalizationManager.CurrentLanguage)) + return; + + if (!AlwaysForceLocalize && !Force && !HasCallback() && LastLocalizedLanguage==LocalizationManager.CurrentLanguage) + return; + LastLocalizedLanguage = LocalizationManager.CurrentLanguage; + + // These are the terms actually used (will be mTerm/mSecondaryTerm or will get them from the objects if those are missing. e.g. Labels' text and font name) + if (string.IsNullOrEmpty(FinalTerm) || string.IsNullOrEmpty(FinalSecondaryTerm)) + GetFinalTerms( out FinalTerm, out FinalSecondaryTerm ); + + + bool hasCallback = I2Utils.IsPlaying() && HasCallback(); + + if (!hasCallback && string.IsNullOrEmpty (FinalTerm) && string.IsNullOrEmpty (FinalSecondaryTerm)) + return; + + CallBackTerm = FinalTerm; + CallBackSecondaryTerm = FinalSecondaryTerm; + MainTranslation = string.IsNullOrEmpty(FinalTerm) || FinalTerm=="-" ? null : LocalizationManager.GetTranslation (FinalTerm, false); + SecondaryTranslation = string.IsNullOrEmpty(FinalSecondaryTerm) || FinalSecondaryTerm == "-" ? null : LocalizationManager.GetTranslation (FinalSecondaryTerm, false); + + if (!hasCallback && /*string.IsNullOrEmpty (MainTranslation)*/ string.IsNullOrEmpty(FinalTerm) && string.IsNullOrEmpty (SecondaryTranslation)) + return; + + CurrentLocalizeComponent = this; + + { + LocalizeCallBack.Execute (this); // This allows scripts to modify the translations : e.g. "Player {0} wins" -> "Player Red wins" + LocalizeEvent.Invoke(); + if (AllowParameters) + LocalizationManager.ApplyLocalizationParams (ref MainTranslation, gameObject, AllowLocalizedParameters); + } + + if (!FindTarget()) + return; + bool applyRTL = LocalizationManager.IsRight2Left && !IgnoreRTL; + + if (MainTranslation != null) + { + switch (PrimaryTermModifier) + { + case TermModification.ToUpper: MainTranslation = MainTranslation.ToUpper(); break; + case TermModification.ToLower: MainTranslation = MainTranslation.ToLower(); break; + case TermModification.ToUpperFirst: MainTranslation = GoogleTranslation.UppercaseFirst(MainTranslation); break; + case TermModification.ToTitle: MainTranslation = GoogleTranslation.TitleCase(MainTranslation); break; + } + if (!string.IsNullOrEmpty(TermPrefix)) + MainTranslation = applyRTL ? MainTranslation + TermPrefix : TermPrefix + MainTranslation; + if (!string.IsNullOrEmpty(TermSuffix)) + MainTranslation = applyRTL ? TermSuffix + MainTranslation : MainTranslation + TermSuffix; + + if (AddSpacesToJoinedLanguages && LocalizationManager.HasJoinedWords && !string.IsNullOrEmpty(MainTranslation)) + { + var sb = new StringBuilder(); + sb.Append(MainTranslation[0]); + for (int i = 1, imax = MainTranslation.Length; i < imax; ++i) + { + sb.Append(' '); + sb.Append(MainTranslation[i]); + } + + MainTranslation = sb.ToString(); + } + if (applyRTL && mLocalizeTarget.AllowMainTermToBeRTL() && !string.IsNullOrEmpty(MainTranslation)) + MainTranslation = LocalizationManager.ApplyRTLfix(MainTranslation, MaxCharactersInRTL, IgnoreNumbersInRTL); + + } + + if (SecondaryTranslation != null) + { + switch (SecondaryTermModifier) + { + case TermModification.ToUpper: SecondaryTranslation = SecondaryTranslation.ToUpper(); break; + case TermModification.ToLower: SecondaryTranslation = SecondaryTranslation.ToLower(); break; + case TermModification.ToUpperFirst: SecondaryTranslation = GoogleTranslation.UppercaseFirst(SecondaryTranslation); break; + case TermModification.ToTitle: SecondaryTranslation = GoogleTranslation.TitleCase(SecondaryTranslation); break; + } + if (applyRTL && mLocalizeTarget.AllowSecondTermToBeRTL() && !string.IsNullOrEmpty(SecondaryTranslation)) + SecondaryTranslation = LocalizationManager.ApplyRTLfix(SecondaryTranslation); + } + + if (LocalizationManager.HighlightLocalizedTargets) + { + MainTranslation = "LOC:" + FinalTerm; + } + + mLocalizeTarget.DoLocalize( this, MainTranslation, SecondaryTranslation ); + + CurrentLocalizeComponent = null; + } + + #endregion + + #region Finding Target + + public bool FindTarget() + { + if (mLocalizeTarget != null && mLocalizeTarget.IsValid(this)) + return true; + + if (mLocalizeTarget!=null) + { + DestroyImmediate(mLocalizeTarget); + mLocalizeTarget = null; + mLocalizeTargetName = null; + } + + if (!string.IsNullOrEmpty(mLocalizeTargetName)) + { + foreach (var desc in LocalizationManager.mLocalizeTargets) + { + if (mLocalizeTargetName == desc.GetTargetType().ToString()) + { + if (desc.CanLocalize(this)) + mLocalizeTarget = desc.CreateTarget(this); + if (mLocalizeTarget!=null) + return true; + } + } + } + + foreach (var desc in LocalizationManager.mLocalizeTargets) + { + if (!desc.CanLocalize(this)) + continue; + mLocalizeTarget = desc.CreateTarget(this); + mLocalizeTargetName = desc.GetTargetType().ToString(); + if (mLocalizeTarget != null) + return true; + } + + return false; + } + + #endregion + + #region Finding Term + + // Returns the term that will actually be translated + // its either the Term value in this class or the text of the label if there is no term + public void GetFinalTerms( out string primaryTerm, out string secondaryTerm ) + { + primaryTerm = string.Empty; + secondaryTerm = string.Empty; + + if (!FindTarget()) + return; + + + // if either the primary or secondary term is missing, get them. (e.g. from the label's text and font name) + if (mLocalizeTarget != null) + { + mLocalizeTarget.GetFinalTerms(this, mTerm, mTermSecondary, out primaryTerm, out secondaryTerm); + primaryTerm = I2Utils.GetValidTermName(primaryTerm); + } + + // If there are values already set, go with those + if (!string.IsNullOrEmpty(mTerm)) + primaryTerm = mTerm; + + if (!string.IsNullOrEmpty(mTermSecondary)) + secondaryTerm = mTermSecondary; + + if (primaryTerm != null) + primaryTerm = primaryTerm.Trim(); + if (secondaryTerm != null) + secondaryTerm = secondaryTerm.Trim(); + } + + public string GetMainTargetsText() + { + string primary = null, secondary = null; + + if (mLocalizeTarget!=null) + mLocalizeTarget.GetFinalTerms( this, null, null, out primary, out secondary ); + + return string.IsNullOrEmpty(primary) ? mTerm : primary; + } + + public void SetFinalTerms( string Main, string Secondary, out string primaryTerm, out string secondaryTerm, bool RemoveNonASCII ) + { + primaryTerm = RemoveNonASCII ? I2Utils.GetValidTermName(Main) : Main; + secondaryTerm = Secondary; + } + + #endregion + + #region Misc + + public void SetTerm (string primary) + { + if (!string.IsNullOrEmpty(primary)) + FinalTerm = mTerm = primary; + + OnLocalize (true); + } + + public void SetTerm(string primary, string secondary ) + { + if (!string.IsNullOrEmpty(primary)) + FinalTerm = mTerm = primary; + FinalSecondaryTerm = mTermSecondary = secondary; + + OnLocalize(true); + } + + internal T GetSecondaryTranslatedObj( ref string mainTranslation, ref string secondaryTranslation ) where T: Object + { + string newMain, newSecond; + + //--[ Allow main translation to override Secondary ]------------------- + DeserializeTranslation(mainTranslation, out newMain, out newSecond); + + T obj = null; + + if (!string.IsNullOrEmpty(newSecond)) + { + obj = GetObject(newSecond); + if (obj != null) + { + mainTranslation = newMain; + secondaryTranslation = newSecond; + } + } + + if (obj == null) + obj = GetObject(secondaryTranslation); + + return obj; + } + + public void UpdateAssetDictionary() + { + TranslatedObjects.RemoveAll(x => x == null); + mAssetDictionary = TranslatedObjects.Distinct() + .GroupBy(o => o.name) + .ToDictionary(g => g.Key, g => g.First()); + } + + internal T GetObject( string Translation) where T: Object + { + if (string.IsNullOrEmpty (Translation)) + return null; + T obj = GetTranslatedObject(Translation); + + //if (obj==null) + //{ + // Remove path and search by name + //int Index = Translation.LastIndexOfAny("/\\".ToCharArray()); + //if (Index>=0) + //{ + // Translation = Translation.Substring(Index+1); + // obj = GetTranslatedObject(Translation); + //} + //} + return obj; + } + + T GetTranslatedObject( string Translation) where T: Object + { + T Obj = FindTranslatedObject(Translation); + /*if (Obj == null) + return null; + + if ((Obj as T) != null) + return Obj as T; + + // If the found Obj is not of type T, then try finding a component inside + if (Obj as Component != null) + return (Obj as Component).GetComponent(typeof(T)) as T; + + if (Obj as GameObject != null) + return (Obj as GameObject).GetComponent(typeof(T)) as T; + */ + return Obj; + } + + + // translation format: "[secondary]value" [secondary] is optional + void DeserializeTranslation( string translation, out string value, out string secondary ) + { + if (!string.IsNullOrEmpty(translation) && translation.Length>1 && translation[0]=='[') + { + int Index = translation.IndexOf(']'); + if (Index>0) + { + secondary = translation.Substring(1, Index-1); + value = translation.Substring(Index+1); + return; + } + } + value = translation; + secondary = string.Empty; + } + + public T FindTranslatedObject( string value) where T : Object + { + if (string.IsNullOrEmpty(value)) + return null; + + if (mAssetDictionary == null || mAssetDictionary.Count != TranslatedObjects.Count) + { + UpdateAssetDictionary(); + } + + foreach (var kvp in mAssetDictionary) + { + if (kvp.Value is T && value.EndsWith(kvp.Key, StringComparison.OrdinalIgnoreCase)) + { + // Check if the value is just the name or has a path + if (string.Compare(value, kvp.Key, StringComparison.OrdinalIgnoreCase)==0) + return (T) kvp.Value; + + // Check if the path matches + //Resources.get TranslatedObjects[i]. + } + } + + T obj = LocalizationManager.FindAsset(value) as T; + if (obj) + return obj; + + obj = ResourceManager.pInstance.GetAsset(value); + return obj; + } + + public bool HasTranslatedObject( Object Obj ) + { + if (TranslatedObjects.Contains(Obj)) + return true; + return ResourceManager.pInstance.HasAsset(Obj); + + } + + public void AddTranslatedObject( Object Obj ) + { + if (TranslatedObjects.Contains(Obj)) + return; + TranslatedObjects.Add(Obj); + UpdateAssetDictionary(); + } + + #endregion + + #region Utilities + // This can be used to set the language when a button is clicked + public void SetGlobalLanguage( string Language ) + { + LocalizationManager.CurrentLanguage = Language; + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Localize.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Localize.cs.meta new file mode 100644 index 00000000..af8cbcc7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Localize.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 344445a89b4f74a0e9a0a766903df87e +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs b/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs new file mode 100644 index 00000000..6df6d26c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs @@ -0,0 +1,111 @@ +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + #if !UNITY_5_0 && !UNITY_5_1 + [AddComponentMenu("I2/Localization/Localize Dropdown")] + public class LocalizeDropdown : MonoBehaviour + { + public List _Terms = new List(); + + public void Start() + { + LocalizationManager.OnLocalizeEvent += OnLocalize; + OnLocalize(); + } + + public void OnDestroy() + { + LocalizationManager.OnLocalizeEvent -= OnLocalize; + } + + void OnEnable() + { + if (_Terms.Count == 0) + FillValues(); + OnLocalize (); + } + + public void OnLocalize() + { + if (!enabled || gameObject==null || !gameObject.activeInHierarchy) + return; + + if (string.IsNullOrEmpty(LocalizationManager.CurrentLanguage)) + return; + + UpdateLocalization(); + } + + void FillValues() + { + var _Dropdown = GetComponent(); + if (_Dropdown == null && I2Utils.IsPlaying()) + { + #if TextMeshPro + FillValuesTMPro(); + #endif + return; + } + + foreach (var term in _Dropdown.options) + { + _Terms.Add(term.text); + } + } + + public void UpdateLocalization() + { + var _Dropdown = GetComponent(); + if (_Dropdown == null) + { + #if TextMeshPro + UpdateLocalizationTMPro(); + #endif + return; + } + + _Dropdown.options.Clear(); + foreach (var term in _Terms) + { + var translation = LocalizationManager.GetTranslation(term); + _Dropdown.options.Add( new Dropdown.OptionData( translation ) ); + } + _Dropdown.RefreshShownValue(); + } + + #if TextMeshPro + public void UpdateLocalizationTMPro() + { + var _Dropdown = GetComponent(); + if (_Dropdown == null) + return; + + _Dropdown.options.Clear(); + foreach (var term in _Terms) + { + var translation = LocalizationManager.GetTranslation(term); + _Dropdown.options.Add(new TMP_Dropdown.OptionData(translation)); + } + _Dropdown.RefreshShownValue(); + } + + void FillValuesTMPro() + { + var _Dropdown = GetComponent(); + if (_Dropdown == null) + return; + + foreach (var term in _Dropdown.options) + { + _Terms.Add(term.text); + } + } +#endif + + } +#endif +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs.meta b/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs.meta new file mode 100644 index 00000000..eaff4eb4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/LocalizeDropdown.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a5379d3aeaf18a24fa23c26a749edfe5 +timeCreated: 1466568092 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager.meta b/popcorn/Assets/I2/Localization/Scripts/Manager.meta new file mode 100644 index 00000000..cc87223c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ba131beaf0aba9d4084aff4ea6e742c3 +folderAsset: yes +timeCreated: 1516397531 +licenseType: Store +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs new file mode 100644 index 00000000..d359823d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs @@ -0,0 +1,92 @@ +using System; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + + #region Variables: Misc + + #endregion + + public static void InitializeIfNeeded() + { + #if UNITY_EDITOR + #if UNITY_2017_2_OR_NEWER + EditorApplication.playModeStateChanged -= OnEditorPlayModeStateChanged; + EditorApplication.playModeStateChanged += OnEditorPlayModeStateChanged; + #else + UnityEditor.EditorApplication.playmodeStateChanged -= OldOnEditorPlayModeStateChanged; + UnityEditor.EditorApplication.playmodeStateChanged += OldOnEditorPlayModeStateChanged; + #endif + #endif + + if (string.IsNullOrEmpty(mCurrentLanguage) || Sources.Count == 0) + { + AutoLoadGlobalParamManagers(); + UpdateSources(); + SelectStartupLanguage(); + } + } + + public static string GetVersion() + { + return "2.8.17 f1"; + } + + public static int GetRequiredWebServiceVersion() + { + return 5; + } + + public static string GetWebServiceURL( LanguageSourceData source = null ) + { + if (source != null && !string.IsNullOrEmpty(source.Google_WebServiceURL)) + return source.Google_WebServiceURL; + + InitializeIfNeeded(); + for (int i = 0; i < Sources.Count; ++i) + if (Sources[i] != null && !string.IsNullOrEmpty(Sources[i].Google_WebServiceURL)) + return Sources[i].Google_WebServiceURL; + return string.Empty; + } + +#if UNITY_EDITOR + #if UNITY_2017_2_OR_NEWER + static void OnEditorPlayModeStateChanged( PlayModeStateChange stateChange ) + { + if (stateChange != PlayModeStateChange.ExitingPlayMode) + return; + #else + static void OldOnEditorPlayModeStateChanged() + { + if (UnityEditor.EditorApplication.isPlayingOrWillChangePlaymode) + return; + #endif + + OnLocalizeEvent = null; + + foreach (var source in Sources) + { + source.LoadAllLanguages(true); + } + try + { + var tempPath = Application.temporaryCachePath; + + foreach (var file in Directory.GetFiles(tempPath).Where(f => f.Contains("LangSource_") && f.EndsWith(".loc", StringComparison.Ordinal))) + { + File.Delete(file); + } + } + catch(Exception) + { + } + } +#endif + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs.meta new file mode 100644 index 00000000..89de7d0b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: dd42f89f650a540d9bd641f752368e27 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs new file mode 100644 index 00000000..e1fcff15 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs @@ -0,0 +1,348 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Threading; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + #region Variables: CurrentLanguage + + public static string CurrentLanguage + { + get { + InitializeIfNeeded(); + return mCurrentLanguage; + } + set { + InitializeIfNeeded(); + string SupportedLanguage = GetSupportedLanguage(value); + if (!string.IsNullOrEmpty(SupportedLanguage) && mCurrentLanguage != SupportedLanguage) + { + SetLanguageAndCode(SupportedLanguage, GetLanguageCode(SupportedLanguage)); + } + } + } + public static string CurrentLanguageCode + { + get { + InitializeIfNeeded(); + return mLanguageCode; } + set { + InitializeIfNeeded(); + if (mLanguageCode != value) + { + string LanName = GetLanguageFromCode(value); + if (!string.IsNullOrEmpty(LanName)) + SetLanguageAndCode(LanName, value); + } + } + } + + // "English (United States)" (get returns "United States") + // when set "Canada", the new language code will be "English (Canada)" + public static string CurrentRegion + { + get { + var Lan = CurrentLanguage; + int idx = Lan.IndexOfAny("/\\".ToCharArray()); + if (idx > 0) + return Lan.Substring(idx + 1); + + idx = Lan.IndexOfAny("[(".ToCharArray()); + int idx2 = Lan.LastIndexOfAny("])".ToCharArray()); + if (idx > 0 && idx != idx2) + return Lan.Substring(idx + 1, idx2 - idx - 1); + return string.Empty; + } + set { + var Lan = CurrentLanguage; + int idx = Lan.IndexOfAny("/\\".ToCharArray()); + if (idx > 0) + { + CurrentLanguage = Lan.Substring(idx + 1) + value; + return; + } + + idx = Lan.IndexOfAny("[(".ToCharArray()); + int idx2 = Lan.LastIndexOfAny("])".ToCharArray()); + if (idx > 0 && idx != idx2) + Lan = Lan.Substring(idx); + + CurrentLanguage = Lan + "(" + value + ")"; + } + } + + // "en-US" (get returns "US") (when set "CA", the new language code will be "en-CA") + public static string CurrentRegionCode + { + get { + var code = CurrentLanguageCode; + int idx = code.IndexOfAny(" -_/\\".ToCharArray()); + return idx < 0 ? string.Empty : code.Substring(idx + 1); + } + set { + var code = CurrentLanguageCode; + int idx = code.IndexOfAny(" -_/\\".ToCharArray()); + if (idx > 0) + code = code.Substring(0, idx); + + CurrentLanguageCode = code + "-" + value; + } + } + + public static CultureInfo CurrentCulture + { + get + { + return mCurrentCulture; + } + } + + static string mCurrentLanguage; + static string mLanguageCode; + static CultureInfo mCurrentCulture; + static bool mChangeCultureInfo; + + public static bool IsRight2Left; + public static bool HasJoinedWords; // Some languages (e.g. Chinese, Japanese and Thai) don't add spaces to their words (all characters are placed toguether) + + #endregion + + public static void SetLanguageAndCode(string LanguageName, string LanguageCode, bool RememberLanguage = true, bool Force = false) + { + if (mCurrentLanguage != LanguageName || mLanguageCode != LanguageCode || Force) + { + if (RememberLanguage) + PersistentStorage.SetSetting_String("I2 Language", LanguageName); + mCurrentLanguage = LanguageName; + mLanguageCode = LanguageCode; + mCurrentCulture = CreateCultureForCode(LanguageCode); + if (mChangeCultureInfo) + SetCurrentCultureInfo(); + + IsRight2Left = IsRTL(mLanguageCode); + HasJoinedWords = GoogleLanguages.LanguageCode_HasJoinedWord(mLanguageCode); + LocalizeAll(Force); + } + } + + static CultureInfo CreateCultureForCode(string code) + { +#if !NETFX_CORE + try + { + return CultureInfo.CreateSpecificCulture(code); + } + catch (Exception) + { + return CultureInfo.InvariantCulture; + } +#else + return CultureInfo.InvariantCulture; +#endif + } + + public static void EnableChangingCultureInfo(bool bEnable) + { + if (!mChangeCultureInfo && bEnable) + SetCurrentCultureInfo(); + mChangeCultureInfo = bEnable; + } + + static void SetCurrentCultureInfo() + { + #if !NETFX_CORE + Thread.CurrentThread.CurrentCulture = mCurrentCulture; + #endif + } + + + static void SelectStartupLanguage() + { + if (Sources.Count == 0) + return; + + // Use the system language if there is a source with that language, + // or pick any of the languages provided by the sources + + string SavedLanguage = PersistentStorage.GetSetting_String("I2 Language", string.Empty); + string SysLanguage = GetCurrentDeviceLanguage(); + + // Try selecting the System Language + // But fallback to the first language found if the System Language is not available in any source + + if (!string.IsNullOrEmpty(SavedLanguage) && HasLanguage(SavedLanguage, Initialize: false, SkipDisabled:true)) + { + SetLanguageAndCode(SavedLanguage, GetLanguageCode(SavedLanguage)); + return; + } + + if (!Sources [0].IgnoreDeviceLanguage) + { + // Check if the device language is supported. + // Also recognize when not region is set ("English (United State") will be used if sysLanguage is "English") + string ValidLanguage = GetSupportedLanguage (SysLanguage, true); + if (!string.IsNullOrEmpty (ValidLanguage)) { + SetLanguageAndCode (ValidLanguage, GetLanguageCode (ValidLanguage), false); + return; + } + } + + //--[ Use first language that its not disabled ]----------- + for (int i = 0, imax = Sources.Count; i < imax; ++i) + if (Sources[i].mLanguages.Count > 0) + { + for (int j = 0; j < Sources[i].mLanguages.Count; ++j) + if (Sources[i].mLanguages[j].IsEnabled()) + { + SetLanguageAndCode(Sources[i].mLanguages[j].Name, Sources[i].mLanguages[j].Code, false); + return; + } + } + } + + + public static bool HasLanguage( string Language, bool AllowDiscartingRegion = true, bool Initialize=true, bool SkipDisabled=true ) + { + if (Initialize) + InitializeIfNeeded(); + + // First look for an exact match + for (int i=0, imax=Sources.Count; i=0) + return true; + + // Then allow matching "English (Canada)" to "english" + if (AllowDiscartingRegion) + { + for (int i=0, imax=Sources.Count; i=0) + return true; + } + return false; + } + + // Returns the provided language or a similar one without the Region + //(e.g. "English (Canada)" could be mapped to "english" or "English (United States)" if "English (Canada)" is not found + public static string GetSupportedLanguage( string Language, bool ignoreDisabled=false ) + { + // First try finding the language that matches one of the official languages + string code = GoogleLanguages.GetLanguageCode(Language); + if (!string.IsNullOrEmpty(code)) + { + // First try finding if the exact language code is in one source + for (int i = 0, imax = Sources.Count; i < imax; ++i) + { + int Idx = Sources[i].GetLanguageIndexFromCode(code, true, ignoreDisabled); + if (Idx >= 0) + return Sources[i].mLanguages[Idx].Name; + } + + // If not, try checking without the region + for (int i = 0, imax = Sources.Count; i < imax; ++i) + { + int Idx = Sources[i].GetLanguageIndexFromCode(code, false, ignoreDisabled); + if (Idx >= 0) + return Sources[i].mLanguages[Idx].Name; + } + } + + // If not found, then try finding an exact match for the name + for (int i=0, imax=Sources.Count; i=0) + return Sources[i].mLanguages[Idx].Name; + } + + // Then allow matching "English (Canada)" to "english" + for (int i=0, imax=Sources.Count; i=0) + return Sources[i].mLanguages[Idx].Name; + } + + return string.Empty; + } + + public static string GetLanguageCode( string Language ) + { + if (Sources.Count==0) + UpdateSources(); + for (int i=0, imax=Sources.Count; i=0) + return Sources[i].mLanguages[Idx].Code; + } + return string.Empty; + } + + public static string GetLanguageFromCode( string Code, bool exactMatch=true ) + { + if (Sources.Count==0) + UpdateSources(); + for (int i=0, imax=Sources.Count; i=0) + return Sources[i].mLanguages[Idx].Name; + } + return string.Empty; + } + + + public static List GetAllLanguages ( bool SkipDisabled = true ) + { + if (Sources.Count==0) + UpdateSources(); + List Languages = new List (); + for (int i=0, imax=Sources.Count; i!Languages.Contains(x))); + } + return Languages; + } + + public static List GetAllLanguagesCode(bool allowRegions=true, bool SkipDisabled = true) + { + List Languages = new List(); + for (int i = 0, imax = Sources.Count; i < imax; ++i) + { + Languages.AddRange(Sources[i].GetLanguagesCode(allowRegions, SkipDisabled).Where(x => !Languages.Contains(x))); + } + return Languages; + } + + public static bool IsLanguageEnabled(string Language) + { + for (int i = 0, imax = Sources.Count; i < imax; ++i) + if (!Sources[i].IsLanguageEnabled(Language)) + return false; + return true; + } + + static void LoadCurrentLanguage() + { + for (int i = 0; i < Sources.Count; ++i) + { + var iCurrentLang = Sources[i].GetLanguageIndex(mCurrentLanguage, true, false); + Sources[i].LoadLanguage(iCurrentLang, true, true, true, false); + } + } + + + // This function should only be called from within the Localize Inspector to temporaly preview that Language + public static void PreviewLanguage(string NewLanguage) + { + mCurrentLanguage = NewLanguage; + mLanguageCode = GetLanguageCode(mCurrentLanguage); + IsRight2Left = IsRTL(mLanguageCode); + HasJoinedWords = GoogleLanguages.LanguageCode_HasJoinedWord(mLanguageCode); + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs.meta new file mode 100644 index 00000000..556a3911 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Language.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7d629295da7add24e9465e25cd212bf5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs new file mode 100644 index 00000000..399f60eb --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs @@ -0,0 +1,195 @@ +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + #region Variables: Misc + + public static List ParamManagers = new List(); + + + // returns true if this replaces the normal ApplyLocalizationParams + // returns false if after running this function the manager should also run the default ApplyLocalizationParams to replace parameters + public delegate bool FnCustomApplyLocalizationParams(ref string translation, _GetParam getParam, bool allowLocalizedParameters); + public static FnCustomApplyLocalizationParams CustomApplyLocalizationParams; + #endregion + + #region Parameters + + public delegate object _GetParam(string param); + + public static void AutoLoadGlobalParamManagers() + { + foreach (var manager in Object.FindObjectsOfType()) + { + if (manager._IsGlobalManager && !ParamManagers.Contains(manager)) + { + Debug.Log(manager); + ParamManagers.Add(manager); + } + } + } + + public static void ApplyLocalizationParams(ref string translation, bool allowLocalizedParameters = true) + { + ApplyLocalizationParams(ref translation, p => GetLocalizationParam(p, null), allowLocalizedParameters); + } + + + public static void ApplyLocalizationParams(ref string translation, GameObject root, bool allowLocalizedParameters = true) + { + ApplyLocalizationParams(ref translation, p => GetLocalizationParam(p, root), allowLocalizedParameters); + } + + public static void ApplyLocalizationParams(ref string translation, Dictionary parameters, bool allowLocalizedParameters = true) + { + ApplyLocalizationParams(ref translation, p => { + object o = null; + if (parameters.TryGetValue(p, out o)) + return o; + return null; + }, allowLocalizedParameters); + } + + + public static void ApplyLocalizationParams(ref string translation, _GetParam getParam, bool allowLocalizedParameters=true) + { + if (translation == null) + return; + + bool skip_processing = CustomApplyLocalizationParams!=null && CustomApplyLocalizationParams.Invoke(ref translation, getParam, allowLocalizedParameters); + if (skip_processing) return; + + string pluralType=null; + int idx0 = 0; + int idx1 = translation.Length; + + int index = 0; + while (index>=0 && index0 && isubParam= 0) + { + result = termData.GetTranslation(idx); + } + } + } + + var paramTag = translation.Substring(iParamStart, iParamEnd - iParamStart + 2); + translation = translation.Replace(paramTag, result); + + int amount = 0; + if (int.TryParse(result, out amount)) + { + pluralType = GoogleLanguages.GetPluralType(CurrentLanguageCode, amount).ToString(); + } + + index = iParamStart + result.Length; + } + else + { + index = iParamEnd + 2; + } + } + + if (pluralType != null) + { + var tag = "[i2p_" + pluralType + "]"; + idx0 = translation.IndexOf(tag, StringComparison.OrdinalIgnoreCase); + if (idx0 < 0) idx0 = 0; + else idx0 += tag.Length; + + idx1 = translation.IndexOf("[i2p_", idx0 + 1, StringComparison.OrdinalIgnoreCase); + if (idx1 < 0) idx1 = translation.Length; + + translation = translation.Substring(idx0, idx1 - idx0); + } + } + + internal static string GetLocalizationParam(string ParamName, GameObject root) + { + string result = null; + if (root) + { + var components = root.GetComponents(); + for (int i = 0, imax = components.Length; i < imax; ++i) + { + var manager = components[i] as ILocalizationParamsManager; + if (manager != null && components[i].enabled) + { + result = manager.GetParameterValue(ParamName); + if (result != null) + return result; + } + } + } + + for (int i = 0, imax = ParamManagers.Count; i < imax; ++i) + { + result = ParamManagers[i].GetParameterValue(ParamName); + if (result != null) + return result; + } + + return null; + } + + #endregion + + #region Plural + + private static string GetPluralType( MatchCollection matches, string langCode, _GetParam getParam) + { + for (int i = 0, nMatches = matches.Count; i < nMatches; ++i) + { + var match = matches[i]; + var param = match.Groups[match.Groups.Count - 1].Value; + var result = (string)getParam(param); + if (result == null) + continue; + + int amount = 0; + if (!int.TryParse (result, out amount)) + continue; + + var pluralType = GoogleLanguages.GetPluralType(langCode, amount); + return pluralType.ToString (); + } + return null; + } + + #endregion + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs.meta new file mode 100644 index 00000000..703501dd --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Parameters.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9bdcae51172bbb8458cf8c42f889c2a0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs new file mode 100644 index 00000000..307fb125 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + static string[] LanguagesRTL = {"ar-DZ", "ar","ar-BH","ar-EG","ar-IQ","ar-JO","ar-KW","ar-LB","ar-LY","ar-MA","ar-OM","ar-QA","ar-SA","ar-SY","ar-TN","ar-AE","ar-YE", + "fa", "he","ur","ji"}; + + public static string ApplyRTLfix(string line) { return ApplyRTLfix(line, 0, true); } + public static string ApplyRTLfix(string line, int maxCharacters, bool ignoreNumbers) + { + if (string.IsNullOrEmpty(line)) + return line; + + // Fix !, ? and . signs not set correctly + char firstC = line[0]; + if (firstC == '!' || firstC == '.' || firstC == '?') + line = line.Substring(1) + firstC; + + int tagStart = -1, tagEnd = 0; + + // Find all Tags (and Numbers if ignoreNumbers is true) + int tagBase = 40000; + tagEnd = 0; + var tags = new List(); + while (I2Utils.FindNextTag(line, tagEnd, out tagStart, out tagEnd)) + { + string tag = "@@" + (char)(tagBase + tags.Count) + "@@"; + tags.Add(line.Substring(tagStart, tagEnd - tagStart + 1)); + + line = line.Substring(0, tagStart) + tag + line.Substring(tagEnd + 1); + tagEnd = tagStart + 5; + } + + // Split into lines and fix each line + line = line.Replace("\r\n", "\n"); + line = I2Utils.SplitLine(line, maxCharacters); + line = RTLFixer.Fix(line, true, !ignoreNumbers); + + + // Restore all tags + + for (int i = 0; i < tags.Count; i++) + { + var len = line.Length; + + for (int j = 0; j < len-4; ++j) + { + if (line[j] == '@' && line[j + 1] == '@' && line[j + 2] >= tagBase && line[j + 3] == '@' && line[j + 4] == '@') + { + int idx = line[j + 2] - tagBase; + if (idx % 2 == 0) idx++; + else idx--; + if (idx >= tags.Count) idx = tags.Count - 1; + + line = line.Substring(0, j) + tags[idx] + line.Substring(j + 5); + + break; + } + } + } + + return line; + } + + + public static string FixRTL_IfNeeded(string text, int maxCharacters = 0, bool ignoreNumber=false) + { + if (IsRight2Left) + return ApplyRTLfix(text, maxCharacters, ignoreNumber); + return text; + } + + public static bool IsRTL(string Code) + { + return Array.IndexOf(LanguagesRTL, Code)>=0; + } + } + +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs.meta new file mode 100644 index 00000000..bd1ca3c3 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_RTL.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d33b5082085040d44ab79b83d25bffee +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Sources.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Sources.cs new file mode 100644 index 00000000..45056cc4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Sources.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + + #region Variables: Misc + + public static List Sources = new List(); + public static string[] GlobalSources = { "I2Languages" }; + + #endregion + + #region Sources + + public static bool UpdateSources() + { + UnregisterDeletededSources(); + RegisterSourceInResources(); + RegisterSceneSources(); + return Sources.Count>0; + } + + static void UnregisterDeletededSources() + { + // Delete sources that were part of another scene and not longer available + for (int i=Sources.Count-1; i>=0; --i) + if (Sources[i] == null) + RemoveSource( Sources[i] ); + } + + static void RegisterSceneSources() + { + LanguageSource[] sceneSources = (LanguageSource[])Resources.FindObjectsOfTypeAll( typeof(LanguageSource) ); + foreach (LanguageSource source in sceneSources) + if (!Sources.Contains(source.mSource)) + { + if (source.mSource.owner == null) + source.mSource.owner = source; + AddSource( source.mSource ); + } + } + + static void RegisterSourceInResources() + { + // Find the Source that its on the Resources Folder + foreach (string SourceName in GlobalSources) + { + LanguageSourceAsset sourceAsset = ResourceManager.pInstance.GetAsset(SourceName); + + if (sourceAsset && !Sources.Contains(sourceAsset.mSource)) + { + if (!sourceAsset.mSource.mIsGlobalSource) + sourceAsset.mSource.mIsGlobalSource = true; + sourceAsset.mSource.owner = sourceAsset; + AddSource(sourceAsset.mSource); + } + } + } + + public static Func Callback_AllowSyncFromGoogle = null; + static bool AllowSyncFromGoogle(LanguageSourceData Source) + { + if (Callback_AllowSyncFromGoogle == null) + return true; + return Callback_AllowSyncFromGoogle.Invoke(Source); + } + + internal static void AddSource ( LanguageSourceData Source ) + { + if (Sources.Contains (Source)) + return; + + Sources.Add( Source ); + + if (Source.HasGoogleSpreadsheet() && Source.GoogleUpdateFrequency != LanguageSourceData.eGoogleUpdateFrequency.Never && AllowSyncFromGoogle(Source)) + { + #if !UNITY_EDITOR + Source.Import_Google_FromCache(); + bool justCheck = false; + #else + bool justCheck=true; + #endif + if (Source.GoogleUpdateDelay > 0) + CoroutineManager.Start( Delayed_Import_Google(Source, Source.GoogleUpdateDelay, justCheck) ); + else + Source.Import_Google(false, justCheck); + } + + //if (force) + { + for (int i = 0; i < Source.mLanguages.Count; ++i) + Source.mLanguages[i].SetLoaded(true); + } + + if (Source.mDictionary.Count==0) + Source.UpdateDictionary(true); + } + + static IEnumerator Delayed_Import_Google ( LanguageSourceData source, float delay, bool justCheck ) + { + yield return new WaitForSeconds( delay ); + if (source != null) // handle cases where the source is already deleted + { + source.Import_Google(false, justCheck); + } + } + + internal static void RemoveSource (LanguageSourceData Source ) + { + //Debug.Log ("RemoveSource " + Source+" " + Source.GetInstanceID()); + Sources.Remove( Source ); + } + + public static bool IsGlobalSource( string SourceName ) + { + return Array.IndexOf(GlobalSources, SourceName)>=0; + } + + public static LanguageSourceData GetSourceContaining( string term, bool fallbackToFirst = true ) + { + if (!string.IsNullOrEmpty(term)) + { + for (int i=0, imax=Sources.Count; i0 ? Sources[0] : null; + } + + public static Object FindAsset (string value) + { + for (int i=0, imax=Sources.Count; i("getDefault"); + mCurrentDeviceLanguage = locale.Call("toString"); + //https://stackoverflow.com/questions/4212320/get-the-current-language-in-device + + + if (!string.IsNullOrEmpty(mCurrentDeviceLanguage)) + { + mCurrentDeviceLanguage = mCurrentDeviceLanguage.Replace('_', '-'); + mCurrentDeviceLanguage = GoogleLanguages.GetLanguageName(mCurrentDeviceLanguage, true, true); + if (!string.IsNullOrEmpty(mCurrentDeviceLanguage)) + return; + } + } + catch (System.Exception) + { + } + #endif + + mCurrentDeviceLanguage = Application.systemLanguage.ToString(); + if (mCurrentDeviceLanguage == "ChineseSimplified") mCurrentDeviceLanguage = "Chinese (Simplified)"; + if (mCurrentDeviceLanguage == "ChineseTraditional") mCurrentDeviceLanguage = "Chinese (Traditional)"; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_SystemLanguage.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_SystemLanguage.cs.meta new file mode 100644 index 00000000..42447d5b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_SystemLanguage.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: fd54e24a8c653f341a9540011ba06f01 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs new file mode 100644 index 00000000..aadae704 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + + #region Variables: Misc + + public static List mLocalizeTargets = new List(); + + #endregion + + public static void RegisterTarget( ILocalizeTargetDescriptor desc ) + { + if (mLocalizeTargets.FindIndex(x => x.Name == desc.Name) != -1) + return; + + for (int i = 0; i < mLocalizeTargets.Count; ++i) + { + if (mLocalizeTargets[i].Priority > desc.Priority) + { + mLocalizeTargets.Insert(i, desc); + return; + } + } + mLocalizeTargets.Add(desc); + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs.meta new file mode 100644 index 00000000..83dae7bf --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Targets.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 84ead5dc664fd394490f4874012ed099 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Translation.cs b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Translation.cs new file mode 100644 index 00000000..7dcd8aca --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Manager/LocalizationManager_Translation.cs @@ -0,0 +1,225 @@ +using System.Collections; +using System.Collections.Generic; +using System.Reflection; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public static partial class LocalizationManager + { + + #region Variables: Misc + + public delegate void OnLocalizeCallback(); + public static event OnLocalizeCallback OnLocalizeEvent; + + static bool mLocalizeIsScheduled; + static bool mLocalizeIsScheduledWithForcedValue; + + public static bool HighlightLocalizedTargets = false; + + + #endregion + + public static string GetTranslation(string Term, bool FixForRTL = true, int maxLineLengthForRTL = 0, bool ignoreRTLnumbers = true, bool applyParameters = false, GameObject localParametersRoot = null, string overrideLanguage = null, bool allowLocalizedParameters=true) + { + string Translation = null; + TryGetTranslation(Term, out Translation, FixForRTL, maxLineLengthForRTL, ignoreRTLnumbers, applyParameters, localParametersRoot, overrideLanguage, allowLocalizedParameters); + + return Translation; + } + public static string GetTermTranslation(string Term, bool FixForRTL = true, int maxLineLengthForRTL = 0, bool ignoreRTLnumbers = true, bool applyParameters = false, GameObject localParametersRoot = null, string overrideLanguage = null, bool allowLocalizedParameters=true) + { + return GetTranslation(Term, FixForRTL, maxLineLengthForRTL, ignoreRTLnumbers, applyParameters, localParametersRoot, overrideLanguage, allowLocalizedParameters); + } + + + public static bool TryGetTranslation(string Term, out string Translation, bool FixForRTL = true, int maxLineLengthForRTL = 0, bool ignoreRTLnumbers = true, bool applyParameters = false, GameObject localParametersRoot = null, string overrideLanguage = null, bool allowLocalizedParameters=true) + { + Translation = null; + if (string.IsNullOrEmpty(Term)) + return false; + + InitializeIfNeeded(); + + for (int i = 0, imax = Sources.Count; i < imax; ++i) + { + if (Sources[i].TryGetTranslation(Term, out Translation, overrideLanguage)) + { + if (applyParameters) + ApplyLocalizationParams(ref Translation, localParametersRoot, allowLocalizedParameters); + + if (IsRight2Left && FixForRTL) + Translation = ApplyRTLfix(Translation, maxLineLengthForRTL, ignoreRTLnumbers); + return true; + } + } + + return false; + } + + public static T GetTranslatedObject( string AssetName, Localize optionalLocComp=null) where T : Object + { + if (optionalLocComp != null) + { + return optionalLocComp.FindTranslatedObject(AssetName); + } + + T obj = FindAsset(AssetName) as T; + if (obj) + return obj; + + obj = ResourceManager.pInstance.GetAsset(AssetName); + return obj; + } + + public static T GetTranslatedObjectByTermName( string Term, Localize optionalLocComp=null) where T : Object + { + string translation = GetTranslation(Term, FixForRTL: false); + return GetTranslatedObject(translation); + } + + + public static string GetAppName(string languageCode) + { + if (!string.IsNullOrEmpty(languageCode)) + { + for (int i = 0; i < Sources.Count; ++i) + { + if (string.IsNullOrEmpty(Sources[i].mTerm_AppName)) + continue; + + int langIdx = Sources[i].GetLanguageIndexFromCode(languageCode, false); + if (langIdx < 0) + continue; + + var termData = Sources[i].GetTermData(Sources[i].mTerm_AppName); + if (termData == null) + continue; + + var appName = termData.GetTranslation(langIdx); + if (!string.IsNullOrEmpty(appName)) + return appName; + } + } + + return Application.productName; + } + + public static void LocalizeAll(bool Force = false) + { + LoadCurrentLanguage(); + + if (!Application.isPlaying) + { + DoLocalizeAll(Force); + return; + } + mLocalizeIsScheduledWithForcedValue |= Force; + if (mLocalizeIsScheduled) + { + return; + } + CoroutineManager.Start(Coroutine_LocalizeAll()); + } + + static IEnumerator Coroutine_LocalizeAll() + { + mLocalizeIsScheduled = true; + yield return null; + mLocalizeIsScheduled = false; + var force = mLocalizeIsScheduledWithForcedValue; + mLocalizeIsScheduledWithForcedValue = false; + DoLocalizeAll(force); + } + + static void DoLocalizeAll(bool Force = false) + { + Localize[] Locals = (Localize[])Resources.FindObjectsOfTypeAll( typeof(Localize) ); + for (int i=0, imax=Locals.Length; i GetCategories () + { + List Categories = new List (); + for (int i=0, imax=Sources.Count; i GetTermsList ( string Category = null ) + { + if (Sources.Count==0) + UpdateSources(); + + if (Sources.Count==1) + return Sources[0].GetTermsList(Category); + + HashSet Terms = new HashSet (); + for (int i=0, imax=Sources.Count; i(Terms); + } + + public static TermData GetTermData( string term ) + { + InitializeIfNeeded(); + + TermData data; + for (int i=0, imax=Sources.Count; i : ILocalizeTarget where T : Object + { + public T mTarget; + + public override bool IsValid(Localize cmp) + { + if (mTarget!=null) + { + var mTargetCmp = mTarget as Component; + if (mTargetCmp != null && mTargetCmp.gameObject != cmp.gameObject) + mTarget = null; + } + if (mTarget==null) + mTarget = cmp.GetComponent(); + return mTarget!=null; + } + } +} + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTarget.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTarget.cs.meta new file mode 100644 index 00000000..4cd9e46c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTarget.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: bc110e805ac87134bb23eb4f9d6989e8 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs new file mode 100644 index 00000000..d2c34e2f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs @@ -0,0 +1,41 @@ +using System; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace I2.Loc +{ + public abstract class ILocalizeTargetDescriptor + { + public string Name; + public int Priority; + public abstract bool CanLocalize(Localize cmp); + public abstract ILocalizeTarget CreateTarget(Localize cmp); + public abstract Type GetTargetType(); + } + + public abstract class LocalizeTargetDesc : ILocalizeTargetDescriptor where T : ILocalizeTarget + { + public override ILocalizeTarget CreateTarget(Localize cmp) { return ScriptableObject.CreateInstance(); } + public override Type GetTargetType() { return typeof(T); } + } + + + + public class LocalizeTargetDesc_Type : LocalizeTargetDesc where T: Object + where G: LocalizeTarget + { + public override bool CanLocalize(Localize cmp) { return cmp.GetComponent() != null; } + public override ILocalizeTarget CreateTarget(Localize cmp) + { + var target = cmp.GetComponent(); + if (target == null) + return null; + + var locTarget = ScriptableObject.CreateInstance(); + locTarget.mTarget = target; + return locTarget; + } + } + +} + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs.meta new file mode 100644 index 00000000..651f1283 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/ILocalizeTargetDesc.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 65c3e6b4b14772c4e9fb35235497819b +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs new file mode 100644 index 00000000..572e4b51 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs @@ -0,0 +1,66 @@ +#if TK2D + +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] + #endif + + public class LocalizeTarget_2DToolKit_Label : LocalizeTarget + { + static LocalizeTarget_2DToolKit_Label() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type() { Name = "2DToolKit Label", Priority = 100 }); } + + TextAnchor mOriginalAlignment = TextAnchor.MiddleCenter; + bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.TK2dFont; } + + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return true; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = (mTarget.font != null ? mTarget.font.name : string.Empty); + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + //--[ Localize Font Object ]---------- + tk2dFont newFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newFont != null && mTarget.font != newFont) + { + mTarget.font = newFont.data; + } + + if (mInitializeAlignment) + { + mInitializeAlignment = false; + mOriginalAlignment = mTarget.anchor; + } + + if (mainTranslation != null && mTarget.text != mainTranslation) + { + if (Localize.CurrentLocalizeComponent.CorrectAlignmentForRTL) + { + int align = (int)mTarget.anchor; + + if (align % 3 == 0) + mTarget.anchor = LocalizationManager.IsRight2Left ? mTarget.anchor + 2 : mOriginalAlignment; + else + if (align % 3 == 2) + mTarget.anchor = LocalizationManager.IsRight2Left ? mTarget.anchor - 2 : mOriginalAlignment; + } + mTarget.text = mainTranslation; + } + } + } +} +#endif + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs.meta new file mode 100644 index 00000000..c8989caa --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Label.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f7658f1522689aa4b93bc276acf537b1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs new file mode 100644 index 00000000..ec69300c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs @@ -0,0 +1,53 @@ +#if TK2D + +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] + #endif + + public class LocalizeTarget_2DToolKit_Sprite : LocalizeTarget + { + static LocalizeTarget_2DToolKit_Sprite() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type() { Name = "2DToolKit Sprite", Priority = 100 }); } + + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.TK2dCollection; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.TK2dCollection; } + + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = (mTarget.CurrentSprite != null ? mTarget.CurrentSprite.name : string.Empty); + secondaryTerm = (mTarget.Collection != null ? mTarget.Collection.spriteCollectionName : null); + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + if (string.IsNullOrEmpty(mainTranslation)) + return; + + //--[ Localize Atlas ]---------- + tk2dSpriteCollection newCollection = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + + if (newCollection != null) + { + if (mTarget.CurrentSprite.name != mainTranslation || mTarget.Collection.name != secondaryTranslation) + mTarget.SetSprite(newCollection.spriteCollection, mainTranslation); + } + else + { + if (mTarget.CurrentSprite.name != mainTranslation) + mTarget.SetSprite(mainTranslation); + } + } + } +} +#endif + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs.meta new file mode 100644 index 00000000..f4ca51fc --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_2DToolKit_Sprite.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 53d5ed87a66514e439dddd19568adedd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs new file mode 100644 index 00000000..09447490 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs @@ -0,0 +1,94 @@ +#if NGUI + +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_NGUI_Label : LocalizeTarget + { + static LocalizeTarget_NGUI_Label() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "NGUI Label", Priority = 100 }); } + + NGUIText.Alignment mAlignment_RTL = NGUIText.Alignment.Right; + NGUIText.Alignment mAlignment_LTR = NGUIText.Alignment.Left; + bool mAlignmentWasRTL; + bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.UIFont; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return true; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = mTarget.ambigiousFont != null ? mTarget.ambigiousFont.name : string.Empty; + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + //--[ Localize Font Object ]---------- + Font newFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newFont != null) + { + if (newFont != mTarget.ambigiousFont) + mTarget.ambigiousFont = newFont; + } + if (newFont==null) + { + UIFont newUIFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newUIFont != null && mTarget.ambigiousFont != newUIFont) + mTarget.ambigiousFont = newUIFont; + } + if (newFont == null) + { + NGUIFont newUIFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newUIFont != null && mTarget.ambigiousFont != newUIFont) + mTarget.ambigiousFont = newUIFont; + } + + + if (mInitializeAlignment) + { + mInitializeAlignment = false; + mAlignment_LTR = mAlignment_RTL = mTarget.alignment; + + if (LocalizationManager.IsRight2Left && mAlignment_RTL == NGUIText.Alignment.Right) + mAlignment_LTR = NGUIText.Alignment.Left; + if (!LocalizationManager.IsRight2Left && mAlignment_LTR == NGUIText.Alignment.Left) + mAlignment_RTL = NGUIText.Alignment.Right; + } + + UIInput input = NGUITools.FindInParents(mTarget.gameObject); + if (input != null && input.label == mTarget) + { + if (mainTranslation != null && input.defaultText != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL && (input.label.alignment == NGUIText.Alignment.Left || input.label.alignment == NGUIText.Alignment.Right)) + input.label.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + + input.defaultText = mainTranslation; + } + } + else + { + if (mainTranslation != null && mTarget.text != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL && (mTarget.alignment == NGUIText.Alignment.Left || mTarget.alignment == NGUIText.Alignment.Right)) + mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + + mTarget.text = mainTranslation; + } + } + } + } +} +#endif + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs.meta new file mode 100644 index 00000000..b1f87898 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Label.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3bd97513069766847851e1041f64e378 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs new file mode 100644 index 00000000..27ffedba --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs @@ -0,0 +1,65 @@ +#if NGUI + +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] + #endif + + public class LocalizeTarget_NGUI_Sprite : LocalizeTarget + { + static LocalizeTarget_NGUI_Sprite() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type() { Name = "NGUI UISprite", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Sprite; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.UIAtlas; } + public override bool CanUseSecondaryTerm () { return true; } + public override bool AllowMainTermToBeRTL () { return false; } + public override bool AllowSecondTermToBeRTL () { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm ) + { + primaryTerm = mTarget ? mTarget.spriteName : null; + secondaryTerm = (mTarget.atlas as UIAtlas ? (mTarget.atlas as UIAtlas).name : string.Empty); + } + + + public override void DoLocalize ( Localize cmp, string mainTranslation, string secondaryTranslation ) + { + if (mTarget.spriteName == mainTranslation) + return; + + //--[ Localize Atlas ]---------- + UIAtlas newAtlas = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + bool bChanged = false; + if (newAtlas != null && ((mTarget.atlas as UIAtlas) != newAtlas)) + { + mTarget.atlas = newAtlas; + bChanged = true; + } + + if (newAtlas==null) + { + NGUIAtlas newNGUIAtlas = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newAtlas != null && ((mTarget.atlas as NGUIAtlas) != newNGUIAtlas)) + { + mTarget.atlas = newAtlas; + bChanged = true; + } + + } + + if (mTarget.spriteName != mainTranslation && mTarget.atlas.GetSprite(mainTranslation) != null) + { + mTarget.spriteName = mainTranslation; + bChanged = true; + } + if (bChanged) + mTarget.MakePixelPerfect(); + } + } +} +#endif + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs.meta new file mode 100644 index 00000000..ad158713 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Sprite.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 545ef381b929ce44cad2bf111b096f2c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs new file mode 100644 index 00000000..d71b060d --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs @@ -0,0 +1,41 @@ +#if NGUI + +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_NGUI_Texture : LocalizeTarget + { + static LocalizeTarget_NGUI_Texture() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "NGUI UITexture", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Texture; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget!=null && mTarget.mainTexture!=null ? mTarget.mainTexture.name : null; + secondaryTerm = null; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + Texture Old = mTarget.mainTexture; + if (Old == null || Old.name != mainTranslation) + { + mTarget.mainTexture = cmp.FindTranslatedObject(mainTranslation); + mTarget.MakePixelPerfect(); + } + } + } +} +#endif + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs.meta new file mode 100644 index 00000000..2e8fd038 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_NGUI_Texture.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 8488ebda4a4bc5343b6fcd2158af0360 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs new file mode 100644 index 00000000..0e63d90a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs @@ -0,0 +1,42 @@ +#if SVG +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] + #endif + + public class LocalizeTarget_SVGImporter_Image : LocalizeTarget + { + static LocalizeTarget_SVGImporter_Image() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type() { Name = "SVG Image", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.SVGAsset; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Material; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = (mTarget.vectorGraphics != null ? mTarget.vectorGraphics.name : string.Empty); + secondaryTerm = (mTarget.material != null ? mTarget.material.name : null); + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + var OldVectorG = mTarget.vectorGraphics; + if (OldVectorG == null || OldVectorG.name != mainTranslation) + mTarget.vectorGraphics = cmp.FindTranslatedObject(mainTranslation); + + var OldMaterial = mTarget.material; + if (OldMaterial == null || OldMaterial.name != secondaryTranslation) + mTarget.material = cmp.FindTranslatedObject(secondaryTranslation); + + mTarget.SetAllDirty(); + } + } +} +#endif diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs.meta new file mode 100644 index 00000000..0ad6478a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Image.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: bbf97c698c733ea4bbf7bc2996984484 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs new file mode 100644 index 00000000..3e9d2db8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs @@ -0,0 +1,42 @@ +#if SVG +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [UnityEditor.InitializeOnLoad] + #endif + + public class LocalizeTarget_SVGImporter_Renderer : LocalizeTarget + { + static LocalizeTarget_SVGImporter_Renderer() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type() { Name = "SVG Renderer", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.SVGAsset; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Material; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = (mTarget.vectorGraphics != null ? mTarget.vectorGraphics.name : string.Empty); + secondaryTerm = (mTarget.opaqueMaterial != null ? mTarget.opaqueMaterial.name : string.Empty); + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + var OldVectorG = mTarget.vectorGraphics; + if (OldVectorG == null || OldVectorG.name != mainTranslation) + mTarget.vectorGraphics = cmp.FindTranslatedObject(mainTranslation); + + var OldMaterial = mTarget.opaqueMaterial; + if (OldMaterial == null || OldMaterial.name != secondaryTranslation) + mTarget.opaqueMaterial = cmp.FindTranslatedObject(secondaryTranslation); + + mTarget.SetAllDirty(); + } + } +} +#endif diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs.meta new file mode 100644 index 00000000..0ac2b0df --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_SVGImporter_Renderer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c78c473b19acc3844ba488904981d75c +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs new file mode 100644 index 00000000..8cd83383 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs @@ -0,0 +1,191 @@ +using System; +using TMPro; +using UnityEditor; +using UnityEngine; + +#if TextMeshPro +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_TextMeshPro_Label : LocalizeTarget + { + static LocalizeTarget_TextMeshPro_Label() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "TextMeshPro Label", Priority = 100 }); } + + TextAlignmentOptions mAlignment_RTL = TextAlignmentOptions.Right; + TextAlignmentOptions mAlignment_LTR = TextAlignmentOptions.Left; + bool mAlignmentWasRTL; + bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Font; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return true; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = mTarget.font != null ? mTarget.font.name : string.Empty; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + //--[ Localize Font Object ]---------- + { + TMP_FontAsset newFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + + if (newFont != null) + { + SetFont(mTarget, newFont); + } + else + { + //--[ Localize Font Material ]---------- + Material newMat = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newMat != null && mTarget.fontMaterial != newMat) + { + if (!newMat.name.StartsWith(mTarget.font.name, StringComparison.Ordinal)) + { + newFont = GetTMPFontFromMaterial(cmp, secondaryTranslation.EndsWith(newMat.name, StringComparison.Ordinal) ? secondaryTranslation : newMat.name); + if (newFont != null) + SetFont(mTarget, newFont); + } + SetMaterial(mTarget, newMat); + } + + } + } + if (mInitializeAlignment) + { + mInitializeAlignment = false; + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out mAlignment_LTR, out mAlignment_RTL); + } + else + { + TextAlignmentOptions alignRTL, alignLTR; + InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out alignLTR, out alignRTL); + + if (mAlignmentWasRTL && mAlignment_RTL != alignRTL || + !mAlignmentWasRTL && mAlignment_LTR != alignLTR) + { + mAlignment_LTR = alignLTR; + mAlignment_RTL = alignRTL; + } + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + } + + if (mainTranslation != null && mTarget.text != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL) + { + mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + } + + mTarget.isRightToLeftText = LocalizationManager.IsRight2Left; + if (LocalizationManager.IsRight2Left) mainTranslation = I2Utils.ReverseText(mainTranslation); + + mTarget.text = mainTranslation; + } + } + + #region Tools + internal static TMP_FontAsset GetTMPFontFromMaterial(Localize cmp, string matName) + { + string splitChars = " .\\/-[]()"; + for (int i = matName.Length - 1; i > 0;) + { + // Find first valid character + while (i > 0 && splitChars.IndexOf(matName[i]) >= 0) + i--; + + if (i <= 0) break; + + var fontName = matName.Substring(0, i + 1); + var obj = cmp.GetObject(fontName); + if (obj != null) + return obj; + + // skip this word + while (i > 0 && splitChars.IndexOf(matName[i]) < 0) + i--; + } + + return null; + } + + internal static void InitAlignment_TMPro(bool isRTL, TextAlignmentOptions alignment, out TextAlignmentOptions alignLTR, out TextAlignmentOptions alignRTL) + { + alignLTR = alignRTL = alignment; + + if (isRTL) + { + switch (alignment) + { + case TextAlignmentOptions.TopRight: alignLTR = TextAlignmentOptions.TopLeft; break; + case TextAlignmentOptions.Right: alignLTR = TextAlignmentOptions.Left; break; + case TextAlignmentOptions.BottomRight: alignLTR = TextAlignmentOptions.BottomLeft; break; + case TextAlignmentOptions.BaselineRight: alignLTR = TextAlignmentOptions.BaselineLeft; break; + case TextAlignmentOptions.MidlineRight: alignLTR = TextAlignmentOptions.MidlineLeft; break; + case TextAlignmentOptions.CaplineRight: alignLTR = TextAlignmentOptions.CaplineLeft; break; + + case TextAlignmentOptions.TopLeft: alignLTR = TextAlignmentOptions.TopRight; break; + case TextAlignmentOptions.Left: alignLTR = TextAlignmentOptions.Right; break; + case TextAlignmentOptions.BottomLeft: alignLTR = TextAlignmentOptions.BottomRight; break; + case TextAlignmentOptions.BaselineLeft: alignLTR = TextAlignmentOptions.BaselineRight; break; + case TextAlignmentOptions.MidlineLeft: alignLTR = TextAlignmentOptions.MidlineRight; break; + case TextAlignmentOptions.CaplineLeft: alignLTR = TextAlignmentOptions.CaplineRight; break; + + } + } + else + { + switch (alignment) + { + case TextAlignmentOptions.TopRight: alignRTL = TextAlignmentOptions.TopLeft; break; + case TextAlignmentOptions.Right: alignRTL = TextAlignmentOptions.Left; break; + case TextAlignmentOptions.BottomRight: alignRTL = TextAlignmentOptions.BottomLeft; break; + case TextAlignmentOptions.BaselineRight: alignRTL = TextAlignmentOptions.BaselineLeft; break; + case TextAlignmentOptions.MidlineRight: alignRTL = TextAlignmentOptions.MidlineLeft; break; + case TextAlignmentOptions.CaplineRight: alignRTL = TextAlignmentOptions.CaplineLeft; break; + + case TextAlignmentOptions.TopLeft: alignRTL = TextAlignmentOptions.TopRight; break; + case TextAlignmentOptions.Left: alignRTL = TextAlignmentOptions.Right; break; + case TextAlignmentOptions.BottomLeft: alignRTL = TextAlignmentOptions.BottomRight; break; + case TextAlignmentOptions.BaselineLeft: alignRTL = TextAlignmentOptions.BaselineRight; break; + case TextAlignmentOptions.MidlineLeft: alignRTL = TextAlignmentOptions.MidlineRight; break; + case TextAlignmentOptions.CaplineLeft: alignRTL = TextAlignmentOptions.CaplineRight; break; + } + } + } + + internal static void SetFont(TMP_Text label, TMP_FontAsset newFont) + { + if (label.font != newFont) + { + label.font = newFont; + } + if (label.linkedTextComponent != null) + { + SetFont(label.linkedTextComponent, newFont); + } + } + internal static void SetMaterial(TMP_Text label, Material newMat) + { + if (label.fontSharedMaterial != newMat) + { + label.fontSharedMaterial = newMat; + } + if (label.linkedTextComponent != null) + { + SetMaterial(label.linkedTextComponent, newMat); + } + } + #endregion + } +} +#endif \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs.meta new file mode 100644 index 00000000..f9e954b5 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_Label.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d96a6c3ea7d28744aacc367115a71af5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs new file mode 100644 index 00000000..7ea9df68 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs @@ -0,0 +1,98 @@ +using System; +using TMPro; +using UnityEditor; +using UnityEngine; + +#if TextMeshPro +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_TextMeshPro_UGUI : LocalizeTarget + { + static LocalizeTarget_TextMeshPro_UGUI() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "TextMeshPro UGUI", Priority = 100 }); } + + public TextAlignmentOptions mAlignment_RTL = TextAlignmentOptions.Right; + public TextAlignmentOptions mAlignment_LTR = TextAlignmentOptions.Left; + public bool mAlignmentWasRTL; + public bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.TextMeshPFont; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return true; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = mTarget.font != null ? mTarget.font.name : string.Empty; + } + + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + { + //--[ Localize Font Object ]---------- + TMP_FontAsset newFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + + if (newFont != null) + { + LocalizeTarget_TextMeshPro_Label.SetFont(mTarget, newFont); + } + else + { + //--[ Localize Font Material ]---------- + Material newMat = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newMat != null && mTarget.fontMaterial != newMat) + { + if (!newMat.name.StartsWith(mTarget.font.name, StringComparison.Ordinal)) + { + newFont = LocalizeTarget_TextMeshPro_Label.GetTMPFontFromMaterial(cmp, secondaryTranslation.EndsWith(newMat.name, StringComparison.Ordinal) ? secondaryTranslation : newMat.name); + if (newFont != null) + LocalizeTarget_TextMeshPro_Label.SetFont(mTarget, newFont); + } + LocalizeTarget_TextMeshPro_Label.SetMaterial( mTarget, newMat ); + } + } + } + + if (mInitializeAlignment) + { + mInitializeAlignment = false; + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + LocalizeTarget_TextMeshPro_Label.InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out mAlignment_LTR, out mAlignment_RTL); + } + else + { + TextAlignmentOptions alignRTL, alignLTR; + LocalizeTarget_TextMeshPro_Label.InitAlignment_TMPro(mAlignmentWasRTL, mTarget.alignment, out alignLTR, out alignRTL); + + if (mAlignmentWasRTL && mAlignment_RTL != alignRTL || + !mAlignmentWasRTL && mAlignment_LTR != alignLTR) + { + mAlignment_LTR = alignLTR; + mAlignment_RTL = alignRTL; + } + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + } + + if (mainTranslation != null && mTarget.text != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL) + { + mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + } + mTarget.isRightToLeftText = LocalizationManager.IsRight2Left; + if (LocalizationManager.IsRight2Left) mainTranslation = I2Utils.ReverseText(mainTranslation); + + mTarget.text = mainTranslation; + } + } + } +} +#endif \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs.meta new file mode 100644 index 00000000..acb45b3f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_TextMeshPro_UGUI.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 481ab606793a67349be805c13febeba0 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs new file mode 100644 index 00000000..12e537f7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs @@ -0,0 +1,45 @@ +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_AudioSource : LocalizeTarget + { + static LocalizeTarget_UnityStandard_AudioSource() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "AudioSource", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.AudioClip; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + AudioClip clip = mTarget.clip; + primaryTerm = clip ? clip.name : string.Empty; + secondaryTerm = null; + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + bool bIsPlaying = (mTarget.isPlaying || mTarget.loop) && Application.isPlaying; + AudioClip OldClip = mTarget.clip; + AudioClip NewClip = cmp.FindTranslatedObject(mainTranslation); + if (OldClip != NewClip) + mTarget.clip = NewClip; + + if (bIsPlaying && mTarget.clip) + mTarget.Play(); + + // If the old clip is not in the translatedObjects, then unload it as it most likely was loaded from Resources + //if (!HasTranslatedObject(OldClip)) + // Resources.UnloadAsset(OldClip); + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs.meta new file mode 100644 index 00000000..6f903d82 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_AudioSource.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 007f2c3f7b0e4a048ae89d65dcd38729 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs new file mode 100644 index 00000000..e3867f4b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs @@ -0,0 +1,51 @@ +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + public class LocalizeTargetDesc_Child : LocalizeTargetDesc + { + public override bool CanLocalize(Localize cmp) { return cmp.transform.childCount > 1; } + } + + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_Child : LocalizeTarget + { + static LocalizeTarget_UnityStandard_Child() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Child { Name = "Child", Priority = 200 }); } + + public override bool IsValid(Localize cmp) { return cmp.transform.childCount>1; } + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.GameObject; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = cmp.name; + secondaryTerm = null; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + if (string.IsNullOrEmpty(mainTranslation)) + return; + Transform locTr = cmp.transform; + + var objName = mainTranslation; + var idx = mainTranslation.LastIndexOfAny(LanguageSourceData.CategorySeparators); + if (idx >= 0) + objName = objName.Substring(idx + 1); + + for (int i = 0; i < locTr.childCount; ++i) + { + var child = locTr.GetChild(i); + child.gameObject.SetActive(child.name == objName); + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs.meta new file mode 100644 index 00000000..2ef5fae1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Child.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 61a67a81d07fe85429a253a86ebac910 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs new file mode 100644 index 00000000..23ca070c --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs @@ -0,0 +1,80 @@ +using UnityEditor; +using UnityEngine; + +#pragma warning disable 618 + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_MeshRenderer : LocalizeTarget + { + static LocalizeTarget_UnityStandard_MeshRenderer() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "MeshRenderer", Priority = 800 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Mesh; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Material; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + if (mTarget==null) + { + primaryTerm = secondaryTerm = null; + } + else + { + MeshFilter filter = mTarget.GetComponent(); + if (filter==null || filter.sharedMesh==null) + { + primaryTerm = null; + } + else + { + #if UNITY_EDITOR + primaryTerm = AssetDatabase.GetAssetPath(filter.sharedMesh); + I2Utils.RemoveResourcesPath(ref primaryTerm); + #else + primaryTerm = filter.sharedMesh.name; + #endif + } + } + + if (mTarget==null || mTarget.sharedMaterial==null) + { + secondaryTerm = null; + } + else + { + #if UNITY_EDITOR + secondaryTerm = AssetDatabase.GetAssetPath(mTarget.sharedMaterial); + I2Utils.RemoveResourcesPath(ref secondaryTerm); + #else + secondaryTerm = mTarget.sharedMaterial.name; + #endif + } + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + //--[ Localize Material]---------- + Material newMat = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newMat != null && mTarget.sharedMaterial != newMat) + { + mTarget.material = newMat; + } + + //--[ Localize Mesh ]---------- + Mesh newMesh = cmp.FindTranslatedObject( mainTranslation); + MeshFilter filter = mTarget.GetComponent(); + if (newMesh != null && filter.sharedMesh != newMesh) + { + filter.mesh = newMesh; + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs.meta new file mode 100644 index 00000000..79ef76f1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_MeshRenderer.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: b4679336707a2b54caa10d99561be751 +timeCreated: 1518408606 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs new file mode 100644 index 00000000..417d8496 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs @@ -0,0 +1,96 @@ +using UnityEditor; +using UnityEngine; + +#pragma warning disable 618 + +namespace I2.Loc +{ + public class LocalizeTargetDesc_Prefab : LocalizeTargetDesc + { + public override bool CanLocalize(Localize cmp) { return true; } + } + + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_Prefab : LocalizeTarget + { + static LocalizeTarget_UnityStandard_Prefab() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Prefab { Name = "Prefab", Priority = 250 }); } + + public override bool IsValid(Localize cmp) { return true; } + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.GameObject; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = cmp.name; + secondaryTerm = null; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + if (string.IsNullOrEmpty(mainTranslation)) + return; + + if (mTarget && mTarget.name == mainTranslation) + return; + + Transform locTr = cmp.transform; + + var objName = mainTranslation; + var idx = mainTranslation.LastIndexOfAny(LanguageSourceData.CategorySeparators); + if (idx >= 0) + objName = objName.Substring(idx + 1); + + Transform mNew = InstantiateNewPrefab(cmp, mainTranslation); + if (mNew == null) + return; + mNew.name = objName; + + for (int i = locTr.childCount - 1; i >= 0; --i) + { + var child = locTr.GetChild(i); + if (child!=mNew) + { + #if UNITY_EDITOR + if (Application.isPlaying) + Destroy(child.gameObject); + else + DestroyImmediate(child.gameObject); + #else + Object.Destroy (child.gameObject); + #endif + } + } + } + + Transform InstantiateNewPrefab(Localize cmp, string mainTranslation) + { + GameObject NewPrefab = cmp.FindTranslatedObject(mainTranslation); + if (NewPrefab == null) + return null; + + GameObject current = mTarget; + + mTarget = Instantiate(NewPrefab); + if (mTarget == null) + return null; + + Transform locTr = cmp.transform; + Transform mNew = mTarget.transform; + mNew.SetParent(locTr); + + Transform bBase = current ? current.transform : locTr; + //mNew.localScale = bBase.localScale; + mNew.rotation = bBase.rotation; + mNew.position = bBase.position; + + return mNew; + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs.meta new file mode 100644 index 00000000..d2de6dfc --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_Prefab.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: bd8b481d182cbcd4293524eb92ee520c +timeCreated: 1518408606 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs new file mode 100644 index 00000000..396c7076 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs @@ -0,0 +1,41 @@ +using UnityEditor; +using UnityEngine; + +#pragma warning disable 618 + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_SpriteRenderer : LocalizeTarget + { + static LocalizeTarget_UnityStandard_SpriteRenderer() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "SpriteRenderer", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Sprite; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + Sprite sprite = mTarget.sprite; + primaryTerm = sprite != null ? sprite.name : string.Empty; + secondaryTerm = null; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + Sprite Old = mTarget.sprite; + if (Old == null || Old.name != mainTranslation) + mTarget.sprite = cmp.FindTranslatedObject(mainTranslation); + + // If the old value is not in the translatedObjects, then unload it as it most likely was loaded from Resources + //if (!HasTranslatedObject(Old)) + // Resources.UnloadAsset(Old); + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs.meta new file mode 100644 index 00000000..05bacef1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_SpriteRenderer.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3b29d7ab09a96634a9f704e6a1f21193 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs new file mode 100644 index 00000000..be23f972 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs @@ -0,0 +1,68 @@ +using UnityEditor; +using UnityEngine; + +#pragma warning disable 618 + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityStandard_TextMesh : LocalizeTarget + { + static LocalizeTarget_UnityStandard_TextMesh() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "TextMesh", Priority = 100 }); } + + TextAlignment mAlignment_RTL = TextAlignment.Right; + TextAlignment mAlignment_LTR = TextAlignment.Left; + bool mAlignmentWasRTL; + bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Font; } + public override bool CanUseSecondaryTerm() { return true; } + public override bool AllowMainTermToBeRTL() { return true; } + public override bool AllowSecondTermToBeRTL() { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = string.IsNullOrEmpty(Secondary) && mTarget.font != null ? mTarget.font.name : null; + } + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + //--[ Localize Font Object ]---------- + Font newFont = cmp.GetSecondaryTranslatedObj(ref mainTranslation, ref secondaryTranslation); + if (newFont != null && mTarget.font != newFont) + { + mTarget.font = newFont; + MeshRenderer rend = mTarget.GetComponentInChildren(); + rend.material = newFont.material; + } + + //--[ Localize Text ]---------- + if (mInitializeAlignment) + { + mInitializeAlignment = false; + + mAlignment_LTR = mAlignment_RTL = mTarget.alignment; + + if (LocalizationManager.IsRight2Left && mAlignment_RTL == TextAlignment.Right) + mAlignment_LTR = TextAlignment.Left; + if (!LocalizationManager.IsRight2Left && mAlignment_LTR == TextAlignment.Left) + mAlignment_RTL = TextAlignment.Right; + + } + if (mainTranslation != null && mTarget.text != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL && mTarget.alignment != TextAlignment.Center) + mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + + mTarget.font.RequestCharactersInTexture(mainTranslation); + mTarget.text = mainTranslation; + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs.meta new file mode 100644 index 00000000..f34d3fc4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_TextMesh.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 62e865dd37373234c9d966bdd78278e1 +timeCreated: 1518408606 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs new file mode 100644 index 00000000..05de2559 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs @@ -0,0 +1,33 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.Video; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + public class LocalizeTarget_UnityStandard_VideoPlayer : LocalizeTarget + { + static LocalizeTarget_UnityStandard_VideoPlayer() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "VideoPlayer", Priority = 100 }); } + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Video; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + VideoClip clip = mTarget.clip; + primaryTerm = clip != null ? clip.name: string.Empty; + secondaryTerm = null; + } + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + VideoClip Old = mTarget.clip; + if (Old == null || Old.name != mainTranslation) + mTarget.clip = cmp.FindTranslatedObject(mainTranslation); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs.meta new file mode 100644 index 00000000..1767437e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityStandard_VideoPlayer.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 5fcaa99c1874460eb953851cbf4bfad2 +timeCreated: 1601759602 \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs new file mode 100644 index 00000000..dd6fa690 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs @@ -0,0 +1,53 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityUI_Image : LocalizeTarget + { + static LocalizeTarget_UnityUI_Image() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "Image", Priority = 100 }); } + + public override bool CanUseSecondaryTerm () { return false; } + public override bool AllowMainTermToBeRTL () { return false; } + public override bool AllowSecondTermToBeRTL () { return false; } + public override eTermType GetPrimaryTermType(Localize cmp) + { + return mTarget.sprite == null ? eTermType.Texture : eTermType.Sprite; + } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm ) + { + primaryTerm = mTarget.mainTexture ? mTarget.mainTexture.name : ""; + if (mTarget.sprite!=null && mTarget.sprite.name!=primaryTerm) + primaryTerm += "." + mTarget.sprite.name; + + secondaryTerm = null; + } + + + public override void DoLocalize ( Localize cmp, string mainTranslation, string secondaryTranslation ) + { + Sprite Old = mTarget.sprite; + if (Old==null || Old.name!=mainTranslation) + mTarget.sprite = cmp.FindTranslatedObject( mainTranslation ); + + // If the old value is not in the translatedObjects, then unload it as it most likely was loaded from Resources + //if (!HasTranslatedObject(Old)) + // Resources.UnloadAsset(Old); + + // In the editor, sometimes unity "forgets" to show the changes +#if UNITY_EDITOR + if (!Application.isPlaying) + EditorUtility.SetDirty( mTarget ); +#endif + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs.meta new file mode 100644 index 00000000..3910dd9f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Image.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: bedef2aeaac8da04faa9a07b7241d0ad +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs new file mode 100644 index 00000000..25b5b5d9 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs @@ -0,0 +1,47 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityUI_RawImage : LocalizeTarget + { + static LocalizeTarget_UnityUI_RawImage() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "RawImage", Priority = 100 }); } + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Texture; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; } + public override bool CanUseSecondaryTerm() { return false; } + public override bool AllowMainTermToBeRTL() { return false; } + public override bool AllowSecondTermToBeRTL() { return false; } + + + public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm) + { + primaryTerm = mTarget.mainTexture ? mTarget.mainTexture.name : ""; + secondaryTerm = null; + } + + + public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation) + { + Texture Old = mTarget.texture; + if (Old == null || Old.name != mainTranslation) + mTarget.texture = cmp.FindTranslatedObject(mainTranslation); + + // If the old value is not in the translatedObjects, then unload it as it most likely was loaded from Resources + //if (!HasTranslatedObject(Old)) + // Resources.UnloadAsset(Old); + + // In the editor, sometimes unity "forgets" to show the changes + #if UNITY_EDITOR + if (!Application.isPlaying) + EditorUtility.SetDirty(mTarget); + #endif + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs.meta new file mode 100644 index 00000000..6a4c5b0a --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_RawImage.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: a58a0cb6f0764ca42b2877aa2c6fa0af +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs new file mode 100644 index 00000000..cb897e11 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs @@ -0,0 +1,111 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + #if UNITY_EDITOR + [InitializeOnLoad] + #endif + + public class LocalizeTarget_UnityUI_Text : LocalizeTarget + { + static LocalizeTarget_UnityUI_Text() { AutoRegister(); } + [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type { Name = "Text", Priority = 100 }); } + + TextAnchor mAlignment_RTL = TextAnchor.UpperRight; + TextAnchor mAlignment_LTR = TextAnchor.UpperLeft; + bool mAlignmentWasRTL; + bool mInitializeAlignment = true; + + public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Text; } + public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Font; } + public override bool CanUseSecondaryTerm () { return true; } + public override bool AllowMainTermToBeRTL () { return true; } + public override bool AllowSecondTermToBeRTL () { return false; } + + public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm ) + { + primaryTerm = mTarget ? mTarget.text : null; + secondaryTerm = mTarget.font!=null ? mTarget.font.name : string.Empty; + } + + + public override void DoLocalize ( Localize cmp, string mainTranslation, string secondaryTranslation ) + { + //--[ Localize Font Object ]---------- + Font newFont = cmp.GetSecondaryTranslatedObj( ref mainTranslation, ref secondaryTranslation ); + if (newFont!=null && newFont!=mTarget.font) + mTarget.font = newFont; + + if (mInitializeAlignment) + { + mInitializeAlignment = false; + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + InitAlignment( mAlignmentWasRTL, mTarget.alignment, out mAlignment_LTR, out mAlignment_RTL ); + } + else + { + TextAnchor alignRTL, alignLTR; + InitAlignment( mAlignmentWasRTL, mTarget.alignment, out alignLTR, out alignRTL ); + + if (mAlignmentWasRTL && mAlignment_RTL!=alignRTL || + !mAlignmentWasRTL && mAlignment_LTR != alignLTR) + { + mAlignment_LTR = alignLTR; + mAlignment_RTL = alignRTL; + } + mAlignmentWasRTL = LocalizationManager.IsRight2Left; + } + + if (mainTranslation!=null && mTarget.text != mainTranslation) + { + if (cmp.CorrectAlignmentForRTL) + { + mTarget.alignment = LocalizationManager.IsRight2Left ? mAlignment_RTL : mAlignment_LTR; + } + + + mTarget.text = mainTranslation; + mTarget.SetVerticesDirty(); + + // In the editor, sometimes unity "forgets" to show the changes + #if UNITY_EDITOR + if (!Application.isPlaying) + EditorUtility.SetDirty( mTarget ); + #endif + } + } + + void InitAlignment ( bool isRTL, TextAnchor alignment, out TextAnchor alignLTR, out TextAnchor alignRTL ) + { + alignLTR = alignRTL = alignment; + + if (isRTL) + { + switch (alignment) + { + case TextAnchor.UpperRight: alignLTR = TextAnchor.UpperLeft; break; + case TextAnchor.MiddleRight: alignLTR = TextAnchor.MiddleLeft; break; + case TextAnchor.LowerRight: alignLTR = TextAnchor.LowerLeft; break; + case TextAnchor.UpperLeft: alignLTR = TextAnchor.UpperRight; break; + case TextAnchor.MiddleLeft: alignLTR = TextAnchor.MiddleRight; break; + case TextAnchor.LowerLeft: alignLTR = TextAnchor.LowerRight; break; + } + } + else + { + switch (alignment) + { + case TextAnchor.UpperRight: alignRTL = TextAnchor.UpperLeft; break; + case TextAnchor.MiddleRight: alignRTL = TextAnchor.MiddleLeft; break; + case TextAnchor.LowerRight: alignRTL = TextAnchor.LowerLeft; break; + case TextAnchor.UpperLeft: alignRTL = TextAnchor.UpperRight; break; + case TextAnchor.MiddleLeft: alignRTL = TextAnchor.MiddleRight; break; + case TextAnchor.LowerLeft: alignRTL = TextAnchor.LowerRight; break; + } + } + } + } +} + diff --git a/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs.meta new file mode 100644 index 00000000..2372f6e8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Targets/LocalizeTarget_UnityUI_Text.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 332e36893e7cf4a49b3c1f72f76cd5e1 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/TermData.cs b/popcorn/Assets/I2/Localization/Scripts/TermData.cs new file mode 100644 index 00000000..13325c3b --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/TermData.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public enum eTermType + { + Text, Font, Texture, AudioClip, GameObject, Sprite, Material, Child, Mesh, + #if NGUI + UIAtlas, UIFont, + #endif + #if TK2D + TK2dFont, TK2dCollection, + #endif + #if TextMeshPro + TextMeshPFont, + #endif + #if SVG + SVGAsset, + #endif + Object, + Video + } + + public enum TranslationFlag : byte + { + Normal = 1, + AutoTranslated = 2 + } + + + [Serializable] + public class TermData + { + public string Term = string.Empty; + public eTermType TermType = eTermType.Text; + + #if !UNITY_EDITOR + [NonSerialized] + #endif + public string Description; + + public string[] Languages = Array.Empty(); + public byte[] Flags = Array.Empty(); // flags for each translation + + [SerializeField] private string[] Languages_Touch; // TO BE REMOVED IN A FUTURE RELEASE + + public string GetTranslation ( int idx, string specialization=null, bool editMode=false ) + { + string text = Languages[idx]; + if (text != null) + { + text = SpecializationManager.GetSpecializedText(text, specialization); + if (!editMode) + { + text = text.Replace("[i2nt]", "").Replace("[/i2nt]", ""); + } + } + return text; + } + + public void SetTranslation( int idx, string translation, string specialization = null) + { + Languages[idx] = SpecializationManager.SetSpecializedText( Languages[idx], translation, specialization); + } + + public void RemoveSpecialization(string specialization) + { + for (int i = 0; i < Languages.Length; ++i) + RemoveSpecialization(i, specialization); + } + + + public void RemoveSpecialization( int idx, string specialization ) + { + var text = Languages[idx]; + if (specialization == "Any" || !text.Contains("[i2s_" + specialization + "]")) + { + return; + } + + var dict = SpecializationManager.GetSpecializations(text); + dict.Remove(specialization); + Languages[idx] = SpecializationManager.SetSpecializedText(dict); + } + + public bool IsAutoTranslated( int idx, bool IsTouch ) + { + return (Flags[idx] & (byte)TranslationFlag.AutoTranslated) > 0; + } + + public void Validate () + { + int nLanguages = Mathf.Max(Languages.Length, Flags.Length); + + if (Languages.Length != nLanguages) Array.Resize(ref Languages, nLanguages); + if (Flags.Length!=nLanguages) Array.Resize(ref Flags, nLanguages); + + if (Languages_Touch != null) + { + for (int i = 0; i < Mathf.Min(Languages_Touch.Length, nLanguages); ++i) + { + if (string.IsNullOrEmpty(Languages[i]) && !string.IsNullOrEmpty(Languages_Touch[i])) + { + Languages[i] = Languages_Touch[i]; + Languages_Touch[i] = null; + } + } + Languages_Touch = null; + } + } + + public bool IsTerm( string name, bool allowCategoryMistmatch) + { + if (!allowCategoryMistmatch) + return name == Term; + + return name == LanguageSourceData.GetKeyFromFullTerm (Term); + } + + public bool HasSpecializations() + { + for (int i = 0; i < Languages.Length; ++i) + { + if (!string.IsNullOrEmpty(Languages[i]) && Languages[i].Contains("[i2s_")) + return true; + } + return false; + } + + public List GetAllSpecializations() + { + List values = new List(); + for (int i = 0; i < Languages.Length; ++i) + SpecializationManager.AppendSpecializations(Languages[i], values); + return values; + } + } + + public class TermsPopup : PropertyAttribute + { + public TermsPopup(string filter = "") + { + Filter = filter; + } + + public string Filter { get; private set; } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/TermData.cs.meta b/popcorn/Assets/I2/Localization/Scripts/TermData.cs.meta new file mode 100644 index 00000000..5a63fee5 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/TermData.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: e04d3f1e4351c9740ad1815d63ede4cd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils.meta b/popcorn/Assets/I2/Localization/Scripts/Utils.meta new file mode 100644 index 00000000..7f040687 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 23035eaab7d1f024cb7e7b5bae9b078f +folderAsset: yes +timeCreated: 1478234053 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs new file mode 100644 index 00000000..99ded31e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs @@ -0,0 +1,13 @@ +using UnityEngine; + +namespace I2.Loc +{ + + public class AutoChangeCultureInfo : MonoBehaviour + { + public void Start() + { + LocalizationManager.EnableChangingCultureInfo(true); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs.meta new file mode 100644 index 00000000..9893897e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/AutoChangeCultureInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d7ad57256fd47940aba8035315bd2ca +timeCreated: 1478233236 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs new file mode 100644 index 00000000..72d168b4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs @@ -0,0 +1,53 @@ +using System.Collections; +using UnityEditor; +using UnityEngine; + +namespace I2.Loc +{ + // This class is used to spawn coroutines from outside of MonoBehaviors + public class CoroutineManager : MonoBehaviour + { + static CoroutineManager pInstance + { + get{ + if (mInstance==null) + { + GameObject GO = new GameObject( "_Coroutiner" ); + GO.hideFlags = HideFlags.HideAndDontSave; + mInstance = GO.AddComponent(); + if (Application.isPlaying) + DontDestroyOnLoad(GO); + } + return mInstance; + } + } + static CoroutineManager mInstance; + + + private void Awake() + { + if (Application.isPlaying) + DontDestroyOnLoad(gameObject); + } + + public static Coroutine Start(IEnumerator coroutine) + { + #if UNITY_EDITOR + // Special case to allow coroutines to run in the Editor + if (!Application.isPlaying) + { + EditorApplication.CallbackFunction delg=null; + delg = delegate + { + if (!coroutine.MoveNext()) + EditorApplication.update -= delg; + }; + EditorApplication.update += delg; + return null; + } + #endif + + return pInstance.StartCoroutine(coroutine); + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs.meta new file mode 100644 index 00000000..19594d90 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/CoroutineManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 20c75ea9a203e3d40aafe9b20abbd228 +timeCreated: 1502501187 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs new file mode 100644 index 00000000..7d9ff923 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs @@ -0,0 +1,27 @@ +using UnityEngine; +using UnityEngine.Events; + +namespace I2.Loc +{ + [AddComponentMenu("I2/Localization/I2 Localize Callback")] + public class CustomLocalizeCallback : MonoBehaviour + { + public UnityEvent _OnLocalize = new UnityEvent(); + + public void OnEnable() + { + LocalizationManager.OnLocalizeEvent -= OnLocalize; + LocalizationManager.OnLocalizeEvent += OnLocalize; + } + + public void OnDisable() + { + LocalizationManager.OnLocalizeEvent -= OnLocalize; + } + + public void OnLocalize() + { + _OnLocalize.Invoke(); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs.meta new file mode 100644 index 00000000..183b8920 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/CustomLocalizeCallback.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 24da539b4435ced4da00f418327a772c +timeCreated: 1520536965 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs new file mode 100644 index 00000000..fa2d14e4 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs @@ -0,0 +1,157 @@ +using System.Linq; + +namespace I2.Loc +{ + + public class HindiFixer + { + + // Needs to also implement: Hindi: https://www.microsoft.com/typography/OpenTypeDev/devanagari/intro.htm + //https://social.msdn.microsoft.com/Forums/windows/en-US/9883ff08-bd72-499b-9543-ed424167281d/converting-hindi-text-to-english-text?forum=winforms + internal static string Fix(string text) + { + while (true) + { + char[] arr = text.ToCharArray(); + bool changed = false; + + for (int i = 0; i < arr.Length; ++i) + { + // interchange the order of "i" vowel + if (arr[i] == 2367 && !char.IsWhiteSpace(arr[i - 1]) && arr[i - 1]!=0) + { + arr[i] = arr[i - 1]; + arr[i - 1] = (char)2367; + changed = true; + } + + if (i == arr.Length - 1) + continue; + + // letter "I" + Nukta forms letter vocalic "L" + if (arr[i] == 2311) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2316; + arr[i + 1] = (char)0; + changed = true; + } + } + + // vowel sign vocalic "R" + sign Nukta forms vowel sign vocalic "Rr" + if (arr[i] == 2371) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2372; + arr[i + 1] = (char)0; + changed = true; + } + } + + // Candrabindu + sign Nukta forms Om + if (arr[i] == 2305) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2384; + arr[i + 1] = (char)0; + changed = true; + } + } + + // letter vocalic "R" + sign Nukta forms letter vocalic "Rr" + if (arr[i] == 2315) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2400; + arr[i + 1] = (char)0; + changed = true; + } + } + + // letter "Ii" + sign Nukta forms letter vocalic "LI" + if (arr[i] == 2312) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2401; + arr[i + 1] = (char)0; + changed = true; + } + } + + // vowel sign "I" + sign Nukta forms vowel sign vocalic "L" + if (arr[i] == 2367) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2402; + arr[i + 1] = (char)0; + changed = true; + } + } + + // vowel sign "Ii" + sign Nukta forms vowel sign vocalic "LI" + if (arr[i] == 2368) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2403; + arr[i + 1] = (char)0; + changed = true; + } + } + + // Danda + sign Nukta forms sign Avagraha + if (arr[i] == 2404) + { + if (arr[i + 1] == 2364) + { + arr[i] = (char)2365; + arr[i + 1] = (char)0; + changed = true; + } + } + + // consonant + Halant + Halant + consonant forms consonant + Halant + ZWNJ + consonant + //if (arr[i] == 2381) + //{ + // if (arr[i + 1] == 2381) + // { + // arr[i+1] = (char)8204; // + // } + //} + + // consonant + Halant + Nukta + consonant forms consonant + Halant + ZWJ + Consonant + //if (arr[i] == 2364) + //{ + // if (arr[i + 1] == 2381) + // { + // arr[i] = (char)2381; // + // arr[i+1] = (char)8205; // + // } + //} + /*if (arr[i] == 0x938 && arr[i + 1] == 0x94D)//थ') + { + arr[i] = (char)0x930; + arr[i + 1] = (char)0; + }*/ + } + + if (!changed) + { + return text; + } + + var newText = new string(arr.Where(x => x != 0).ToArray()); + if (newText == text) + return newText; + text = newText; + return text; // remove this later to allow for several passes + } + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs.meta new file mode 100644 index 00000000..4cd2fde1 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/HindiFixer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7b58f53b44162054f8b586f0cdbe43ba +timeCreated: 1506968129 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs new file mode 100644 index 00000000..ee2e789e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs @@ -0,0 +1,308 @@ +using System; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using UnityEditor; +using UnityEngine; +using UnityEngine.Networking; +using UnityEngine.SceneManagement; + +namespace I2.Loc +{ + public static class I2Utils + { + public const string ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"; + public const string NumberChars = "0123456789"; + public const string ValidNameSymbols = ".-_$#@*()[]{}+:?!&',^=<>~`"; + + public static string ReverseText(string source) + { + int len = source.Length; + char[] output = new char[len]; + + char[] separators = { '\r', '\n' }; + for (int istart = 0; istart (ValidChars.IndexOf(c)>=0 || c==' ' || (c == '\\' && allowCategory) || (c == '/' && allowCategory))).ToArray()); + //return new string(text.ToCharArray().Select(c => (char.IsControl(c) || (c == '\\' && !allowCategory) || (c == '\"') || (c == '/')) ? ' ' : c).ToArray()); + //return new string(text.ToCharArray().Select(c => ((allowCategory && (c == '\\' || c == '\"' || (c == '/'))) || char.IsLetterOrDigit(c))?c:' ').ToArray()); + + + // Remove Non-Letter/Digits and collapse all extra espaces into a single space + int current = 0; + char[] output = new char[text.Length]; + bool skipped = false; + + foreach (char cc in text.Trim()) + { + char c = ' '; + if (allowCategory && (cc == '\\' || cc == '\"' || cc == '/') || + char.IsLetterOrDigit(cc) || + ValidNameSymbols.IndexOf(cc) >= 0) + { + c = cc; + } + + if (char.IsWhiteSpace(c)) + { + if (!skipped) + { + if (current > 0) + output[current++] = ' '; + + skipped = true; + } + } + else + { + skipped = false; + output[current++] = c; + } + } + + return new string(output, 0, current); + } + + public static string GetValidTermName( string text, bool allowCategory = false) + { + if (text == null) + return null; + text = RemoveTags(text); + return RemoveNonASCII(text, allowCategory); + } + + public static string SplitLine(string line, int maxCharacters) + { + if (maxCharacters <= 0 || line.Length < maxCharacters) + return line; + + var chars = line.ToCharArray(); + bool insideOfLine = true; + bool allowNewLine = false; + for (int i = 0, nCharsInLine = 0; i < chars.Length; ++i) + { + if (insideOfLine) + { + nCharsInLine++; + if (chars[i] == '\n') + { + nCharsInLine = 0; + } + if (nCharsInLine >= maxCharacters && char.IsWhiteSpace(chars[i])) + { + chars[i] = '\n'; + insideOfLine = false; + allowNewLine = false; + } + } + else + { + if (!char.IsWhiteSpace(chars[i])) + { + insideOfLine = true; + nCharsInLine = 0; + } + else + { + if (chars[i] != '\n') + { + chars[i] = (char)0; + } + else + { + if (!allowNewLine) + chars[i] = (char)0; + allowNewLine = true; + } + } + } + } + + return new string(chars.Where(c => c != (char)0).ToArray()); + } + + public static bool FindNextTag(string line, int iStart, out int tagStart, out int tagEnd) + { + tagStart = -1; + tagEnd = -1; + int len = line.Length; + + // Find where the tag starts + for (tagStart = iStart; tagStart < len; ++tagStart) + if (line[tagStart] == '[' || line[tagStart] == '(' || line[tagStart] == '{' || line[tagStart] == '<') + break; + + if (tagStart == len) + return false; + + bool isArabic = false; + for (tagEnd = tagStart + 1; tagEnd < len; ++tagEnd) + { + char c = line[tagEnd]; + if (c == ']' || c == ')' || c == '}' || c=='>') + { + if (isArabic) return FindNextTag(line, tagEnd + 1, out tagStart, out tagEnd); + return true; + } + if (c > 255) isArabic = true; + } + + // there is an open, but not close character + return false; + } + + public static string RemoveTags(string text) + { + return Regex.Replace(text, @"\{\[(.*?)]}|\[(.*?)]|\<(.*?)>", ""); + } + + public static bool RemoveResourcesPath(ref string sPath) + { + int Ind1 = sPath.IndexOf("\\Resources\\", StringComparison.Ordinal); + int Ind2 = sPath.IndexOf("\\Resources/", StringComparison.Ordinal); + int Ind3 = sPath.IndexOf("/Resources\\", StringComparison.Ordinal); + int Ind4 = sPath.IndexOf("/Resources/", StringComparison.Ordinal); + int Index = Mathf.Max(Ind1, Ind2, Ind3, Ind4); + bool IsResource = false; + if (Index >= 0) + { + sPath = sPath.Substring(Index + 11); + IsResource = true; + } + else + { + // If its not in the Resources, then it has to be in the References + // Therefore, the path has to be stripped and let only the name + Index = sPath.LastIndexOfAny(LanguageSourceData.CategorySeparators); + if (Index > 0) + sPath = sPath.Substring(Index + 1); + } + + string Extension = Path.GetExtension(sPath); + if (!string.IsNullOrEmpty(Extension)) + sPath = sPath.Substring(0, sPath.Length - Extension.Length); + + return IsResource; + } + + public static bool IsPlaying() + { + if (Application.isPlaying) + return true; + #if UNITY_EDITOR + return EditorApplication.isPlayingOrWillChangePlaymode; + #else + return false; + #endif + } + + public static string GetPath(this Transform tr) + { + var parent = tr.parent; + if (tr == null) + return tr.name; + return parent.GetPath() + "/" + tr.name; + } + +#if UNITY_5_3_OR_NEWER + public static Transform FindObject(string objectPath) + { + return FindObject(SceneManager.GetActiveScene(), objectPath); + } + + + public static Transform FindObject(Scene scene, string objectPath) + { + //var roots = SceneManager.GetActiveScene().GetRootGameObjects(); + var roots = scene.GetRootGameObjects(); + for (int i=0; i(Transform tr) where H : Component + { + if (!tr) + return null; + + H comp = tr.GetComponent(); + while (!comp && tr) + { + comp = tr.GetComponent(); + tr = tr.parent; + } + return comp; + } + + public static string GetCaptureMatch(Match match) + { + for (int i = match.Groups.Count - 1; i >= 0; --i) + if (match.Groups[i].Success) + { + return match.Groups[i].ToString(); + } + return match.ToString(); + } + + public static void SendWebRequest(UnityWebRequest www ) + { + #if UNITY_2017_2_OR_NEWER + www.SendWebRequest(); + #else + www.Send(); + #endif + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs.meta new file mode 100644 index 00000000..802419e5 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/I2Utils.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 7a974f5f5b8a8c94abaf68d987ea0662 +timeCreated: 1516389217 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs new file mode 100644 index 00000000..8cce108f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace I2.Loc +{ + public interface ILocalizationParamsManager + { + string GetParameterValue( string Param ); + } + + public class LocalizationParamsManager : MonoBehaviour, ILocalizationParamsManager + { + [Serializable] + public struct ParamValue + { + public string Name, Value; + + } + + [SerializeField] + public List _Params = new List(); + + public bool _IsGlobalManager; + + public string GetParameterValue( string ParamName ) + { + if (_Params != null) + { + for (int i = 0, imax = _Params.Count; i < imax; ++i) + if (_Params[i].Name == ParamName) + return _Params[i].Value; + } + return null; // not found + } + + public void SetParameterValue( string ParamName, string ParamValue, bool localize = true ) + { + bool setted = false; + for (int i = 0, imax = _Params.Count; i < imax; ++i) + if (_Params[i].Name == ParamName) + { + var temp = _Params[i]; + temp.Value = ParamValue; + _Params[i] = temp; + setted = true; + break; + } + if (!setted) + _Params.Add(new ParamValue { Name = ParamName, Value = ParamValue }); + + if (localize) + OnLocalize(); + } + + public void OnLocalize() + { + var loc = GetComponent(); + if (loc != null) + loc.OnLocalize(true); + } + + public virtual void OnEnable() + { + if (_IsGlobalManager) + DoAutoRegister(); + } + + //[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] + //public void AutoStart() + //{ + // if (_AutoRegister) + // DoAutoRegister(); + //} + + public void DoAutoRegister() + { + if (!LocalizationManager.ParamManagers.Contains(this)) + { + LocalizationManager.ParamManagers.Add(this); + LocalizationManager.LocalizeAll(true); + } + } + + public void OnDisable() + { + LocalizationManager.ParamManagers.Remove(this); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs.meta new file mode 100644 index 00000000..0e6360e6 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizationParamsManager.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: c9586cfd190ca384a8dd72aa92c86152 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs new file mode 100644 index 00000000..66b758cc --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs @@ -0,0 +1,42 @@ +using System; + +namespace I2.Loc +{ + [Serializable] + public struct LocalizedString + { + public string mTerm; + public bool mRTL_IgnoreArabicFix; + public int mRTL_MaxLineLength; + public bool mRTL_ConvertNumbers; + public bool m_DontLocalizeParameters; + + public static implicit operator string(LocalizedString s) + { + return s.ToString(); + } + + public static implicit operator LocalizedString(string term) + { + return new LocalizedString { mTerm = term }; + } + + public LocalizedString (LocalizedString str) + { + mTerm = str.mTerm; + mRTL_IgnoreArabicFix = str.mRTL_IgnoreArabicFix; + mRTL_MaxLineLength = str.mRTL_MaxLineLength; + mRTL_ConvertNumbers = str.mRTL_ConvertNumbers; + m_DontLocalizeParameters = str.m_DontLocalizeParameters; + } + + + + public override string ToString() + { + var translation = LocalizationManager.GetTranslation(mTerm, !mRTL_IgnoreArabicFix, mRTL_MaxLineLength, !mRTL_ConvertNumbers, true ); + LocalizationManager.ApplyLocalizationParams(ref translation, !m_DontLocalizeParameters); + return translation; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs.meta new file mode 100644 index 00000000..b2bfa06f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/LocalizedString.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0bf401b4b1a2c364ba3795d47b95835f +timeCreated: 1478236841 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs new file mode 100644 index 00000000..8dc3fdac --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs @@ -0,0 +1,971 @@ +using System; +using System.Collections.Generic; + +namespace I2.Loc +{ + + public class RTLFixer + { + /// + /// Fix the specified string. + /// + /// + /// String to be fixed. + /// + public static string Fix(string str) + { + return Fix(str, false, true); + } + + public static string Fix(string str, bool rtl) + { + if (rtl) + + { + return Fix(str); + } + + string[] words = str.Split(' '); + string result = ""; + string arabicToIgnore = ""; + foreach (string word in words) + { + if (char.IsLower(word.ToLower()[word.Length / 2])) + { + result += Fix(arabicToIgnore) + word + " "; + arabicToIgnore = ""; + } + else + { + arabicToIgnore += word + " "; + + } + } + if (arabicToIgnore != "") + result += Fix(arabicToIgnore); + + return result; + } + + /// + /// Fix the specified string with customization options. + /// + /// + /// String to be fixed. + /// + /// + /// Show tashkeel. + /// + /// + /// Use hindu numbers. + /// + public static string Fix(string str, bool showTashkeel, bool useHinduNumbers) + { + var newStr = HindiFixer.Fix(str); + if (newStr != str) + return newStr; + RTLFixerTool.showTashkeel = showTashkeel; + RTLFixerTool.useHinduNumbers = useHinduNumbers; + + if (str.Contains("\n")) + str = str.Replace("\n", Environment.NewLine); + + if (str.Contains(Environment.NewLine)) + { + string[] stringSeparators = { Environment.NewLine }; + string[] strSplit = str.Split(stringSeparators, StringSplitOptions.None); + + if (strSplit.Length == 0) + return RTLFixerTool.FixLine(str); + if (strSplit.Length == 1) + return RTLFixerTool.FixLine(str); + string outputString = RTLFixerTool.FixLine(strSplit[0]); + int iteration = 1; + if (strSplit.Length > 1) + { + while (iteration < strSplit.Length) + { + outputString += Environment.NewLine + RTLFixerTool.FixLine(strSplit[iteration]); + iteration++; + } + } + return outputString; + } + + return RTLFixerTool.FixLine(str); + + } + + } + + + /// + /// Arabic Contextual forms General - Unicode + /// + internal enum IsolatedArabicLetters + { + Hamza = 0xFE80, + Alef = 0xFE8D, + AlefHamza = 0xFE83, + WawHamza = 0xFE85, + AlefMaksoor = 0xFE87, + AlefMaksora = 0xFBFC, + HamzaNabera = 0xFE89, + Ba = 0xFE8F, + Ta = 0xFE95, + Tha2 = 0xFE99, + Jeem = 0xFE9D, + H7aa = 0xFEA1, + Khaa2 = 0xFEA5, + Dal = 0xFEA9, + Thal = 0xFEAB, + Ra2 = 0xFEAD, + Zeen = 0xFEAF, + Seen = 0xFEB1, + Sheen = 0xFEB5, + S9a = 0xFEB9, + Dha = 0xFEBD, + T6a = 0xFEC1, + T6ha = 0xFEC5, + Ain = 0xFEC9, + Gain = 0xFECD, + Fa = 0xFED1, + Gaf = 0xFED5, + Kaf = 0xFED9, + Lam = 0xFEDD, + Meem = 0xFEE1, + Noon = 0xFEE5, + Ha = 0xFEE9, + Waw = 0xFEED, + Ya = 0xFEF1, + AlefMad = 0xFE81, + TaMarboota = 0xFE93, + PersianPe = 0xFB56, // Persian Letters; + PersianChe = 0xFB7A, + PersianZe = 0xFB8A, + PersianGaf = 0xFB92, + PersianGaf2 = 0xFB8E + + } + + /// + /// Arabic Contextual forms - Isolated + /// + internal enum GeneralArabicLetters + { + Hamza = 0x0621, + Alef = 0x0627, + AlefHamza = 0x0623, + WawHamza = 0x0624, + AlefMaksoor = 0x0625, + AlefMagsora = 0x0649, + HamzaNabera = 0x0626, + Ba = 0x0628, + Ta = 0x062A, + Tha2 = 0x062B, + Jeem = 0x062C, + H7aa = 0x062D, + Khaa2 = 0x062E, + Dal = 0x062F, + Thal = 0x0630, + Ra2 = 0x0631, + Zeen = 0x0632, + Seen = 0x0633, + Sheen = 0x0634, + S9a = 0x0635, + Dha = 0x0636, + T6a = 0x0637, + T6ha = 0x0638, + Ain = 0x0639, + Gain = 0x063A, + Fa = 0x0641, + Gaf = 0x0642, + Kaf = 0x0643, + Lam = 0x0644, + Meem = 0x0645, + Noon = 0x0646, + Ha = 0x0647, + Waw = 0x0648, + Ya = 0x064A, + AlefMad = 0x0622, + TaMarboota = 0x0629, + PersianPe = 0x067E, // Persian Letters; + PersianChe = 0x0686, + PersianZe = 0x0698, + PersianGaf = 0x06AF, + PersianGaf2 = 0x06A9 + + } + + /// + /// Data Structure for conversion + /// + internal class ArabicMapping + { + public int from; + public int to; + public ArabicMapping(int from, int to) + { + this.from = from; + this.to = to; + } + } + + /// + /// Sets up and creates the conversion table + /// + internal class ArabicTable + { + + private static List mapList; + private static ArabicTable arabicMapper; + + /// + /// Setting up the conversion table + /// + private ArabicTable() + { + mapList = new List(); + + + + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Hamza, (int)IsolatedArabicLetters.Hamza)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Alef, (int)IsolatedArabicLetters.Alef)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.AlefHamza, (int)IsolatedArabicLetters.AlefHamza)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.WawHamza, (int)IsolatedArabicLetters.WawHamza)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.AlefMaksoor, (int)IsolatedArabicLetters.AlefMaksoor)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.AlefMagsora, (int)IsolatedArabicLetters.AlefMaksora)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.HamzaNabera, (int)IsolatedArabicLetters.HamzaNabera)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ba, (int)IsolatedArabicLetters.Ba)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ta, (int)IsolatedArabicLetters.Ta)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Tha2, (int)IsolatedArabicLetters.Tha2)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Jeem, (int)IsolatedArabicLetters.Jeem)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.H7aa, (int)IsolatedArabicLetters.H7aa)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Khaa2, (int)IsolatedArabicLetters.Khaa2)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Dal, (int)IsolatedArabicLetters.Dal)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Thal, (int)IsolatedArabicLetters.Thal)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ra2, (int)IsolatedArabicLetters.Ra2)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Zeen, (int)IsolatedArabicLetters.Zeen)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Seen, (int)IsolatedArabicLetters.Seen)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Sheen, (int)IsolatedArabicLetters.Sheen)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.S9a, (int)IsolatedArabicLetters.S9a)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Dha, (int)IsolatedArabicLetters.Dha)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.T6a, (int)IsolatedArabicLetters.T6a)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.T6ha, (int)IsolatedArabicLetters.T6ha)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ain, (int)IsolatedArabicLetters.Ain)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Gain, (int)IsolatedArabicLetters.Gain)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Fa, (int)IsolatedArabicLetters.Fa)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Gaf, (int)IsolatedArabicLetters.Gaf)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Kaf, (int)IsolatedArabicLetters.Kaf)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Lam, (int)IsolatedArabicLetters.Lam)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Meem, (int)IsolatedArabicLetters.Meem)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Noon, (int)IsolatedArabicLetters.Noon)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ha, (int)IsolatedArabicLetters.Ha)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Waw, (int)IsolatedArabicLetters.Waw)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.Ya, (int)IsolatedArabicLetters.Ya)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.AlefMad, (int)IsolatedArabicLetters.AlefMad)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.TaMarboota, (int)IsolatedArabicLetters.TaMarboota)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.PersianPe, (int)IsolatedArabicLetters.PersianPe)); // Persian Letters; + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.PersianChe, (int)IsolatedArabicLetters.PersianChe)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.PersianZe, (int)IsolatedArabicLetters.PersianZe)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.PersianGaf, (int)IsolatedArabicLetters.PersianGaf)); + mapList.Add(new ArabicMapping((int)GeneralArabicLetters.PersianGaf2, (int)IsolatedArabicLetters.PersianGaf2)); + + + + + //for (int i = 0; i < generalArabic.Length; i++) + // mapList.Add(new ArabicMapping((int)generalArabic.GetValue(i), (int)isolatedArabic.GetValue(i))); // I + + + } + + /// + /// Singleton design pattern, Get the mapper. If it was not created before, create it. + /// + internal static ArabicTable ArabicMapper + { + get + { + if (arabicMapper == null) + arabicMapper = new ArabicTable(); + return arabicMapper; + } + } + + internal int Convert(int toBeConverted) + { + + foreach (ArabicMapping arabicMap in mapList) + if (arabicMap.from == toBeConverted) + { + return arabicMap.to; + } + return toBeConverted; + } + + + } + + + internal class TashkeelLocation + { + public char tashkeel; + public int position; + public TashkeelLocation(char tashkeel, int position) + { + this.tashkeel = tashkeel; + this.position = position; + } + } + + + internal class RTLFixerTool + { + internal static bool showTashkeel = true; + internal static bool useHinduNumbers; + + + internal static string RemoveTashkeel(string str, out List tashkeelLocation) + { + tashkeelLocation = new List(); + char[] letters = str.ToCharArray(); + + int index = 0; + for (int i = 0; i < letters.Length; i++) + { + if (letters[i] == (char)0x064B) + { // Tanween Fatha + tashkeelLocation.Add(new TashkeelLocation((char)0x064B, i)); + index++; + } + else if (letters[i] == (char)0x064C) + { // DAMMATAN + tashkeelLocation.Add(new TashkeelLocation((char)0x064C, i)); + index++; + } + else if (letters[i] == (char)0x064D) + { // KASRATAN + tashkeelLocation.Add(new TashkeelLocation((char)0x064D, i)); + index++; + } + else if (letters[i] == (char)0x064E) + { // FATHA + if (index > 0) + { + if (tashkeelLocation[index - 1].tashkeel == (char)0x0651) // SHADDA + { + tashkeelLocation[index - 1].tashkeel = (char)0xFC60; // Shadda With Fatha + continue; + } + } + + tashkeelLocation.Add(new TashkeelLocation((char)0x064E, i)); + index++; + } + else if (letters[i] == (char)0x064F) + { // DAMMA + if (index > 0) + { + if (tashkeelLocation[index - 1].tashkeel == (char)0x0651) + { // SHADDA + tashkeelLocation[index - 1].tashkeel = (char)0xFC61; // Shadda With DAMMA + continue; + } + } + tashkeelLocation.Add(new TashkeelLocation((char)0x064F, i)); + index++; + } + else if (letters[i] == (char)0x0650) + { // KASRA + if (index > 0) + { + if (tashkeelLocation[index - 1].tashkeel == (char)0x0651) + { // SHADDA + tashkeelLocation[index - 1].tashkeel = (char)0xFC62; // Shadda With KASRA + continue; + } + } + tashkeelLocation.Add(new TashkeelLocation((char)0x0650, i)); + index++; + } + else if (letters[i] == (char)0x0651) + { // SHADDA + if (index > 0) + { + if (tashkeelLocation[index - 1].tashkeel == (char)0x064E) // FATHA + { + tashkeelLocation[index - 1].tashkeel = (char)0xFC60; // Shadda With Fatha + continue; + } + + if (tashkeelLocation[index - 1].tashkeel == (char)0x064F) // DAMMA + { + tashkeelLocation[index - 1].tashkeel = (char)0xFC61; // Shadda With DAMMA + continue; + } + + if (tashkeelLocation[index - 1].tashkeel == (char)0x0650) // KASRA + { + tashkeelLocation[index - 1].tashkeel = (char)0xFC62; // Shadda With KASRA + continue; + } + } + + tashkeelLocation.Add(new TashkeelLocation((char)0x0651, i)); + index++; + } + else if (letters[i] == (char)0x0652) + { // SUKUN + tashkeelLocation.Add(new TashkeelLocation((char)0x0652, i)); + index++; + } + else if (letters[i] == (char)0x0653) + { // MADDAH ABOVE + tashkeelLocation.Add(new TashkeelLocation((char)0x0653, i)); + index++; + } + } + + string[] split = str.Split((char)0x064B, (char)0x064C, (char)0x064D, (char)0x064E, (char)0x064F, (char)0x0650, (char)0x0651, (char)0x0652, (char)0x0653, (char)0xFC60, (char)0xFC61, (char)0xFC62); + str = ""; + + foreach (string s in split) + { + str += s; + } + + return str; + } + + internal static char[] ReturnTashkeel(char[] letters, List tashkeelLocation) + { + char[] lettersWithTashkeel = new char[letters.Length + tashkeelLocation.Count]; + + int letterWithTashkeelTracker = 0; + for (int i = 0; i < letters.Length; i++) + { + lettersWithTashkeel[letterWithTashkeelTracker] = letters[i]; + letterWithTashkeelTracker++; + foreach (TashkeelLocation hLocation in tashkeelLocation) + { + if (hLocation.position == letterWithTashkeelTracker) + { + lettersWithTashkeel[letterWithTashkeelTracker] = hLocation.tashkeel; + letterWithTashkeelTracker++; + } + } + } + + return lettersWithTashkeel; + } + + /// + /// Converts a string to a form in which the sting will be displayed correctly for arabic text. + /// + /// String to be converted. Example: "Aaa" + /// Converted string. Example: "aa aaa A" without the spaces. + internal static string FixLine(string str) + { + string test = ""; + + List tashkeelLocation; + + string originString = RemoveTashkeel(str, out tashkeelLocation); + + char[] lettersOrigin = originString.ToCharArray(); + char[] lettersFinal = originString.ToCharArray(); + + + + for (int i = 0; i < lettersOrigin.Length; i++) + { + lettersOrigin[i] = (char)ArabicTable.ArabicMapper.Convert(lettersOrigin[i]); + } + + for (int i = 0; i < lettersOrigin.Length; i++) + { + bool skip = false; + + + //lettersOrigin[i] = (char)ArabicTable.ArabicMapper.Convert(lettersOrigin[i]); + + + // For special Lam Letter connections. + if (lettersOrigin[i] == (char)IsolatedArabicLetters.Lam) + { + + if (i < lettersOrigin.Length - 1) + { + //lettersOrigin[i + 1] = (char)ArabicTable.ArabicMapper.Convert(lettersOrigin[i + 1]); + if (lettersOrigin[i + 1] == (char)IsolatedArabicLetters.AlefMaksoor) + { + lettersOrigin[i] = (char)0xFEF7; + lettersFinal[i + 1] = (char)0xFFFF; + skip = true; + } + else if (lettersOrigin[i + 1] == (char)IsolatedArabicLetters.Alef) + { + lettersOrigin[i] = (char)0xFEF9; + lettersFinal[i + 1] = (char)0xFFFF; + skip = true; + } + else if (lettersOrigin[i + 1] == (char)IsolatedArabicLetters.AlefHamza) + { + lettersOrigin[i] = (char)0xFEF5; + lettersFinal[i + 1] = (char)0xFFFF; + skip = true; + } + else if (lettersOrigin[i + 1] == (char)IsolatedArabicLetters.AlefMad) + { + lettersOrigin[i] = (char)0xFEF3; + lettersFinal[i + 1] = (char)0xFFFF; + skip = true; + } + } + + } + + + if (!IsIgnoredCharacter(lettersOrigin[i])) + { + if (IsMiddleLetter(lettersOrigin, i)) + lettersFinal[i] = (char)(lettersOrigin[i] + 3); + else if (IsFinishingLetter(lettersOrigin, i)) + lettersFinal[i] = (char)(lettersOrigin[i] + 1); + else if (IsLeadingLetter(lettersOrigin, i)) + lettersFinal[i] = (char)(lettersOrigin[i] + 2); + } + + //string strOut = String.Format(@"\x{0:x4}", (ushort)lettersOrigin[i]); + //UnityEngine.Debug.Log(strOut); + + //strOut = String.Format(@"\x{0:x4}", (ushort)lettersFinal[i]); + //UnityEngine.Debug.Log(strOut); + + test += Convert.ToString(lettersOrigin[i], 16) + " "; + if (skip) + i++; + + + //chaning numbers to hindu + if (useHinduNumbers) + { + if (lettersOrigin[i] == (char)0x0030) + lettersFinal[i] = (char)0x0660; + else if (lettersOrigin[i] == (char)0x0031) + lettersFinal[i] = (char)0x0661; + else if (lettersOrigin[i] == (char)0x0032) + lettersFinal[i] = (char)0x0662; + else if (lettersOrigin[i] == (char)0x0033) + lettersFinal[i] = (char)0x0663; + else if (lettersOrigin[i] == (char)0x0034) + lettersFinal[i] = (char)0x0664; + else if (lettersOrigin[i] == (char)0x0035) + lettersFinal[i] = (char)0x0665; + else if (lettersOrigin[i] == (char)0x0036) + lettersFinal[i] = (char)0x0666; + else if (lettersOrigin[i] == (char)0x0037) + lettersFinal[i] = (char)0x0667; + else if (lettersOrigin[i] == (char)0x0038) + lettersFinal[i] = (char)0x0668; + else if (lettersOrigin[i] == (char)0x0039) + lettersFinal[i] = (char)0x0669; + } + + } + + + + //Return the Tashkeel to their places. + if (showTashkeel) + lettersFinal = ReturnTashkeel(lettersFinal, tashkeelLocation); + + + List list = new List(); + + List numberList = new List(); + + for (int i = lettersFinal.Length - 1; i >= 0; i--) + { + + + // if (lettersFinal[i] == '(') + // numberList.Add(')'); + // else if (lettersFinal[i] == ')') + // numberList.Add('('); + // else if (lettersFinal[i] == '<') + // numberList.Add('>'); + // else if (lettersFinal[i] == '>') + // numberList.Add('<'); + // else + if (char.IsPunctuation(lettersFinal[i]) && i > 0 && i < lettersFinal.Length - 1 && + (char.IsPunctuation(lettersFinal[i - 1]) || char.IsPunctuation(lettersFinal[i + 1]))) + { + if (lettersFinal[i] == '(') + list.Add(')'); + else if (lettersFinal[i] == ')') + list.Add('('); + else if (lettersFinal[i] == '<') + list.Add('>'); + else if (lettersFinal[i] == '>') + list.Add('<'); + else if (lettersFinal[i] == '[') + list.Add(']'); + else if (lettersFinal[i] == ']') + list.Add('['); + else if (lettersFinal[i] != 0xFFFF) + list.Add(lettersFinal[i]); + } + // For cases where english words and arabic are mixed. This allows for using arabic, english and numbers in one sentence. + else if (lettersFinal[i] == ' ' && i > 0 && i < lettersFinal.Length - 1 && + (char.IsLower(lettersFinal[i - 1]) || char.IsUpper(lettersFinal[i - 1]) || char.IsNumber(lettersFinal[i - 1])) && + (char.IsLower(lettersFinal[i + 1]) || char.IsUpper(lettersFinal[i + 1]) || char.IsNumber(lettersFinal[i + 1]))) + + { + numberList.Add(lettersFinal[i]); + } + + else if (char.IsNumber(lettersFinal[i]) || char.IsLower(lettersFinal[i]) || + char.IsUpper(lettersFinal[i]) || char.IsSymbol(lettersFinal[i]) || + char.IsPunctuation(lettersFinal[i]))// || lettersFinal[i] == '^') //) + { + + if (lettersFinal[i] == '(') + numberList.Add(')'); + else if (lettersFinal[i] == ')') + numberList.Add('('); + else if (lettersFinal[i] == '<') + numberList.Add('>'); + else if (lettersFinal[i] == '>') + numberList.Add('<'); + else if (lettersFinal[i] == '[') + list.Add(']'); + else if (lettersFinal[i] == ']') + list.Add('['); + else + numberList.Add(lettersFinal[i]); + } + else if (lettersFinal[i] >= (char)0xD800 && lettersFinal[i] <= (char)0xDBFF || + lettersFinal[i] >= (char)0xDC00 && lettersFinal[i] <= (char)0xDFFF) + { + numberList.Add(lettersFinal[i]); + } + else + { + if (numberList.Count > 0) + { + for (int j = 0; j < numberList.Count; j++) + list.Add(numberList[numberList.Count - 1 - j]); + numberList.Clear(); + } + if (lettersFinal[i] != 0xFFFF) + list.Add(lettersFinal[i]); + + } + } + if (numberList.Count > 0) + { + for (int j = 0; j < numberList.Count; j++) + list.Add(numberList[numberList.Count - 1 - j]); + numberList.Clear(); + } + + // Moving letters from a list to an array. + lettersFinal = new char[list.Count]; + for (int i = 0; i < lettersFinal.Length; i++) + lettersFinal[i] = list[i]; + + + str = new string(lettersFinal); + return str; + } + + /// + /// English letters, numbers and punctuation characters are ignored. This checks if the ch is an ignored character. + /// + /// The character to be checked for skipping + /// True if the character should be ignored, false if it should not be ignored. + internal static bool IsIgnoredCharacter(char ch) + { + bool isPunctuation = char.IsPunctuation(ch); + bool isNumber = char.IsNumber(ch); + bool isLower = char.IsLower(ch); + bool isUpper = char.IsUpper(ch); + bool isSymbol = char.IsSymbol(ch); + bool isPersianCharacter = ch == (char)0xFB56 || ch == (char)0xFB7A || ch == (char)0xFB8A || ch == (char)0xFB92 || ch == (char)0xFB8E; + bool isPresentationFormB = ch <= (char)0xFEFF && ch >= (char)0xFE70; + bool isAcceptableCharacter = isPresentationFormB || isPersianCharacter || ch == (char)0xFBFC; + + + + return isPunctuation || + isNumber || + isLower || + isUpper || + isSymbol || + !isAcceptableCharacter || + ch == 'a' || ch == '>' || ch == '<' || ch == (char)0x061B; + + // return char.IsPunctuation(ch) || char.IsNumber(ch) || ch == 'a' || ch == '>' || ch == '<' || + // char.IsLower(ch) || char.IsUpper(ch) || ch == (char)0x061B || char.IsSymbol(ch) + // || !(ch <= (char)0xFEFF && ch >= (char)0xFE70) // Presentation Form B + // || ch == (char)0xFB56 || ch == (char)0xFB7A || ch == (char)0xFB8A || ch == (char)0xFB92; // Persian Characters + + // PersianPe = 0xFB56, + // PersianChe = 0xFB7A, + // PersianZe = 0xFB8A, + // PersianGaf = 0xFB92 + //lettersOrigin[i] <= (char)0xFEFF && lettersOrigin[i] >= (char)0xFE70 + } + + /// + /// Checks if the letter at index value is a leading character in Arabic or not. + /// + /// The whole word that contains the character to be checked + /// The index of the character to be checked + /// True if the character at index is a leading character, else, returns false + internal static bool IsLeadingLetter(char[] letters, int index) + { + + bool lettersThatCannotBeBeforeALeadingLetter = index == 0 + || letters[index - 1] == ' ' + || letters[index - 1] == '*' // ??? Remove? + || letters[index - 1] == 'A' // ??? Remove? + || char.IsPunctuation(letters[index - 1]) + || letters[index - 1] == '>' + || letters[index - 1] == '<' + || letters[index - 1] == (int)IsolatedArabicLetters.Alef + || letters[index - 1] == (int)IsolatedArabicLetters.Dal + || letters[index - 1] == (int)IsolatedArabicLetters.Thal + || letters[index - 1] == (int)IsolatedArabicLetters.Ra2 + || letters[index - 1] == (int)IsolatedArabicLetters.Zeen + || letters[index - 1] == (int)IsolatedArabicLetters.PersianZe + //|| letters[index - 1] == (int)IsolatedArabicLetters.AlefMaksora + || letters[index - 1] == (int)IsolatedArabicLetters.Waw + || letters[index - 1] == (int)IsolatedArabicLetters.AlefMad + || letters[index - 1] == (int)IsolatedArabicLetters.AlefHamza + || letters[index - 1] == (int)IsolatedArabicLetters.AlefMaksoor + || letters[index - 1] == (int)IsolatedArabicLetters.WawHamza; + + bool lettersThatCannotBeALeadingLetter = letters[index] != ' ' + && letters[index] != (int)IsolatedArabicLetters.Dal + && letters[index] != (int)IsolatedArabicLetters.Thal + && letters[index] != (int)IsolatedArabicLetters.Ra2 + && letters[index] != (int)IsolatedArabicLetters.Zeen + && letters[index] != (int)IsolatedArabicLetters.PersianZe + && letters[index] != (int)IsolatedArabicLetters.Alef + && letters[index] != (int)IsolatedArabicLetters.AlefHamza + && letters[index] != (int)IsolatedArabicLetters.AlefMaksoor + && letters[index] != (int)IsolatedArabicLetters.AlefMad + && letters[index] != (int)IsolatedArabicLetters.WawHamza + && letters[index] != (int)IsolatedArabicLetters.Waw + && letters[index] != (int)IsolatedArabicLetters.Hamza; + + bool lettersThatCannotBeAfterLeadingLetter = index < letters.Length - 1 + && letters[index + 1] != ' ' + && !char.IsPunctuation(letters[index + 1]) + && !char.IsNumber(letters[index + 1]) + && !char.IsSymbol(letters[index + 1]) + && !char.IsLower(letters[index + 1]) + && !char.IsUpper(letters[index + 1]) + && letters[index + 1] != (int)IsolatedArabicLetters.Hamza; + + if (lettersThatCannotBeBeforeALeadingLetter && lettersThatCannotBeALeadingLetter && lettersThatCannotBeAfterLeadingLetter) + + // if ((index == 0 || letters[index - 1] == ' ' || letters[index - 1] == '*' || letters[index - 1] == 'A' || char.IsPunctuation(letters[index - 1]) + // || letters[index - 1] == '>' || letters[index - 1] == '<' + // || letters[index - 1] == (int)IsolatedArabicLetters.Alef + // || letters[index - 1] == (int)IsolatedArabicLetters.Dal || letters[index - 1] == (int)IsolatedArabicLetters.Thal + // || letters[index - 1] == (int)IsolatedArabicLetters.Ra2 + // || letters[index - 1] == (int)IsolatedArabicLetters.Zeen || letters[index - 1] == (int)IsolatedArabicLetters.PersianZe + // || letters[index - 1] == (int)IsolatedArabicLetters.AlefMaksora || letters[index - 1] == (int)IsolatedArabicLetters.Waw + // || letters[index - 1] == (int)IsolatedArabicLetters.AlefMad || letters[index - 1] == (int)IsolatedArabicLetters.AlefHamza + // || letters[index - 1] == (int)IsolatedArabicLetters.AlefMaksoor || letters[index - 1] == (int)IsolatedArabicLetters.WawHamza) + // && letters[index] != ' ' && letters[index] != (int)IsolatedArabicLetters.Dal + // && letters[index] != (int)IsolatedArabicLetters.Thal + // && letters[index] != (int)IsolatedArabicLetters.Ra2 + // && letters[index] != (int)IsolatedArabicLetters.Zeen && letters[index] != (int)IsolatedArabicLetters.PersianZe + // && letters[index] != (int)IsolatedArabicLetters.Alef && letters[index] != (int)IsolatedArabicLetters.AlefHamza + // && letters[index] != (int)IsolatedArabicLetters.AlefMaksoor + // && letters[index] != (int)IsolatedArabicLetters.AlefMad + // && letters[index] != (int)IsolatedArabicLetters.WawHamza + // && letters[index] != (int)IsolatedArabicLetters.Waw + // && letters[index] != (int)IsolatedArabicLetters.Hamza + // && index < letters.Length - 1 && letters[index + 1] != ' ' && !char.IsPunctuation(letters[index + 1] ) && !char.IsNumber(letters[index + 1]) + // && letters[index + 1] != (int)IsolatedArabicLetters.Hamza ) + { + return true; + } + + return false; + } + + /// + /// Checks if the letter at index value is a finishing character in Arabic or not. + /// + /// The whole word that contains the character to be checked + /// The index of the character to be checked + /// True if the character at index is a finishing character, else, returns false + internal static bool IsFinishingLetter(char[] letters, int index) + { + //bool indexZero = index != 0; + bool lettersThatCannotBeBeforeAFinishingLetter = index == 0 ? false : + letters[index - 1] != ' ' + // && char.IsDigit(letters[index-1]) + // && char.IsLower(letters[index-1]) + // && char.IsUpper(letters[index-1]) + // && char.IsNumber(letters[index-1]) + // && char.IsWhiteSpace(letters[index-1]) + // && char.IsPunctuation(letters[index-1]) + // && char.IsSymbol(letters[index-1]) + + && letters[index - 1] != (int)IsolatedArabicLetters.Dal + && letters[index - 1] != (int)IsolatedArabicLetters.Thal + && letters[index - 1] != (int)IsolatedArabicLetters.Ra2 + && letters[index - 1] != (int)IsolatedArabicLetters.Zeen + && letters[index - 1] != (int)IsolatedArabicLetters.PersianZe + //&& letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksora + && letters[index - 1] != (int)IsolatedArabicLetters.Waw + && letters[index - 1] != (int)IsolatedArabicLetters.Alef + && letters[index - 1] != (int)IsolatedArabicLetters.AlefMad + && letters[index - 1] != (int)IsolatedArabicLetters.AlefHamza + && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksoor + && letters[index - 1] != (int)IsolatedArabicLetters.WawHamza + && letters[index - 1] != (int)IsolatedArabicLetters.Hamza + + + + && !char.IsPunctuation(letters[index - 1]) + && letters[index - 1] != '>' + && letters[index - 1] != '<'; + + + bool lettersThatCannotBeFinishingLetters = letters[index] != ' ' && letters[index] != (int)IsolatedArabicLetters.Hamza; + + + + + if (lettersThatCannotBeBeforeAFinishingLetter && lettersThatCannotBeFinishingLetters) + + // if (index != 0 && letters[index - 1] != ' ' && letters[index - 1] != '*' && letters[index - 1] != 'A' + // && letters[index - 1] != (int)IsolatedArabicLetters.Dal && letters[index - 1] != (int)IsolatedArabicLetters.Thal + // && letters[index - 1] != (int)IsolatedArabicLetters.Ra2 + // && letters[index - 1] != (int)IsolatedArabicLetters.Zeen && letters[index - 1] != (int)IsolatedArabicLetters.PersianZe + // && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksora && letters[index - 1] != (int)IsolatedArabicLetters.Waw + // && letters[index - 1] != (int)IsolatedArabicLetters.Alef && letters[index - 1] != (int)IsolatedArabicLetters.AlefMad + // && letters[index - 1] != (int)IsolatedArabicLetters.AlefHamza && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksoor + // && letters[index - 1] != (int)IsolatedArabicLetters.WawHamza && letters[index - 1] != (int)IsolatedArabicLetters.Hamza + // && !char.IsPunctuation(letters[index - 1]) && letters[index - 1] != '>' && letters[index - 1] != '<' + // && letters[index] != ' ' && index < letters.Length + // && letters[index] != (int)IsolatedArabicLetters.Hamza) + { + //try + //{ + // if (char.IsPunctuation(letters[index + 1])) + // return true; + // else + // return false; + //} + //catch (Exception e) + //{ + // return false; + //} + + return true; + } + //return true; + + return false; + } + + /// + /// Checks if the letter at index value is a middle character in Arabic or not. + /// + /// The whole word that contains the character to be checked + /// The index of the character to be checked + /// True if the character at index is a middle character, else, returns false + internal static bool IsMiddleLetter(char[] letters, int index) + { + bool lettersThatCannotBeMiddleLetters = index == 0 ? false : + letters[index] != (int)IsolatedArabicLetters.Alef + && letters[index] != (int)IsolatedArabicLetters.Dal + && letters[index] != (int)IsolatedArabicLetters.Thal + && letters[index] != (int)IsolatedArabicLetters.Ra2 + && letters[index] != (int)IsolatedArabicLetters.Zeen + && letters[index] != (int)IsolatedArabicLetters.PersianZe + //&& letters[index] != (int)IsolatedArabicLetters.AlefMaksora + && letters[index] != (int)IsolatedArabicLetters.Waw + && letters[index] != (int)IsolatedArabicLetters.AlefMad + && letters[index] != (int)IsolatedArabicLetters.AlefHamza + && letters[index] != (int)IsolatedArabicLetters.AlefMaksoor + && letters[index] != (int)IsolatedArabicLetters.WawHamza + && letters[index] != (int)IsolatedArabicLetters.Hamza; + + bool lettersThatCannotBeBeforeMiddleCharacters = index == 0 ? false : + letters[index - 1] != (int)IsolatedArabicLetters.Alef + && letters[index - 1] != (int)IsolatedArabicLetters.Dal + && letters[index - 1] != (int)IsolatedArabicLetters.Thal + && letters[index - 1] != (int)IsolatedArabicLetters.Ra2 + && letters[index - 1] != (int)IsolatedArabicLetters.Zeen + && letters[index - 1] != (int)IsolatedArabicLetters.PersianZe + //&& letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksora + && letters[index - 1] != (int)IsolatedArabicLetters.Waw + && letters[index - 1] != (int)IsolatedArabicLetters.AlefMad + && letters[index - 1] != (int)IsolatedArabicLetters.AlefHamza + && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksoor + && letters[index - 1] != (int)IsolatedArabicLetters.WawHamza + && letters[index - 1] != (int)IsolatedArabicLetters.Hamza + && !char.IsPunctuation(letters[index - 1]) + && letters[index - 1] != '>' + && letters[index - 1] != '<' + && letters[index - 1] != ' ' + && letters[index - 1] != '*'; + + bool lettersThatCannotBeAfterMiddleCharacters = index >= letters.Length - 1 ? false : + letters[index + 1] != ' ' + && letters[index + 1] != '\r' + && letters[index + 1] != (int)IsolatedArabicLetters.Hamza + && !char.IsNumber(letters[index + 1]) + && !char.IsSymbol(letters[index + 1]) + && !char.IsPunctuation(letters[index + 1]); + if (lettersThatCannotBeAfterMiddleCharacters && lettersThatCannotBeBeforeMiddleCharacters && lettersThatCannotBeMiddleLetters) + + // if (index != 0 && letters[index] != ' ' + // && letters[index] != (int)IsolatedArabicLetters.Alef && letters[index] != (int)IsolatedArabicLetters.Dal + // && letters[index] != (int)IsolatedArabicLetters.Thal && letters[index] != (int)IsolatedArabicLetters.Ra2 + // && letters[index] != (int)IsolatedArabicLetters.Zeen && letters[index] != (int)IsolatedArabicLetters.PersianZe + // && letters[index] != (int)IsolatedArabicLetters.AlefMaksora + // && letters[index] != (int)IsolatedArabicLetters.Waw && letters[index] != (int)IsolatedArabicLetters.AlefMad + // && letters[index] != (int)IsolatedArabicLetters.AlefHamza && letters[index] != (int)IsolatedArabicLetters.AlefMaksoor + // && letters[index] != (int)IsolatedArabicLetters.WawHamza && letters[index] != (int)IsolatedArabicLetters.Hamza + // && letters[index - 1] != (int)IsolatedArabicLetters.Alef && letters[index - 1] != (int)IsolatedArabicLetters.Dal + // && letters[index - 1] != (int)IsolatedArabicLetters.Thal && letters[index - 1] != (int)IsolatedArabicLetters.Ra2 + // && letters[index - 1] != (int)IsolatedArabicLetters.Zeen && letters[index - 1] != (int)IsolatedArabicLetters.PersianZe + // && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksora + // && letters[index - 1] != (int)IsolatedArabicLetters.Waw && letters[index - 1] != (int)IsolatedArabicLetters.AlefMad + // && letters[index - 1] != (int)IsolatedArabicLetters.AlefHamza && letters[index - 1] != (int)IsolatedArabicLetters.AlefMaksoor + // && letters[index - 1] != (int)IsolatedArabicLetters.WawHamza && letters[index - 1] != (int)IsolatedArabicLetters.Hamza + // && letters[index - 1] != '>' && letters[index - 1] != '<' + // && letters[index - 1] != ' ' && letters[index - 1] != '*' && !char.IsPunctuation(letters[index - 1]) + // && index < letters.Length - 1 && letters[index + 1] != ' ' && letters[index + 1] != '\r' && letters[index + 1] != 'A' + // && letters[index + 1] != '>' && letters[index + 1] != '>' && letters[index + 1] != (int)IsolatedArabicLetters.Hamza + // ) + { + try + { + if (char.IsPunctuation(letters[index + 1])) + return false; + return true; + } + catch + { + return false; + } + //return true; + } + + return false; + } + } +} diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs.meta new file mode 100644 index 00000000..c101c011 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RTLFixer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cada559fcf5844047b6f6333f8a36012 +timeCreated: 1506968129 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs new file mode 100644 index 00000000..979d062e --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace I2.Loc +{ + public class RegisterCallback_AllowSyncFromGoogle : MonoBehaviour + { + public void Awake() + { + LocalizationManager.Callback_AllowSyncFromGoogle = AllowSyncFromGoogle; + } + + public void OnEnable() + { + LocalizationManager.Callback_AllowSyncFromGoogle = AllowSyncFromGoogle; + } + + public void OnDisable() + { + LocalizationManager.Callback_AllowSyncFromGoogle = null; + } + + public virtual bool AllowSyncFromGoogle(LanguageSourceData Source) + { + return true; + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs.meta new file mode 100644 index 00000000..840e486f --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterCallback_AllowSyncFromGoogle.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 893c292e5fa149cf965cc68e2d471396 +timeCreated: 1601758486 \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs new file mode 100644 index 00000000..bde99812 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs @@ -0,0 +1,28 @@ +using UnityEngine; + +namespace I2.Loc +{ + + public class RegisterGlobalParameters : MonoBehaviour, ILocalizationParamsManager + { + public virtual void OnEnable() + { + if (!LocalizationManager.ParamManagers.Contains(this)) + { + LocalizationManager.ParamManagers.Add(this); + LocalizationManager.LocalizeAll(true); + } + } + + public virtual void OnDisable() + { + LocalizationManager.ParamManagers.Remove(this); + } + + public virtual string GetParameterValue( string ParamName ) + { + return null; + } + + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs.meta new file mode 100644 index 00000000..a3c5dbb0 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/RegisterGlobalParameters.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 31f3671f793c32f47b37480ed345e8fa +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs new file mode 100644 index 00000000..88914ac7 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs @@ -0,0 +1,186 @@ +using UnityEngine; +using System.Collections.Generic; +#if UNITY_5_4_OR_NEWER +using UnityEngine.SceneManagement; +#endif + +namespace I2.Loc +{ + public interface IResourceManager_Bundles + { + Object LoadFromBundle(string path, System.Type assetType ); + } + + public class ResourceManager : MonoBehaviour + { + #region Singleton + public static ResourceManager pInstance + { + get { + bool changed = mInstance==null; + + if (mInstance==null) + mInstance = (ResourceManager)FindObjectOfType(typeof(ResourceManager)); + + if (mInstance==null) + { + GameObject GO = new GameObject("I2ResourceManager", typeof(ResourceManager)); + GO.hideFlags = GO.hideFlags | HideFlags.HideAndDontSave; // Only hide it if this manager was autocreated + mInstance = GO.GetComponent(); + #if UNITY_5_4_OR_NEWER + SceneManager.sceneLoaded += MyOnLevelWasLoaded; + #endif + } + + if (changed && Application.isPlaying) + DontDestroyOnLoad(mInstance.gameObject); + + return mInstance; + } + } + static ResourceManager mInstance; + + #endregion + + #region Management + + public List mBundleManagers = new List(); + + #if UNITY_5_4_OR_NEWER + public static void MyOnLevelWasLoaded(Scene scene, LoadSceneMode mode) + #else + public void OnLevelWasLoaded() + #endif + { + pInstance.CleanResourceCache(); + LocalizationManager.UpdateSources(); + } + + #endregion + + #region Assets + + public Object[] Assets; + + // This function tries finding an asset in the Assets array, if not found it tries loading it from the Resources Folder + public T GetAsset( string Name ) where T : Object + { + T Obj = FindAsset( Name ) as T; + if (Obj!=null) + return Obj; + + return LoadFromResources( Name ); + } + + Object FindAsset( string Name ) + { + if (Assets!=null) + { + for (int i=0, imax=Assets.Length; i= 0; + } + + #endregion + + #region Resources Cache + + // This cache is kept for a few moments and then cleared + // Its meant to avoid doing several Resource.Load for the same Asset while Localizing + // (e.g. Lot of labels could be trying to Load the same Font) + readonly Dictionary mResourcesCache = new Dictionary(System.StringComparer.Ordinal); // This is used to avoid re-loading the same object from resources in the same frame + //bool mCleaningScheduled = false; + + public T LoadFromResources( string Path ) where T : Object + { + try + { + if (string.IsNullOrEmpty( Path )) + return null; + + Object Obj; + // Doing Resource.Load is very slow so we are catching the recently loaded objects + if (mResourcesCache.TryGetValue( Path, out Obj ) && Obj!=null) + { + return Obj as T; + } + + T obj = null; + + if (Path.EndsWith("]", System.StringComparison.OrdinalIgnoreCase)) // Handle sprites (Multiple) loaded from resources : "SpritePath[SpriteName]" + { + int idx = Path.LastIndexOf("[", System.StringComparison.OrdinalIgnoreCase); + int len = Path.Length - idx - 2; + string MultiSpriteName = Path.Substring(idx + 1, len); + Path = Path.Substring(0, idx); + + T[] objs = Resources.LoadAll(Path); + for (int j = 0, jmax = objs.Length; j < jmax; ++j) + if (objs[j].name.Equals(MultiSpriteName)) + { + obj = objs[j]; + break; + } + } + else + { + obj = Resources.Load(Path, typeof(T)) as T; + } + + if (obj == null) + obj = LoadFromBundle( Path ); + + if (obj!=null) + mResourcesCache[Path] = obj; + + /*if (!mCleaningScheduled) + { + Invoke("CleanResourceCache", 0.1f); + mCleaningScheduled = true; + }*/ + //if (obj==null) + //Debug.LogWarningFormat( "Unable to load {0} '{1}'", typeof( T ), Path ); + + return obj; + } + catch (System.Exception e) + { + Debug.LogErrorFormat( "Unable to load {0} '{1}'\nERROR: {2}", typeof(T), Path, e.ToString() ); + return null; + } + } + + public T LoadFromBundle(string path ) where T : Object + { + for (int i = 0, imax = mBundleManagers.Count; i < imax; ++i) + if (mBundleManagers[i]!=null) + { + var obj = mBundleManagers[i].LoadFromBundle(path, typeof(T)) as T; + if (obj != null) + return obj; + } + return null; + } + + public void CleanResourceCache( bool unloadResources=false ) + { + mResourcesCache.Clear(); + if (unloadResources) + Resources.UnloadUnusedAssets(); + + CancelInvoke(); + //mCleaningScheduled = false; + } + + #endregion + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs.meta new file mode 100644 index 00000000..9734d609 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/ResourceManager.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f3ae68c55d3a8e44989e08d4686b3db9 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs new file mode 100644 index 00000000..82871361 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace I2.Loc +{ + [AddComponentMenu("I2/Localization/SetLanguage Button")] + public class SetLanguage : MonoBehaviour + { + public string _Language; + +#if UNITY_EDITOR + public LanguageSource mSource; +#endif + + void OnClick() + { + ApplyLanguage(); + } + + public void ApplyLanguage() + { + if( LocalizationManager.HasLanguage(_Language)) + { + LocalizationManager.CurrentLanguage = _Language; + } + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs.meta new file mode 100644 index 00000000..fe2f0f44 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguage.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: f8d7972c568b50940a54c7f599af66c5 +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs new file mode 100644 index 00000000..2b218985 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs @@ -0,0 +1,43 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace I2.Loc +{ + [AddComponentMenu("I2/Localization/SetLanguage Dropdown")] + public class SetLanguageDropdown : MonoBehaviour + { + #if UNITY_5_2 || UNITY_5_3 || UNITY_5_4_OR_NEWER + void OnEnable() + { + var dropdown = GetComponent(); + if (dropdown==null) + return; + + var currentLanguage = LocalizationManager.CurrentLanguage; + if (LocalizationManager.Sources.Count==0) LocalizationManager.UpdateSources(); + var languages = LocalizationManager.GetAllLanguages(); + + // Fill the dropdown elements + dropdown.ClearOptions(); + dropdown.AddOptions( languages ); + + dropdown.value = languages.IndexOf( currentLanguage ); + dropdown.onValueChanged.RemoveListener( OnValueChanged ); + dropdown.onValueChanged.AddListener( OnValueChanged ); + } + + + void OnValueChanged( int index ) + { + var dropdown = GetComponent(); + if (index<0) + { + index = 0; + dropdown.value = index; + } + + LocalizationManager.CurrentLanguage = dropdown.options[index].text; + } + #endif + } +} \ No newline at end of file diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs.meta b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs.meta new file mode 100644 index 00000000..10b09caf --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/SetLanguageDropdown.cs.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 33897b093844df84a8e8a0258a1fb0dd +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/I2/Localization/Scripts/Utils/StringObfuscator.cs b/popcorn/Assets/I2/Localization/Scripts/Utils/StringObfuscator.cs new file mode 100644 index 00000000..2d9406d9 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Scripts/Utils/StringObfuscator.cs @@ -0,0 +1,74 @@ +using System; +using System.Text; + +namespace I2.Loc +{ + // Simple String Obfucator + // (not particularly safe, but will stop most players from hacking your strings and its FAST) + + public class StringObfucator + { + // Change this for your projects if you need extra security + public static char[] StringObfuscatorPassword = "ÝúbUu¸CÁ§*4PÚ©-᩾@T6Dl±ÒWâuzÅm4GÐóØ$=Íg,¥Që®iKEßr¡×60Ít4öÃ~^«y:Èd1

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%0D9S*A{`C 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 literal 0 HcmV?d00001 diff --git a/popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav.meta b/popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav.meta new file mode 100644 index 00000000..7e9bf5e8 --- /dev/null +++ b/popcorn/Assets/I2/Localization/Examples/Common/Audio/frances.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: e68e601305e6218408e8208f956472c7 +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/popcorn/Assets/I2/Localization/Examples/Common/Audio/ingles.wav b/popcorn/Assets/I2/Localization/Examples/Common/Audio/ingles.wav new file mode 100644 index 0000000000000000000000000000000000000000..c3c39c072cf52951842d6f6c1ea325a4cc076ec7 GIT binary patch literal 299598 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 ^Nz~>dZ}lrXN7Zxvy-Ef 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 t43qtVd64>VE0=Mt_gZ5%iTdQYpxki9&75dW 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