diff --git a/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.txt b/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.md similarity index 100% rename from Assets/--Fundamentals/AbilitiesAndEffectsModifiers.txt rename to Assets/--Fundamentals/AbilitiesAndEffectsModifiers.md diff --git a/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.txt.meta b/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.md.meta similarity index 75% rename from Assets/--Fundamentals/AbilitiesAndEffectsModifiers.txt.meta rename to Assets/--Fundamentals/AbilitiesAndEffectsModifiers.md.meta index 4db1c137..e118b403 100644 --- a/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.txt.meta +++ b/Assets/--Fundamentals/AbilitiesAndEffectsModifiers.md.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2aaa142e801c7ec47b0bfb5ea1b7a3e4 +guid: 7b25cb63c44a5d24aa47f646342d82b0 TextScriptImporter: externalObjects: {} userData: diff --git a/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_A.mat b/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_A.mat index c7f17491..8e7e12de 100644 --- a/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_A.mat +++ b/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_A.mat @@ -50,7 +50,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 8bd2ab193a87f554091beb12b8242137, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_B.mat b/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_B.mat index befaa06f..54032f85 100644 --- a/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_B.mat +++ b/Assets/1-Packs/3D/CharactersExtras/OrcRaider/orc_texture_B.mat @@ -50,7 +50,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 61123490c80f66d40bee15b6a4f1895c, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/Assets/1-Packs/3D/FourEvilDragonsPBR/Materials/DragonUsurper/RedPBR.mat b/Assets/1-Packs/3D/FourEvilDragonsPBR/Materials/DragonUsurper/RedPBR.mat index e2357722..0c3c5690 100644 --- a/Assets/1-Packs/3D/FourEvilDragonsPBR/Materials/DragonUsurper/RedPBR.mat +++ b/Assets/1-Packs/3D/FourEvilDragonsPBR/Materials/DragonUsurper/RedPBR.mat @@ -68,7 +68,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 6de25e60bb604e44aa57ebbbaaff9b14, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/Assets/1-Packs/3D/Mini Legion Rock Golem PBR HP Polyart/Materials/PolyartStandard.mat b/Assets/1-Packs/3D/Mini Legion Rock Golem PBR HP Polyart/Materials/PolyartStandard.mat index cc4e7080..1882c708 100644 --- a/Assets/1-Packs/3D/Mini Legion Rock Golem PBR HP Polyart/Materials/PolyartStandard.mat +++ b/Assets/1-Packs/3D/Mini Legion Rock Golem PBR HP Polyart/Materials/PolyartStandard.mat @@ -50,7 +50,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 0} + m_Texture: {fileID: 2800000, guid: 15b0ee25e3ee5d6479de36fa2862d895, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: diff --git a/Assets/Character Stats/Examples/Items & Inventory/Prefabs/Character Panel.prefab b/Assets/Character Stats/Examples/Items & Inventory/Prefabs/Character Panel.prefab index b1bd6757..3f1cbd68 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Prefabs/Character Panel.prefab +++ b/Assets/Character Stats/Examples/Items & Inventory/Prefabs/Character Panel.prefab @@ -549,7 +549,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -642,8 +642,6 @@ RectTransform: - {fileID: 22490910} - {fileID: 129021008038131434} - {fileID: 15749858822931326} - - {fileID: 2715984491736709099} - - {fileID: 825261058398377588} - {fileID: 22441616} - {fileID: 6118383128788908528} m_Father: {fileID: 22455926} @@ -793,7 +791,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -1630,7 +1628,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -1794,7 +1792,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -2970,7 +2968,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3118,7 +3116,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3271,7 +3269,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3434,7 +3432,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3587,7 +3585,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -3791,6 +3789,19 @@ RectTransform: - {fileID: 6286776454426932609} - {fileID: 8051282907696523785} - {fileID: 6631553179580729225} + - {fileID: 242598461880785969} + - {fileID: 216529755544431100} + - {fileID: 6270754478767806912} + - {fileID: 1488644707673000805} + - {fileID: 8237832782851811178} + - {fileID: 1475410928076780377} + - {fileID: 1144467607467506532} + - {fileID: 592554634518577557} + - {fileID: 1550685847361134204} + - {fileID: 5916888422301627048} + - {fileID: 1717431345507588337} + - {fileID: 4650817572028362823} + - {fileID: 1548701434230044941} m_Father: {fileID: 22455926} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} @@ -4051,7 +4062,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -4215,7 +4226,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -4453,7 +4464,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -4605,7 +4616,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -4918,7 +4929,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -5083,7 +5094,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -5426,7 +5437,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -5703,7 +5714,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -5905,7 +5916,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -6070,7 +6081,7 @@ MonoBehaviour: m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_ActiveFontFeatures: 00000000 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 @@ -6128,6 +6139,10 @@ PrefabInstance: propertyPath: m_fontSizeMin value: 20 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_SizeDelta.x value: 0 @@ -6156,6 +6171,10 @@ PrefabInstance: propertyPath: m_fontSizeMin value: 20 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: 0 @@ -6280,6 +6299,10 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 7069770778514438464, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_AnchoredPosition.x value: -10 @@ -6440,6 +6463,10 @@ PrefabInstance: propertyPath: m_text value: Max Health objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -6448,6 +6475,10 @@ PrefabInstance: propertyPath: m_text value: Max Health objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: max health @@ -6548,6 +6579,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -6562,6 +6597,354 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} m_PrefabInstance: {fileID: 276902012349773180} m_PrefabAsset: {fileID: 0} +--- !u!1001 &283424345789815101 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (10) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &6270754478767806912 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 283424345789815101} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &501552822231380565 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (17) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &5916888422301627048 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 501552822231380565} + m_PrefabAsset: {fileID: 0} --- !u!1001 &639756830454531956 PrefabInstance: m_ObjectHideFlags: 0 @@ -6578,6 +6961,10 @@ PrefabInstance: propertyPath: m_fontSize value: 20.65 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -6590,6 +6977,10 @@ PrefabInstance: propertyPath: m_fontSize value: 20.65 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: 0 @@ -6710,6 +7101,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -6740,6 +7135,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -6752,6 +7151,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: crit chance @@ -6852,6 +7255,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -6968,6 +7375,180 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 454179752691240676, guid: 5d050b13d3af06c48b87acd12ac090a3, type: 3} m_PrefabInstance: {fileID: 1059864914260528023} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1469256469160390842 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (19) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &4650817572028362823 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 1469256469160390842} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1549967676161209995 PrefabInstance: m_ObjectHideFlags: 0 @@ -7086,6 +7667,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -7098,6 +7683,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: spell damage @@ -7198,6 +7787,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -7330,6 +7923,10 @@ PrefabInstance: propertyPath: m_fontSize value: 23.2 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -7342,6 +7939,10 @@ PrefabInstance: propertyPath: m_fontSize value: 23.2 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: attack damage @@ -7442,6 +8043,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -7762,6 +8367,180 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2623857814747721776, guid: 38b21aa92abc114499271f1eeca0a417, type: 3} m_PrefabInstance: {fileID: 2702657263742778705} m_PrefabAsset: {fileID: 0} +--- !u!1001 &2790670791076341655 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (12) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &8237832782851811178 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 2790670791076341655} + m_PrefabAsset: {fileID: 0} --- !u!1001 &2948184746283574767 PrefabInstance: m_ObjectHideFlags: 0 @@ -7778,6 +8557,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -7790,6 +8573,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: crit damage @@ -7890,6 +8677,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -8834,6 +9625,10 @@ PrefabInstance: propertyPath: m_text value: Armor objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_IsActive value: 0 @@ -8842,6 +9637,10 @@ PrefabInstance: propertyPath: m_text value: Armor objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: 0 @@ -8958,6 +9757,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: -7 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 @@ -9074,6 +9877,876 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 454179752691240676, guid: 5d050b13d3af06c48b87acd12ac090a3, type: 3} m_PrefabInstance: {fileID: 4349007814023661257} m_PrefabAsset: {fileID: 0} +--- !u!1001 &4629814151198772120 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (11) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1488644707673000805 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 4629814151198772120} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4652617974512104356 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (13) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1475410928076780377 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 4652617974512104356} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4714698740289855105 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (16) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1550685847361134204 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 4714698740289855105} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4726187743710919152 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (20) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1548701434230044941 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 4726187743710919152} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4845125240105408524 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (18) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1717431345507588337 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 4845125240105408524} + m_PrefabAsset: {fileID: 0} --- !u!1001 &4947710811456828644 PrefabInstance: m_ObjectHideFlags: 0 @@ -9600,6 +11273,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_SizeDelta.x value: 0 @@ -9616,6 +11293,10 @@ PrefabInstance: propertyPath: m_fontSize value: 25 objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: intelligence @@ -9716,10 +11397,18 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -9742,6 +11431,10 @@ PrefabInstance: propertyPath: m_text value: Strength objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_SizeDelta.x value: 0 @@ -9754,6 +11447,10 @@ PrefabInstance: propertyPath: m_text value: Strength objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Name value: Stat Display (1) @@ -9850,6 +11547,10 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8250398293883218257, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_CullTransparentMesh value: 1 @@ -9858,6 +11559,10 @@ PrefabInstance: propertyPath: m_fontColor32.rgba value: 4294967295 objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -9880,6 +11585,10 @@ PrefabInstance: propertyPath: m_text value: Agility objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_SizeDelta.x value: 0 @@ -9892,6 +11601,10 @@ PrefabInstance: propertyPath: m_text value: Agility objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text value: agility @@ -9992,10 +11705,18 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba value: 4294967295 objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -10210,6 +11931,354 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2623857814747721776, guid: 38b21aa92abc114499271f1eeca0a417, type: 3} m_PrefabInstance: {fileID: 6282073621358900936} m_PrefabAsset: {fileID: 0} +--- !u!1001 &6320026979847314636 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (8) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &242598461880785969 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 6320026979847314636} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6334763280482822401 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (9) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &216529755544431100 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 6334763280482822401} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6348906747212144575 PrefabInstance: m_ObjectHideFlags: 0 @@ -10544,6 +12613,180 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 1782877925726914783, guid: fe12c8a93bbe5e2419fed496d223050b, type: 3} m_PrefabInstance: {fileID: 6542042201596658120} m_PrefabAsset: {fileID: 0} +--- !u!1001 &6559820718288173977 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5707939335742086669} + m_Modifications: + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_text + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Name + value: Stat Display (14) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 + objectReference: {fileID: 0} + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontColor32.rgba + value: 4294967295 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} +--- !u!224 &1144467607467506532 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + m_PrefabInstance: {fileID: 6559820718288173977} + m_PrefabAsset: {fileID: 0} --- !u!1001 &6668527540883982131 PrefabInstance: m_ObjectHideFlags: 0 @@ -10646,37 +12889,61 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 2623857814747721776, guid: 38b21aa92abc114499271f1eeca0a417, type: 3} m_PrefabInstance: {fileID: 6668527540883982131} m_PrefabAsset: {fileID: 0} ---- !u!1001 &6889161107132814985 +--- !u!1001 &6688391102168760680 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 22436708} + m_TransformParent: {fileID: 5707939335742086669} m_Modifications: - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_text - value: Vitality + value: Magic Resistance objectReference: {fileID: 0} - - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.x - value: 0 + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 objectReference: {fileID: 0} - - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.y + - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 1785111545271471490, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_text - value: Vitality + value: Magic Resistance + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_fontSize + value: 20.65 + objectReference: {fileID: 0} + - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} + - target: {fileID: 6118383127294553327, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_Text + value: 0 objectReference: {fileID: 0} - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Text - value: vitality + value: magic resistance + objectReference: {fileID: 0} + - target: {fileID: 6118383127294592465, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_FlexibleWidth + value: 1 objectReference: {fileID: 0} - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Name - value: Stat Display (5) + value: Stat Display (15) + objectReference: {fileID: 0} + - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_IsActive + value: 1 objectReference: {fileID: 0} - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_Pivot.x @@ -10688,7 +12955,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_RootOrder - value: 5 + value: 8 objectReference: {fileID: 0} - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_AnchorMax.x @@ -10714,6 +12981,18 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_LocalPosition.x value: 0 @@ -10762,13 +13041,13 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6278876198794344828, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.x - value: 0 + - target: {fileID: 6118383127323466633, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: m_AnchoredPosition.x + value: -7 objectReference: {fileID: 0} - - target: {fileID: 6278876198794344828, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.y - value: 0 + - target: {fileID: 6531803900287943463, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 objectReference: {fileID: 0} - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} propertyPath: m_fontColor32.rgba @@ -10779,10 +13058,10 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} ---- !u!224 &825261058398377588 stripped +--- !u!224 &592554634518577557 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - m_PrefabInstance: {fileID: 6889161107132814985} + m_PrefabInstance: {fileID: 6688391102168760680} m_PrefabAsset: {fileID: 0} --- !u!1001 &7055210510625508762 PrefabInstance: @@ -11090,144 +13369,6 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 454179752691240676, guid: 5d050b13d3af06c48b87acd12ac090a3, type: 3} m_PrefabInstance: {fileID: 7433937811969223536} m_PrefabAsset: {fileID: 0} ---- !u!1001 &8167771093767386902 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 22436708} - m_Modifications: - - target: {fileID: 127264708406586209, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_text - value: Spirit - objectReference: {fileID: 0} - - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 626076867516593585, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5815777629776471805, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_text - value: Spirit - objectReference: {fileID: 0} - - target: {fileID: 6118383127294586757, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_Text - value: spirit - objectReference: {fileID: 0} - - target: {fileID: 6118383127301468953, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_Name - value: Stat Display (4) - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchorMin.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6278876198794344828, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6278876198794344828, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 8555680304376805179, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - propertyPath: m_fontColor32.rgba - value: 4294967295 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} ---- !u!224 &2715984491736709099 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 6118383127323394301, guid: 46b5bfbf454f8fe479ee3430548bbd2c, type: 3} - m_PrefabInstance: {fileID: 8167771093767386902} - m_PrefabAsset: {fileID: 0} --- !u!1001 &8409018131672950244 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/CharacterStats.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/CharacterStats.cs index 4009560a..0c957a2b 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/CharacterStats.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/CharacterStats.cs @@ -8,23 +8,57 @@ namespace Kryz.CharacterStats.Examples public class CharacterStats : MonoBehaviour { - //Primary - public CharacterStat Strength; - public CharacterStat Agility; - public CharacterStat Intelligence; - public CharacterStat Spirit; - public CharacterStat Vitality; + [Header("---------------------------------------------------------------------------------------------")] + [Header("Primary Stats:")] + public CharacterStat Cunning; + public CharacterStat Flow; + public CharacterStat Presence; //Secondary + [Space] + [Header("---------------------------------------------------------------------------------------------")] + [Header("Offensive Stats:")] + [Space] public CharacterStat AttackDamage; public CharacterStat SpellDamage; + public CharacterStat AttackSpeed; + + public CharacterStat CritChance; public CharacterStat CritDamage; + public CharacterStat AuraPower; + + [Space] + [Header("---------------------------------------------------------------------------------------------")] + [Header("Resource Stats:")] + [Space] public CharacterStat MaxHealth; + public CharacterStat HealthRegen; + public CharacterStat MaxMana; + public CharacterStat ManaRegen; + + [Space] + [Header("---------------------------------------------------------------------------------------------")] + [Header("Defensive Stats:")] + [Space] public CharacterStat Armor; public CharacterStat MagicResistance; + public CharacterStat DodgeChance; + public CharacterStat BlockChance; + public CharacterStat BlockEffectiveness; + + [Space] + [Header("---------------------------------------------------------------------------------------------")] + [Header("Misc Stats:")] + [Space] + public CharacterStat AreaEffectiveness; + public CharacterStat CooldownReduction; + public CharacterStat MovementSpeed; + public CharacterStat ReputationGainIncrease; + public CharacterStat GoldCostReduction; + //Awakening Related //public CharacterStat @@ -36,33 +70,42 @@ namespace Kryz.CharacterStats.Examples protected virtual void Awake() { - primaryStatsDictionary.Add(nameof(Strength).ToLower(), Strength); - primaryStatsDictionary.Add(nameof(Agility).ToLower(), Agility); - primaryStatsDictionary.Add(nameof(Intelligence).ToLower(), Intelligence); - primaryStatsDictionary.Add(nameof(Spirit).ToLower(), Spirit); - primaryStatsDictionary.Add(nameof(Vitality).ToLower(), Vitality); + primaryStatsDictionary.Add(nameof(Cunning).ToLower(), Cunning); + primaryStatsDictionary.Add(nameof(Flow).ToLower(), Flow); + primaryStatsDictionary.Add(nameof(Presence).ToLower(), Presence); + secondaryStatsDictionary.Add(nameof(AttackDamage).ToLower(), AttackDamage); secondaryStatsDictionary.Add(nameof(SpellDamage).ToLower(), SpellDamage); + secondaryStatsDictionary.Add(nameof(AttackSpeed).ToLower(), AttackSpeed); secondaryStatsDictionary.Add(nameof(CritChance).ToLower(), CritChance); secondaryStatsDictionary.Add(nameof(CritDamage).ToLower(), CritDamage); + secondaryStatsDictionary.Add(nameof(AuraPower).ToLower(), AuraPower); + secondaryStatsDictionary.Add(nameof(HealthRegen).ToLower(), HealthRegen); + secondaryStatsDictionary.Add(nameof(ManaRegen).ToLower(), ManaRegen); secondaryStatsDictionary.Add(nameof(MaxHealth).ToLower(), MaxHealth); + secondaryStatsDictionary.Add(nameof(MaxMana).ToLower(), MaxMana); + secondaryStatsDictionary.Add(nameof(Armor).ToLower(), Armor); secondaryStatsDictionary.Add(nameof(MagicResistance).ToLower(), MagicResistance); + secondaryStatsDictionary.Add(nameof(DodgeChance).ToLower(), DodgeChance); + secondaryStatsDictionary.Add(nameof(BlockChance).ToLower(), BlockChance); + secondaryStatsDictionary.Add(nameof(BlockEffectiveness).ToLower(), BlockEffectiveness); + + secondaryStatsDictionary.Add(nameof(AreaEffectiveness).ToLower(), AreaEffectiveness); + secondaryStatsDictionary.Add(nameof(CooldownReduction).ToLower(), CooldownReduction); + secondaryStatsDictionary.Add(nameof(MovementSpeed).ToLower(), MovementSpeed); + secondaryStatsDictionary.Add(nameof(ReputationGainIncrease).ToLower(), ReputationGainIncrease); + secondaryStatsDictionary.Add(nameof(GoldCostReduction).ToLower(), GoldCostReduction); onUpdateStatValues.AddListener(UpdateSecondaryStatsBasedOnPrimaryStats); } public void IncreaseAllStatPoints(int amount) { - Strength.BaseValue += amount; - Agility.BaseValue += amount; - Intelligence.BaseValue += amount; - Spirit.BaseValue += amount; - Vitality.BaseValue += amount; onUpdateStatValues.Invoke(); } @@ -70,56 +113,44 @@ namespace Kryz.CharacterStats.Examples public void UpdateSecondaryStatsBasedOnPrimaryStats() { //Remove previous - AttackDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource); - AttackDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource); + CritChance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.CunningSource); + CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.CunningSource); + MovementSpeed.RemoveAllModifiersFromSource(GameConstants.ObjectSources.CunningSource); - SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource); - SpellDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource); + //HealthRegen.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); + MaxMana.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); + ManaRegen.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); + CooldownReduction.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); + AttackSpeed.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); + //ResourceCostReduction.RemoveAllModifiersFromSource(GameConstants.ObjectSources.FlowSource); - CritChance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource); - CritChance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource); + AreaEffectiveness.RemoveAllModifiersFromSource(GameConstants.ObjectSources.PresenceSource); + ReputationGainIncrease.RemoveAllModifiersFromSource(GameConstants.ObjectSources.PresenceSource); + GoldCostReduction.RemoveAllModifiersFromSource(GameConstants.ObjectSources.PresenceSource); + AuraPower.RemoveAllModifiersFromSource(GameConstants.ObjectSources.PresenceSource); - CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource); - CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource); - CritDamage.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource); + //Add refreshed values + CritChance.AddModifier(new StatModifier(Cunning.Value * GameConstants.CharacterStatsBalancing.CritChanceIncreasePerCunning, StatModType.Flat, GameConstants.ObjectSources.CunningSource)); + CritDamage.AddModifier(new StatModifier(Cunning.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreasePerCunning, StatModType.Flat, GameConstants.ObjectSources.CunningSource)); + //DodgeChance.AddModifier(new StatModifier(Cunning.Value * GameConstants.CharacterStatInfluence.DodgeChanceIncreasePerCunning, StatModType.Flat, GameConstants.ObjectSources.CunningSource)); + MovementSpeed.AddModifier(new StatModifier(Cunning.Value * GameConstants.CharacterStatsBalancing.MovementSpeedIncreasePerCunning, StatModType.Flat, GameConstants.ObjectSources.CunningSource)); - MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource); - MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource); + //HealthRegen.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatInfluence.HealthRegenIncreasePerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); + MaxMana.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatsBalancing.MaxManaIncreasePerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); + ManaRegen.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatsBalancing.ManaRegenIncreasePerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); + CooldownReduction.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatsBalancing.CooldownReductionIncreasePerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); + AttackSpeed.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatsBalancing.AttackSpeedIncreasePerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); + //ResourceCostReduction.AddModifier(new StatModifier(Flow.Value * GameConstants.CharacterStatInfluence.ResourceCostReductionPerFlow, StatModType.Flat, GameConstants.ObjectSources.FlowSource)); - Armor.RemoveAllModifiersFromSource(GameConstants.ObjectSources.StrengthSource); - Armor.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AgilitySource); - Armor.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource); + AreaEffectiveness.AddModifier(new StatModifier(Presence.Value * GameConstants.CharacterStatsBalancing.AreaEffectivenessIncreasePerPresence, StatModType.Flat, GameConstants.ObjectSources.PresenceSource)); + + ReputationGainIncrease.AddModifier(new StatModifier(Presence.Value * GameConstants.CharacterStatsBalancing.ReputationGainIncreasePerPresence, StatModType.Flat, GameConstants.ObjectSources.PresenceSource)); + GoldCostReduction.AddModifier(new StatModifier(Presence.Value * GameConstants.CharacterStatsBalancing.GoldCostReductionPerPresence, StatModType.Flat, GameConstants.ObjectSources.PresenceSource)); + AuraPower.AddModifier(new StatModifier(Presence.Value * GameConstants.CharacterStatsBalancing.AuraPowerPerPresence, StatModType.Flat, GameConstants.ObjectSources.PresenceSource)); - MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.IntelligenceSource); - MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.SpiritSource); - MagicResistance.RemoveAllModifiersFromSource(GameConstants.ObjectSources.VitalitySource); + - //Add new values - AttackDamage.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.AttackDamageIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource)); - AttackDamage.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.AttackDamageIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource)); - - SpellDamage.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.SpellDamageIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource)); - SpellDamage.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.SpellDamageIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource)); - - CritChance.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.CritChanceIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource)); - CritChance.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.CritChanceIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource)); - - //CritDamage.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource)); - //CritDamage.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource)); - //CritDamage.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.CritDamageIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource)); - - MaxHealth.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.MaxHealthIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource)); - MaxHealth.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.MaxHealthIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource)); - - //Armor.AddModifier(new StatModifier(Strength.Value * GameConstants.CharacterStatsBalancing.ArmorIncreaseFromStrength, StatModType.Flat, GameConstants.ObjectSources.StrengthSource)); - //Armor.AddModifier(new StatModifier(Agility.Value * GameConstants.CharacterStatsBalancing.ArmorIncreaseFromAgility, StatModType.Flat, GameConstants.ObjectSources.AgilitySource)); - //Armor.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.ArmorIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource)); - - //MagicResistance.AddModifier(new StatModifier(Intelligence.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromIntelligence, StatModType.Flat, GameConstants.ObjectSources.IntelligenceSource)); - MagicResistance.AddModifier(new StatModifier(Spirit.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromSpirit, StatModType.Flat, GameConstants.ObjectSources.SpiritSource)); - //MagicResistance.AddModifier(new StatModifier(Vitality.Value * GameConstants.CharacterStatsBalancing.MagicResistanceIncreaseFromVitality, StatModType.Flat, GameConstants.ObjectSources.VitalitySource)); - Debug.Log(this.gameObject.name + " has relative power level of: " + GetRelativePowerLevel()); } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/CraftingStatStoneTemplate.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/CraftingStatStoneTemplate.cs index ddca6771..c121a3e4 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/CraftingStatStoneTemplate.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/CraftingStatStoneTemplate.cs @@ -3,8 +3,9 @@ using System.Collections.Generic; using UnityEngine; [CreateAssetMenu] -public class CraftingStatStoneTemplate : Item +public class CraftingStatStoneTemplate : Item { + //TODO: Add new stats [Space] public int MinAttackDamageBonus; public int MaxAttackDamageBonus; diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs index 565d1486..dad3a7fb 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs @@ -17,70 +17,64 @@ namespace Kryz.CharacterStats.Examples [CreateAssetMenu] public class EquippableItem : Item { - public int StrengthBonus; - public int AgilityBonus; - public int IntelligenceBonus; - public int SpiritBonus; - public int VitalityBonus; - [Space] - public float StrengthPercentBonus; - public float AgilityPercentBonus; - public float IntelligencePercentBonus; - public float SpiritPercentBonus; - public float VitalityPercentBonus; - [Space] public int AttackDamageBonus; public int SpellDamageBonus; + //no flat attack speed bonus, only % public int CritChanceBonus; public int CritDamageBonus; + public int MaxHealthBonus; + public int HealthRegenBonus; + public int MaxManaBonus; + public int ManaRegenBonus; + public int ArmorBonus; public int MagicResistanceBonus; + //no flat dodge + //no flat block chance + //no flat block effectiveness + + //no flat area + //no flat cdr + //no flat movespeed + + //no flat rep gains + //no flat gold cost reduction + [Space] public float AttackDamagePercentBonus; public float SpellDamagePercentBonus; + + public float AttackSpeedPercentBonus; + public float CritChancePercentBonus; public float CritDamagePercentBonus; + public float MaxHealthPercentBonus; + public float HealthRegenPercentBonus; + public float MaxManaPercentBonus; + public float ManaRegenPercentBonus; + + public float ArmorPercentBonus; public float MagicResistancePercentBonus; + public float DodgeChancePercentBonus; + public float BlockChancePercentBonus; + public float BlockEffectivenessPercentBonus; + + + public float AreaEffectivenessPercentBonus; + public float CooldownReductionPercentBonus; + public float MovementSpeedPercentBonus; + public float ReputationGainIncreasePercentBonus; + public float GoldCostReductionPercentBonus; + + public EquipmentType EquipmentType; [Space] public bool CraftableBase = false; [Space(20f)] [Header("Crafting-ish")] - public int MinStrengthBonus; - public int MaxStrengthBonus; - [Space] - public int MinAgilityBonus; - public int MaxAgilityBonus; - [Space] - public int MinIntelligenceBonus; - public int MaxIntelligenceBonus; - [Space] - public int MinSpiritBonus; - public int MaxSpiritBonus; - [Space] - public int MinVitalityBonus; - public int MaxVitalityBonus; - [Space] - [Space] - public float MinStrengthPercentBonus; - public float MaxStrengthPercentBonus; - [Space] - public float MinAgilityPercentBonus; - public float MaxAgilityPercentBonus; - [Space] - public float MinIntelligencePercentBonus; - public float MaxIntelligencePercentBonus; - [Space] - public float MinSpiritPercentBonus; - public float MaxSpiritPercentBonus; - [Space] - public float MinVitalityPercentBonus; - public float MaxVitalityPercentBonus; - [Space] - [Space] public int MinAttackDamageBonus; public int MaxAttackDamageBonus; [Space] @@ -131,29 +125,6 @@ namespace Kryz.CharacterStats.Examples public void Equip(PlayerCharacterStats c) { - if (StrengthBonus != 0) - c.Strength.AddModifier(new StatModifier(StrengthBonus, StatModType.Flat, this)); - if (AgilityBonus != 0) - c.Agility.AddModifier(new StatModifier(AgilityBonus, StatModType.Flat, this)); - if (IntelligenceBonus != 0) - c.Intelligence.AddModifier(new StatModifier(IntelligenceBonus, StatModType.Flat, this)); - if (SpiritBonus != 0) - c.Spirit.AddModifier(new StatModifier(SpiritBonus, StatModType.Flat, this)); - if (VitalityBonus != 0) - c.Vitality.AddModifier(new StatModifier(VitalityBonus, StatModType.Flat, this)); - - if (StrengthPercentBonus != 0) - c.Strength.AddModifier(new StatModifier(StrengthPercentBonus, StatModType.PercentMult, this)); - if (AgilityPercentBonus != 0) - c.Agility.AddModifier(new StatModifier(AgilityPercentBonus, StatModType.PercentMult, this)); - if (IntelligencePercentBonus != 0) - c.Intelligence.AddModifier(new StatModifier(IntelligencePercentBonus, StatModType.PercentMult, this)); - if (SpiritPercentBonus != 0) - c.Spirit.AddModifier(new StatModifier(SpiritPercentBonus, StatModType.PercentMult, this)); - if (VitalityPercentBonus != 0) - c.Vitality.AddModifier(new StatModifier(VitalityPercentBonus, StatModType.PercentMult, this)); - - if (AttackDamageBonus != 0) c.AttackDamage.AddModifier(new StatModifier(AttackDamageBonus, StatModType.Flat, this)); @@ -167,46 +138,102 @@ namespace Kryz.CharacterStats.Examples if (MaxHealthBonus != 0) c.MaxHealth.AddModifier(new StatModifier(MaxHealthBonus, StatModType.Flat, this)); + if (HealthRegenBonus != 0) + c.HealthRegen.AddModifier(new StatModifier(HealthRegenBonus, StatModType.Flat, this)); + + if (MaxManaBonus != 0) + c.MaxMana.AddModifier(new StatModifier(MaxManaBonus, StatModType.Flat, this)); + if (ManaRegenBonus != 0) + c.ManaRegen.AddModifier(new StatModifier(ManaRegenBonus, StatModType.Flat, this)); + + if (ArmorBonus != 0) c.Armor.AddModifier(new StatModifier(ArmorBonus, StatModType.Flat, this)); if (MagicResistanceBonus != 0) c.MagicResistance.AddModifier(new StatModifier(MagicResistanceBonus, StatModType.Flat, this)); + + + + + if (AttackDamagePercentBonus != 0) c.AttackDamage.AddModifier(new StatModifier(AttackDamagePercentBonus, StatModType.PercentAdd, this)); if (SpellDamagePercentBonus != 0) c.SpellDamage.AddModifier(new StatModifier(SpellDamagePercentBonus, StatModType.PercentAdd, this)); + if (AttackSpeedPercentBonus != 0) + c.AttackSpeed.AddModifier(new StatModifier(AttackSpeedPercentBonus, StatModType.PercentAdd, this)); + if (CritChancePercentBonus != 0) c.CritChance.AddModifier(new StatModifier(CritChancePercentBonus, StatModType.PercentAdd, this)); if (CritDamagePercentBonus != 0) c.CritDamage.AddModifier(new StatModifier(CritDamagePercentBonus, StatModType.PercentAdd, this)); + + if (MaxHealthPercentBonus != 0) c.MaxHealth.AddModifier(new StatModifier(MaxHealthPercentBonus, StatModType.PercentAdd, this)); + if (HealthRegenPercentBonus != 0) + c.HealthRegen.AddModifier(new StatModifier(HealthRegenPercentBonus, StatModType.PercentAdd, this)); + + if (MaxManaPercentBonus != 0) + c.MaxMana.AddModifier(new StatModifier(MaxManaPercentBonus, StatModType.PercentAdd, this)); + if (ManaRegenPercentBonus != 0) + c.ManaRegen.AddModifier(new StatModifier(ManaRegenPercentBonus, StatModType.PercentAdd, this)); + + if (ArmorPercentBonus != 0) c.Armor.AddModifier(new StatModifier(ArmorPercentBonus, StatModType.PercentAdd, this)); if (MagicResistancePercentBonus != 0) c.MagicResistance.AddModifier(new StatModifier(MagicResistancePercentBonus, StatModType.PercentAdd, this)); + if (DodgeChancePercentBonus != 0) + c.DodgeChance.AddModifier(new StatModifier(DodgeChancePercentBonus, StatModType.PercentAdd, this)); + if (BlockChancePercentBonus != 0) + c.BlockChance.AddModifier(new StatModifier(BlockChancePercentBonus, StatModType.PercentAdd, this)); + if (BlockEffectivenessPercentBonus != 0) + c.BlockEffectiveness.AddModifier(new StatModifier(BlockEffectivenessPercentBonus, StatModType.PercentAdd, this)); + + + if (AreaEffectivenessPercentBonus != 0) + c.AreaEffectiveness.AddModifier(new StatModifier(AreaEffectivenessPercentBonus, StatModType.PercentAdd, this)); + if (CooldownReductionPercentBonus != 0) + c.CooldownReduction.AddModifier(new StatModifier(CooldownReductionPercentBonus, StatModType.PercentAdd, this)); + if (MovementSpeedPercentBonus != 0) + c.MovementSpeed.AddModifier(new StatModifier(MovementSpeedPercentBonus, StatModType.PercentAdd, this)); + if (ReputationGainIncreasePercentBonus != 0) + c.ReputationGainIncrease.AddModifier(new StatModifier(ReputationGainIncreasePercentBonus, StatModType.PercentAdd, this)); + if (GoldCostReductionPercentBonus != 0) + c.GoldCostReduction.AddModifier(new StatModifier(GoldCostReductionPercentBonus, StatModType.PercentAdd, this)); } public void Unequip(PlayerCharacterStats c) { - c.Strength.RemoveAllModifiersFromSource(this); - c.Agility.RemoveAllModifiersFromSource(this); - c.Intelligence.RemoveAllModifiersFromSource(this); - c.Spirit.RemoveAllModifiersFromSource(this); - c.Vitality.RemoveAllModifiersFromSource(this); c.AttackDamage.RemoveAllModifiersFromSource(this); c.SpellDamage.RemoveAllModifiersFromSource(this); + c.AttackSpeed.RemoveAllModifiersFromSource(this); + c.CritChance.RemoveAllModifiersFromSource(this); c.CritDamage.RemoveAllModifiersFromSource(this); c.MaxHealth.RemoveAllModifiersFromSource(this); + c.HealthRegen.RemoveAllModifiersFromSource(this); + c.MaxMana.RemoveAllModifiersFromSource(this); + c.ManaRegen.RemoveAllModifiersFromSource(this); + c.Armor.RemoveAllModifiersFromSource(this); c.MagicResistance.RemoveAllModifiersFromSource(this); + c.DodgeChance.RemoveAllModifiersFromSource(this); + c.BlockChance.RemoveAllModifiersFromSource(this); + c.BlockEffectiveness.RemoveAllModifiersFromSource(this); + + c.AreaEffectiveness.RemoveAllModifiersFromSource(this); + c.CooldownReduction.RemoveAllModifiersFromSource(this); + c.MovementSpeed.RemoveAllModifiersFromSource(this); + c.ReputationGainIncrease.RemoveAllModifiersFromSource(this); + c.GoldCostReduction.RemoveAllModifiersFromSource(this); } } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs index b0dae524..87ed6af9 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs @@ -8,33 +8,57 @@ using UnityEngine; [System.Serializable] public class EquippableItemInstance : ItemInstance { - public int StrengthBonus; - public int AgilityBonus; - public int IntelligenceBonus; - public int SpiritBonus; - public int VitalityBonus; - [Space] - public float StrengthPercentBonus; - public float AgilityPercentBonus; - public float IntelligencePercentBonus; - public float SpiritPercentBonus; - public float VitalityPercentBonus; - [Space] public int AttackDamageBonus; public int SpellDamageBonus; + //no flat attack speed bonus, only % public int CritChanceBonus; public int CritDamageBonus; + public int MaxHealthBonus; + public int HealthRegenBonus; + public int MaxManaBonus; + public int ManaRegenBonus; + public int ArmorBonus; public int MagicResistanceBonus; + //no flat dodge + //no flat block chance + //no flat block effectiveness + + //no flat area + //no flat cdr + //no flat movespeed + + //no flat rep gains + //no flat gold cost reduction + [Space] public float AttackDamagePercentBonus; public float SpellDamagePercentBonus; + + public float AttackSpeedPercentBonus; + public float CritChancePercentBonus; public float CritDamagePercentBonus; + public float MaxHealthPercentBonus; + public float HealthRegenPercentBonus; + public float MaxManaPercentBonus; + public float ManaRegenPercentBonus; + + public float ArmorPercentBonus; public float MagicResistancePercentBonus; + public float DodgeChancePercentBonus; + public float BlockChancePercentBonus; + public float BlockEffectivenessPercentBonus; + + + public float AreaEffectivenessPercentBonus; + public float CooldownReductionPercentBonus; + public float MovementSpeedPercentBonus; + public float ReputationGainIncreasePercentBonus; + public float GoldCostReductionPercentBonus; [Space] public EquipmentType EquipmentType; [Space] @@ -50,82 +74,113 @@ public class EquippableItemInstance : ItemInstance public void Equip(PlayerCharacterStats c) { - if (StrengthBonus != 0) - c.Strength.AddModifier(new StatModifier(StrengthBonus, StatModType.Flat, this.ItemName)); - if (AgilityBonus != 0) - c.Agility.AddModifier(new StatModifier(AgilityBonus, StatModType.Flat, this.ItemName)); - if (IntelligenceBonus != 0) - c.Intelligence.AddModifier(new StatModifier(IntelligenceBonus, StatModType.Flat, this.ItemName)); - if (SpiritBonus != 0) - c.Spirit.AddModifier(new StatModifier(SpiritBonus, StatModType.Flat, this.ItemName)); - if (VitalityBonus != 0) - c.Vitality.AddModifier(new StatModifier(VitalityBonus, StatModType.Flat, this.ItemName)); - - if (StrengthPercentBonus != 0) - c.Strength.AddModifier(new StatModifier(StrengthPercentBonus, StatModType.PercentMult, this.ItemName)); - if (AgilityPercentBonus != 0) - c.Agility.AddModifier(new StatModifier(AgilityPercentBonus, StatModType.PercentMult, this.ItemName)); - if (IntelligencePercentBonus != 0) - c.Intelligence.AddModifier(new StatModifier(IntelligencePercentBonus, StatModType.PercentMult, this.ItemName)); - if (SpiritPercentBonus != 0) - c.Spirit.AddModifier(new StatModifier(SpiritPercentBonus, StatModType.PercentMult, this.ItemName)); - if (VitalityPercentBonus != 0) - c.Vitality.AddModifier(new StatModifier(VitalityPercentBonus, StatModType.PercentMult, this.ItemName)); - - - if (AttackDamageBonus != 0) - c.AttackDamage.AddModifier(new StatModifier(AttackDamageBonus, StatModType.Flat, this.ItemName)); + c.AttackDamage.AddModifier(new StatModifier(AttackDamageBonus, StatModType.Flat, this)); if (SpellDamageBonus != 0) - c.SpellDamage.AddModifier(new StatModifier(SpellDamageBonus, StatModType.Flat, this.ItemName)); + c.SpellDamage.AddModifier(new StatModifier(SpellDamageBonus, StatModType.Flat, this)); if (CritChanceBonus != 0) - c.CritChance.AddModifier(new StatModifier(CritChanceBonus, StatModType.Flat, this.ItemName)); + c.CritChance.AddModifier(new StatModifier(CritChanceBonus, StatModType.Flat, this)); if (CritDamageBonus != 0) - c.CritDamage.AddModifier(new StatModifier(CritDamageBonus, StatModType.Flat, this.ItemName)); + c.CritDamage.AddModifier(new StatModifier(CritDamageBonus, StatModType.Flat, this)); if (MaxHealthBonus != 0) - c.MaxHealth.AddModifier(new StatModifier(MaxHealthBonus, StatModType.Flat, this.ItemName)); + c.MaxHealth.AddModifier(new StatModifier(MaxHealthBonus, StatModType.Flat, this)); + if (HealthRegenBonus != 0) + c.HealthRegen.AddModifier(new StatModifier(HealthRegenBonus, StatModType.Flat, this)); + + if (MaxManaBonus != 0) + c.MaxMana.AddModifier(new StatModifier(MaxManaBonus, StatModType.Flat, this)); + if (ManaRegenBonus != 0) + c.ManaRegen.AddModifier(new StatModifier(ManaRegenBonus, StatModType.Flat, this)); + + if (ArmorBonus != 0) - c.Armor.AddModifier(new StatModifier(ArmorBonus, StatModType.Flat, this.ItemName)); + c.Armor.AddModifier(new StatModifier(ArmorBonus, StatModType.Flat, this)); if (MagicResistanceBonus != 0) - c.MagicResistance.AddModifier(new StatModifier(MagicResistanceBonus, StatModType.Flat, this.ItemName)); + c.MagicResistance.AddModifier(new StatModifier(MagicResistanceBonus, StatModType.Flat, this)); + + + + + if (AttackDamagePercentBonus != 0) - c.AttackDamage.AddModifier(new StatModifier(AttackDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + c.AttackDamage.AddModifier(new StatModifier(AttackDamagePercentBonus, StatModType.PercentAdd, this)); if (SpellDamagePercentBonus != 0) - c.SpellDamage.AddModifier(new StatModifier(SpellDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + c.SpellDamage.AddModifier(new StatModifier(SpellDamagePercentBonus, StatModType.PercentAdd, this)); + + if (AttackSpeedPercentBonus != 0) + c.AttackSpeed.AddModifier(new StatModifier(AttackSpeedPercentBonus, StatModType.PercentAdd, this)); if (CritChancePercentBonus != 0) - c.CritChance.AddModifier(new StatModifier(CritChancePercentBonus, StatModType.PercentAdd, this.ItemName)); + c.CritChance.AddModifier(new StatModifier(CritChancePercentBonus, StatModType.PercentAdd, this)); if (CritDamagePercentBonus != 0) - c.CritDamage.AddModifier(new StatModifier(CritDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + c.CritDamage.AddModifier(new StatModifier(CritDamagePercentBonus, StatModType.PercentAdd, this)); + + if (MaxHealthPercentBonus != 0) - c.MaxHealth.AddModifier(new StatModifier(MaxHealthPercentBonus, StatModType.PercentAdd, this.ItemName)); + c.MaxHealth.AddModifier(new StatModifier(MaxHealthPercentBonus, StatModType.PercentAdd, this)); + if (HealthRegenPercentBonus != 0) + c.HealthRegen.AddModifier(new StatModifier(HealthRegenPercentBonus, StatModType.PercentAdd, this)); + + if (MaxManaPercentBonus != 0) + c.MaxMana.AddModifier(new StatModifier(MaxManaPercentBonus, StatModType.PercentAdd, this)); + if (ManaRegenPercentBonus != 0) + c.ManaRegen.AddModifier(new StatModifier(ManaRegenPercentBonus, StatModType.PercentAdd, this)); + + if (ArmorPercentBonus != 0) - c.Armor.AddModifier(new StatModifier(ArmorPercentBonus, StatModType.PercentAdd, this.ItemName)); + c.Armor.AddModifier(new StatModifier(ArmorPercentBonus, StatModType.PercentAdd, this)); if (MagicResistancePercentBonus != 0) - c.MagicResistance.AddModifier(new StatModifier(MagicResistancePercentBonus, StatModType.PercentAdd, this.ItemName)); + c.MagicResistance.AddModifier(new StatModifier(MagicResistancePercentBonus, StatModType.PercentAdd, this)); + if (DodgeChancePercentBonus != 0) + c.DodgeChance.AddModifier(new StatModifier(DodgeChancePercentBonus, StatModType.PercentAdd, this)); + if (BlockChancePercentBonus != 0) + c.BlockChance.AddModifier(new StatModifier(BlockChancePercentBonus, StatModType.PercentAdd, this)); + if (BlockEffectivenessPercentBonus != 0) + c.BlockEffectiveness.AddModifier(new StatModifier(BlockEffectivenessPercentBonus, StatModType.PercentAdd, this)); + + + if (AreaEffectivenessPercentBonus != 0) + c.AreaEffectiveness.AddModifier(new StatModifier(AreaEffectivenessPercentBonus, StatModType.PercentAdd, this)); + if (CooldownReductionPercentBonus != 0) + c.CooldownReduction.AddModifier(new StatModifier(CooldownReductionPercentBonus, StatModType.PercentAdd, this)); + if (MovementSpeedPercentBonus != 0) + c.MovementSpeed.AddModifier(new StatModifier(MovementSpeedPercentBonus, StatModType.PercentAdd, this)); + if (ReputationGainIncreasePercentBonus != 0) + c.ReputationGainIncrease.AddModifier(new StatModifier(ReputationGainIncreasePercentBonus, StatModType.PercentAdd, this)); + if (GoldCostReductionPercentBonus != 0) + c.GoldCostReduction.AddModifier(new StatModifier(GoldCostReductionPercentBonus, StatModType.PercentAdd, this)); } public void Unequip(PlayerCharacterStats c) { - c.Strength.RemoveAllModifiersFromSource(this.ItemName); - c.Agility.RemoveAllModifiersFromSource(this.ItemName); - c.Intelligence.RemoveAllModifiersFromSource(this.ItemName); - c.Spirit.RemoveAllModifiersFromSource(this.ItemName); - c.Vitality.RemoveAllModifiersFromSource(this.ItemName); + c.AttackDamage.RemoveAllModifiersFromSource(this); + c.SpellDamage.RemoveAllModifiersFromSource(this); - c.AttackDamage.RemoveAllModifiersFromSource(this.ItemName); - c.SpellDamage.RemoveAllModifiersFromSource(this.ItemName); + c.AttackSpeed.RemoveAllModifiersFromSource(this); - c.CritChance.RemoveAllModifiersFromSource(this.ItemName); - c.CritDamage.RemoveAllModifiersFromSource(this.ItemName); + c.CritChance.RemoveAllModifiersFromSource(this); + c.CritDamage.RemoveAllModifiersFromSource(this); - c.MaxHealth.RemoveAllModifiersFromSource(this.ItemName); - c.Armor.RemoveAllModifiersFromSource(this.ItemName); - c.MagicResistance.RemoveAllModifiersFromSource(this.ItemName); + c.MaxHealth.RemoveAllModifiersFromSource(this); + c.HealthRegen.RemoveAllModifiersFromSource(this); + c.MaxMana.RemoveAllModifiersFromSource(this); + c.ManaRegen.RemoveAllModifiersFromSource(this); + + c.Armor.RemoveAllModifiersFromSource(this); + c.MagicResistance.RemoveAllModifiersFromSource(this); + c.DodgeChance.RemoveAllModifiersFromSource(this); + c.BlockChance.RemoveAllModifiersFromSource(this); + c.BlockEffectiveness.RemoveAllModifiersFromSource(this); + + c.AreaEffectiveness.RemoveAllModifiersFromSource(this); + c.CooldownReduction.RemoveAllModifiersFromSource(this); + c.MovementSpeed.RemoveAllModifiersFromSource(this); + c.ReputationGainIncrease.RemoveAllModifiersFromSource(this); + c.GoldCostReduction.RemoveAllModifiersFromSource(this); } public bool CanAddCraftingStone(CraftingStatStone stone) @@ -181,6 +236,7 @@ public class EquippableItemInstance : ItemInstance return nonZeroStats; } + //TODO: Add new stats to stones too private void AddStats(CraftingStatStone stone) { AttackDamageBonus += stone.AttackDamageBonus; @@ -200,20 +256,9 @@ public class EquippableItemInstance : ItemInstance MagicResistancePercentBonus += stone.MagicResistancePercentBonus; } + //TODO: Add new stats public EquippableItemInstance() { - StrengthBonus = 0; - AgilityBonus = 0; - IntelligenceBonus = 0; - SpiritBonus = 0; - VitalityBonus = 0; - - StrengthPercentBonus = 0; - AgilityPercentBonus = 0; - IntelligencePercentBonus = 0; - SpiritPercentBonus = 0; - VitalityPercentBonus = 0; - AttackDamageBonus = 0; SpellDamageBonus = 0; CritChanceBonus = 0; @@ -245,18 +290,6 @@ public class EquippableItemInstance : ItemInstance description = template.description; templateIndex = ItemIndexer.Instance.Items.IndexOf(template); - StrengthBonus = template.StrengthBonus; - AgilityBonus = template.AgilityBonus; - IntelligenceBonus = template.IntelligenceBonus; - SpiritBonus = template.SpiritBonus; - VitalityBonus = template.VitalityBonus; - - StrengthPercentBonus = template.StrengthPercentBonus; - AgilityPercentBonus = template.AgilityPercentBonus; - IntelligencePercentBonus = template.IntelligencePercentBonus; - SpiritPercentBonus = template.SpiritPercentBonus; - VitalityPercentBonus = template.VitalityPercentBonus; - AttackDamageBonus = template.AttackDamageBonus; SpellDamageBonus = template.SpellDamageBonus; CritChanceBonus = template.CritChanceBonus; @@ -290,18 +323,6 @@ public class EquippableItemInstance : ItemInstance if (randomizeStats) { - StrengthBonus = Random.Range(template.MinStrengthBonus, template.MaxStrengthBonus); - AgilityBonus = Random.Range(template.MinAgilityBonus, template.MaxAgilityBonus); - IntelligenceBonus = Random.Range(template.MinIntelligenceBonus, template.MaxIntelligenceBonus); - SpiritBonus = Random.Range(template.MinSpiritBonus, template.MaxSpiritBonus); - VitalityBonus = Random.Range(template.MinVitalityBonus, template.MaxVitalityBonus); - - StrengthPercentBonus = Mathf.Round(Random.Range(template.MinStrengthPercentBonus, template.MaxStrengthPercentBonus) * 100f) / 100f; - AgilityPercentBonus = Mathf.Round(Random.Range(template.MinAgilityPercentBonus, template.MaxAgilityPercentBonus) * 100f) / 100f; - IntelligencePercentBonus = Mathf.Round(Random.Range(template.MinIntelligencePercentBonus, template.MaxIntelligencePercentBonus) * 100f) / 100f; - SpiritPercentBonus = Mathf.Round(Random.Range(template.MinSpiritPercentBonus, template.MaxSpiritPercentBonus) * 100f) / 100f; - VitalityPercentBonus = Mathf.Round(Random.Range(template.MinVitalityPercentBonus, template.MaxVitalityPercentBonus) * 100f) / 100f; - AttackDamageBonus = Random.Range(template.MinAttackDamageBonus, template.MaxAttackDamageBonus); SpellDamageBonus = Random.Range(template.MinSpellDamageBonus, template.MaxSpellDamageBonus); @@ -323,17 +344,6 @@ public class EquippableItemInstance : ItemInstance } else { - StrengthBonus = template.StrengthBonus; - AgilityBonus = template.AgilityBonus; - IntelligenceBonus = template.IntelligenceBonus; - SpiritBonus = template.SpiritBonus; - VitalityBonus = template.VitalityBonus; - - StrengthPercentBonus = template.StrengthPercentBonus; - AgilityPercentBonus = template.AgilityPercentBonus; - IntelligencePercentBonus = template.IntelligencePercentBonus; - SpiritPercentBonus = template.SpiritPercentBonus; - VitalityPercentBonus = template.VitalityPercentBonus; AttackDamageBonus = template.AttackDamageBonus; SpellDamageBonus = template.SpellDamageBonus; diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs index 667dc13b..24a33086 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs @@ -62,21 +62,7 @@ public class EquippedItemTooltip : MonoBehaviour sb.Length = 0; - AddStatText(item.StrengthBonus, " Strength"); - AddStatText(item.AgilityBonus, " Agility"); - AddStatText(item.IntelligenceBonus, " Intelligence"); - AddStatText(item.SpiritBonus, " Spirit"); - AddStatText(item.VitalityBonus, " Vitality"); - - sb.AppendLine(); - - AddStatText(item.StrengthPercentBonus * 100, "% Strength"); - AddStatText(item.AgilityPercentBonus * 100, "% Agility"); - AddStatText(item.IntelligencePercentBonus * 100, "% Intelligence"); - AddStatText(item.SpiritPercentBonus * 100, "% Spirit"); - AddStatText(item.VitalityPercentBonus * 100, "% Vitality"); - - sb.AppendLine(); + //TODO: Add new stats AddStatText(item.AttackDamageBonus, " Attack Damage"); @@ -84,6 +70,9 @@ public class EquippedItemTooltip : MonoBehaviour AddStatText(item.CritChanceBonus, "% Base Crit Chance"); AddStatText(item.CritDamageBonus, "% Base Crit Damage"); AddStatText(item.MaxHealthBonus, " Max Health"); + AddStatText(item.HealthRegenBonus, " Health Regen"); + AddStatText(item.MaxManaBonus, " Max Mana"); + AddStatText(item.ManaRegenBonus, " Mana Regen"); AddStatText(item.ArmorBonus, " Armor"); AddStatText(item.MagicResistanceBonus, " Magic Resistance"); @@ -91,11 +80,23 @@ public class EquippedItemTooltip : MonoBehaviour AddStatText(item.AttackDamagePercentBonus * 100, " % Attack Damage"); AddStatText(item.SpellDamagePercentBonus * 100, " % Spell Damage"); + AddStatText(item.AttackSpeedPercentBonus * 100, " % Attack Speed"); AddStatText(item.CritChancePercentBonus * 100, "% Increased Crit Chance"); AddStatText(item.CritDamagePercentBonus * 100, "% Increased Crit Damage"); AddStatText(item.MaxHealthPercentBonus * 100, " % Max Health"); + AddStatText(item.HealthRegenPercentBonus * 100, " % Health Regen"); + AddStatText(item.MaxManaPercentBonus * 100, " % Max Mana"); + AddStatText(item.ManaRegenPercentBonus * 100, " % ManaRegen"); AddStatText(item.ArmorPercentBonus * 100, " % Armor"); AddStatText(item.MagicResistancePercentBonus * 100, " % Magic Resistance"); + AddStatText(item.DodgeChancePercentBonus * 100, " % Dodge Chance"); + AddStatText(item.BlockChancePercentBonus * 100, " % Block Chance"); + AddStatText(item.BlockEffectivenessPercentBonus * 100, " % Block Effectiveness"); + AddStatText(item.AreaEffectivenessPercentBonus * 100, " % Area Effectiveness"); + AddStatText(item.CooldownReductionPercentBonus * 100, " % Cooldown Reduction"); + AddStatText(item.MovementSpeedPercentBonus * 100, " % Movement Speed"); + AddStatText(item.ReputationGainIncreasePercentBonus * 100, " % Reputation Gain Increase"); + AddStatText(item.GoldCostReductionPercentBonus * 100, " % Gold Cost Reduction"); if (!string.IsNullOrEmpty(itemToShow.description)) { @@ -124,21 +125,7 @@ public class EquippedItemTooltip : MonoBehaviour sb.Length = 0; - AddStatText(item.StrengthBonus, " Strength"); - AddStatText(item.AgilityBonus, " Agility"); - AddStatText(item.IntelligenceBonus, " Intelligence"); - AddStatText(item.SpiritBonus, " Spirit"); - AddStatText(item.VitalityBonus, " Vitality"); - - sb.AppendLine(); - - AddStatText(item.StrengthPercentBonus * 100, "% Strength"); - AddStatText(item.AgilityPercentBonus * 100, "% Agility"); - AddStatText(item.IntelligencePercentBonus * 100, "% Intelligence"); - AddStatText(item.SpiritPercentBonus * 100, "% Spirit"); - AddStatText(item.VitalityPercentBonus * 100, "% Vitality"); - - sb.AppendLine(); + //TODO: Add new stats AddStatText(item.AttackDamageBonus, " Attack Damage"); AddStatText(item.SpellDamageBonus, " Spell Damage"); diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs index 1cd6554c..5e916983 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs @@ -67,21 +67,6 @@ namespace Kryz.CharacterStats.Examples sb.Length = 0; - AddStatText(item.StrengthBonus, " Strength"); - AddStatText(item.AgilityBonus, " Agility"); - AddStatText(item.IntelligenceBonus, " Intelligence"); - AddStatText(item.SpiritBonus, " Spirit"); - AddStatText(item.VitalityBonus, " Vitality"); - - sb.AppendLine(); - - AddStatText(item.StrengthPercentBonus * 100, "% Strength"); - AddStatText(item.AgilityPercentBonus * 100, "% Agility"); - AddStatText(item.IntelligencePercentBonus * 100, "% Intelligence"); - AddStatText(item.SpiritPercentBonus * 100, "% Spirit"); - AddStatText(item.VitalityPercentBonus * 100, "% Vitality"); - - sb.AppendLine(); AddStatText(item.AttackDamageBonus, " Attack Damage"); @@ -134,27 +119,14 @@ namespace Kryz.CharacterStats.Examples sb.Length = 0; - AddStatText(item.StrengthBonus, " Strength"); - AddStatText(item.AgilityBonus, " Agility"); - AddStatText(item.IntelligenceBonus, " Intelligence"); - AddStatText(item.SpiritBonus, " Spirit"); - AddStatText(item.VitalityBonus, " Vitality"); - - sb.AppendLine(); - - AddStatText(item.StrengthPercentBonus * 100, "% Strength"); - AddStatText(item.AgilityPercentBonus * 100, "% Agility"); - AddStatText(item.IntelligencePercentBonus * 100, "% Intelligence"); - AddStatText(item.SpiritPercentBonus * 100, "% Spirit"); - AddStatText(item.VitalityPercentBonus * 100, "% Vitality"); - - sb.AppendLine(); - AddStatText(item.AttackDamageBonus, " Attack Damage"); AddStatText(item.SpellDamageBonus, " Spell Damage"); AddStatText(item.CritChanceBonus, "% Base Crit Chance"); AddStatText(item.CritDamageBonus, "% Base Crit Damage"); AddStatText(item.MaxHealthBonus, " Max Health"); + AddStatText(item.HealthRegenBonus, " Health Regen"); + AddStatText(item.MaxManaBonus, " Max Mana"); + AddStatText(item.ManaRegenBonus, " Mana Regen"); AddStatText(item.ArmorBonus, " Armor"); AddStatText(item.MagicResistanceBonus, " Magic Resistance"); @@ -162,11 +134,23 @@ namespace Kryz.CharacterStats.Examples AddStatText(item.AttackDamagePercentBonus * 100, " % Attack Damage"); AddStatText(item.SpellDamagePercentBonus * 100, " % Spell Damage"); + AddStatText(item.AttackSpeedPercentBonus * 100, " % Attack Speed"); AddStatText(item.CritChancePercentBonus * 100, "% Increased Crit Chance"); AddStatText(item.CritDamagePercentBonus * 100, "% Increased Crit Damage"); AddStatText(item.MaxHealthPercentBonus * 100, " % Max Health"); + AddStatText(item.HealthRegenPercentBonus * 100, " % Health Regen"); + AddStatText(item.MaxManaPercentBonus * 100, " % Max Mana"); + AddStatText(item.ManaRegenPercentBonus * 100, " % ManaRegen"); AddStatText(item.ArmorPercentBonus * 100, " % Armor"); AddStatText(item.MagicResistancePercentBonus * 100, " % Magic Resistance"); + AddStatText(item.DodgeChancePercentBonus * 100, " % Dodge Chance"); + AddStatText(item.BlockChancePercentBonus * 100, " % Block Chance"); + AddStatText(item.BlockEffectivenessPercentBonus * 100, " % Block Effectiveness"); + AddStatText(item.AreaEffectivenessPercentBonus * 100, " % Area Effectiveness"); + AddStatText(item.CooldownReductionPercentBonus * 100, " % Cooldown Reduction"); + AddStatText(item.MovementSpeedPercentBonus * 100, " % Movement Speed"); + AddStatText(item.ReputationGainIncreasePercentBonus * 100, " % Reputation Gain Increase"); + AddStatText(item.GoldCostReductionPercentBonus * 100, " % Gold Cost Reduction"); if (!string.IsNullOrEmpty(itemFromVendor.description)) { diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs index 10253a17..de516c2c 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs @@ -45,15 +45,7 @@ namespace Kryz.CharacterStats.Examples base.Awake(); - statsCollection.Add(Strength); - statsCollection.Add(Agility); - statsCollection.Add(Intelligence); - statsCollection.Add(Spirit); - statsCollection.Add(Vitality); - //Debug.Log("HEALTH GET BASE MAX VALUE: " + health.GetBaseMaxValue()); - MaxHealth.BaseValue = health.GetBaseMaxValue(); - //Debug.Log("MAX HEALTH GET BASE MAX VALUE: " + MaxHealth.BaseValue); accountData = PlayerDataHandler.Instance.LoadPlayerAccountData(PlayerDataHandler.Instance.currentPlayerName.Value); characterData = PlayerDataHandler.Instance.LoadCharacterData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value); @@ -115,8 +107,9 @@ namespace Kryz.CharacterStats.Examples statPanel = FindObjectOfType(); statPanel.SetPlayerStats(this); - statPanel.SetStats(Strength, Agility, Intelligence, Spirit, Vitality); - statPanel.SetSecondaryStats(AttackDamage, SpellDamage, CritChance, CritDamage, MaxHealth, Armor, MagicResistance); + statPanel.SetStats(Cunning, Flow, Presence); + statPanel.SetSecondaryStats(AttackDamage, SpellDamage, AttackSpeed, CritChance, CritDamage, AuraPower, MaxHealth, HealthRegen, MaxMana, ManaRegen, Armor, MagicResistance, DodgeChance, BlockChance, BlockEffectiveness, AreaEffectiveness, CooldownReduction, MovementSpeed, ReputationGainIncrease, GoldCostReduction); + //TODO: statPanel set misc stats (area, cdr, movespeed, rep, gold statPanel.UpdateStatValues(); statPanel.SetCharacterInfo(PlayerDataHandler.Instance.currentCharacterName.Value, level.currentLevel.ToString(), reputationLevel.currentLevel.ToString()); statPanel.ToggleAllocateButtonsInteractable(AvailablePointsToAllocate > 0); @@ -249,17 +242,13 @@ namespace Kryz.CharacterStats.Examples public void UpdateAllocatedStats() { - Strength.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); - Agility.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); - Intelligence.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); - Spirit.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); - Vitality.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); + Cunning.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); + Flow.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); + Presence.RemoveAllModifiersFromSource(GameConstants.ObjectSources.AllocatedSource); - Strength.AddModifier(new StatModifier(AllocatedStatPoints[0], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); - Agility.AddModifier(new StatModifier(AllocatedStatPoints[1], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); - Intelligence.AddModifier(new StatModifier(AllocatedStatPoints[2], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); - Spirit.AddModifier(new StatModifier(AllocatedStatPoints[3], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); - Vitality.AddModifier(new StatModifier(AllocatedStatPoints[4], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); + Cunning.AddModifier(new StatModifier(AllocatedStatPoints[0], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); + Flow.AddModifier(new StatModifier(AllocatedStatPoints[1], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); + Presence.AddModifier(new StatModifier(AllocatedStatPoints[2], StatModType.Flat, GameConstants.ObjectSources.AllocatedSource)); characterData.availablePointsToAllocate = AvailablePointsToAllocate; @@ -275,20 +264,9 @@ namespace Kryz.CharacterStats.Examples public void UpdateStatsBasedOnLevel() { - Strength.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); - Agility.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); - Intelligence.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); - Spirit.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); - Vitality.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); MaxHealth.RemoveAllModifiersFromSource(GameConstants.ObjectSources.LevelSource); - Strength.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource)); - Agility.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource)); - Intelligence.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource)); - Spirit.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource)); - Vitality.AddModifier(new StatModifier((level.currentLevel - 1), StatModType.Flat, GameConstants.ObjectSources.LevelSource)); - //Debug.Log("MAX HEALTH BASE VALUE: " + MaxHealth.BaseValue); MaxHealth.AddModifier(new StatModifier(MaxHealth.BaseValue * (level.currentLevel - 1) * GameConstants.CharacterStatsBalancing.BaseMaxHealthGrowthPerLevel, StatModType.Flat, GameConstants.ObjectSources.LevelSource)); diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/StatPanel.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/StatPanel.cs index bf57f0af..9e28897b 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/StatPanel.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/StatPanel.cs @@ -70,8 +70,6 @@ namespace Kryz.CharacterStats.Examples addStatButtons[0].onClick.AddListener(() => AllocateStat(0)); addStatButtons[1].onClick.AddListener(() => AllocateStat(1)); addStatButtons[2].onClick.AddListener(() => AllocateStat(2)); - addStatButtons[3].onClick.AddListener(() => AllocateStat(3)); - addStatButtons[4].onClick.AddListener(() => AllocateStat(4)); resetAllocated.onClick.AddListener(ResetAllocatedStats); } public void SetSecondaryStats(params CharacterStat[] secondaryStats) diff --git a/Assets/Developer/Prefabs/Persistent Objects.prefab b/Assets/Developer/Prefabs/Persistent Objects.prefab index d41cb551..b935438e 100644 --- a/Assets/Developer/Prefabs/Persistent Objects.prefab +++ b/Assets/Developer/Prefabs/Persistent Objects.prefab @@ -3217,7 +3217,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: -42.50049, y: 0} + m_AnchoredPosition: {x: -42.500732, y: 0} m_SizeDelta: {x: 42.5, y: 20} m_Pivot: {x: 0, y: 0} --- !u!222 &7075349826737639971 @@ -4103,7 +4103,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: 42.50049, y: 0} + m_AnchoredPosition: {x: 42.500732, y: 0} m_SizeDelta: {x: 42.5, y: 20} m_Pivot: {x: 1, y: 0} --- !u!222 &5265012986578975575 @@ -7970,30 +7970,35 @@ MonoBehaviour: sellPriceVendor: 0 description: templateIndex: 0 - StrengthBonus: 0 - AgilityBonus: 0 - IntelligenceBonus: 0 - SpiritBonus: 0 - VitalityBonus: 0 - StrengthPercentBonus: 0 - AgilityPercentBonus: 0 - IntelligencePercentBonus: 0 - SpiritPercentBonus: 0 - VitalityPercentBonus: 0 AttackDamageBonus: 0 SpellDamageBonus: 0 CritChanceBonus: 0 CritDamageBonus: 0 MaxHealthBonus: 0 + HealthRegenBonus: 0 + MaxManaBonus: 0 + ManaRegenBonus: 0 ArmorBonus: 0 MagicResistanceBonus: 0 AttackDamagePercentBonus: 0 SpellDamagePercentBonus: 0 + AttackSpeedPercentBonus: 0 CritChancePercentBonus: 0 CritDamagePercentBonus: 0 MaxHealthPercentBonus: 0 + HealthRegenPercentBonus: 0 + MaxManaPercentBonus: 0 + ManaRegenPercentBonus: 0 ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 + DodgeChancePercentBonus: 0 + BlockChancePercentBonus: 0 + BlockEffectivenessPercentBonus: 0 + AreaEffectivenessPercentBonus: 0 + CooldownReductionPercentBonus: 0 + MovementSpeedPercentBonus: 0 + ReputationGainIncreasePercentBonus: 0 + GoldCostReductionPercentBonus: 0 EquipmentType: 0 CraftableBase: 0 MaxTotalUniqueStatsIncreasedByStones: 0 @@ -14092,8 +14097,6 @@ MonoBehaviour: - {fileID: 7475116342277029545} - {fileID: 7383279236982269789} - {fileID: 7461064752200143561} - - {fileID: 4759723387819599452} - - {fileID: 7840512114563794883} - {fileID: 3698633681200490567} secondaryStatDisplays: - {fileID: 3362019307574079437} @@ -14103,26 +14106,48 @@ MonoBehaviour: - {fileID: 3495900885079073846} - {fileID: 578454789622889406} - {fileID: 4302328313335060030} + - {fileID: 7269109627457981830} + - {fileID: 7259158418784761931} + - {fileID: 3511333591241033847} + - {fileID: 8292332855592868562} + - {fileID: 1580301607642838749} + - {fileID: 8342149584994853614} + - {fileID: 7520173055616625363} + - {fileID: 8036075373488328738} + - {fileID: 8230845341534719947} + - {fileID: 3864633969443889951} + - {fileID: 8100137349526931782} + - {fileID: 2825999169382097392} + - {fileID: 8269423699587754170} statNames: - - strength - - agility - - intelligence - - spirit - - vitality + - cunning + - flow + - presence addStatButtons: - {fileID: 3920219973926111465} - {fileID: 4011920737382830365} - {fileID: 3913803044804994185} - - {fileID: 1429460544233492508} - - {fileID: 4401285417393631619} secondaryStatNames: - attack damage - spell damage + - attack speed - crit chance - crit damage + - aura power - max health + - health regen + - max mana + - mana regen - armor - magic resistance + - dodge chance + - block chance + - block effectiveness + - area effectiveness + - cooldown reduction + - movement speed + - reputation gain increase + - gold cost reduction characterName: {fileID: 9057549820633280847} characterLevel: {fileID: 8357715456735506733} characterRepLevel: {fileID: 6630746483793193111} @@ -30138,7 +30163,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 149712227232275997, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: max health + value: crit damage + objectReference: {fileID: 0} + - target: {fileID: 156164062273303132, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: mana regen objectReference: {fileID: 0} - target: {fileID: 174089516982246235, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_SizeDelta.x @@ -30150,11 +30179,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 314433908373489950, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: strength + value: cunning objectReference: {fileID: 0} - target: {fileID: 318316933457962366, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: intelligence + value: presence objectReference: {fileID: 0} - target: {fileID: 374719023422573764, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode @@ -30162,15 +30191,27 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 402869947174965482, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: agility + value: flow objectReference: {fileID: 0} - target: {fileID: 496667127377526965, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 504673626378893873, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: health regen + objectReference: {fileID: 0} + - target: {fileID: 518473821506148660, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: cooldown reduction + objectReference: {fileID: 0} + - target: {fileID: 530390472575717372, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: max mana + objectReference: {fileID: 0} - target: {fileID: 646180832047973150, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: crit chance + value: attack speed objectReference: {fileID: 0} - target: {fileID: 646436410361276731, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_SizeDelta.x @@ -30206,7 +30247,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 658930590004538389, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: magic resistance + value: max health objectReference: {fileID: 0} - target: {fileID: 749873634156882259, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_SizeDelta.x @@ -30240,6 +30281,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -599.5 objectReference: {fileID: 0} + - target: {fileID: 845797949382139236, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: block chance + objectReference: {fileID: 0} - target: {fileID: 857582091899322019, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Sprite value: @@ -30256,6 +30301,10 @@ PrefabInstance: propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 892903178156795797, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: block effectiveness + objectReference: {fileID: 0} - target: {fileID: 996310941008016061, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode value: 0 @@ -30264,10 +30313,30 @@ PrefabInstance: propertyPath: m_text value: vitality objectReference: {fileID: 0} + - target: {fileID: 1163232266384135513, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: dodge chance + objectReference: {fileID: 0} + - target: {fileID: 1222073639994322277, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: armor + objectReference: {fileID: 0} + - target: {fileID: 1234831025738931981, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: gold cost reduction + objectReference: {fileID: 0} + - target: {fileID: 1285834278575814780, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: area effectiveness + objectReference: {fileID: 0} - target: {fileID: 1340607262335980252, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 1407547837050158833, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: movement speed + objectReference: {fileID: 0} - target: {fileID: 1427365617869731951, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 1 @@ -30300,6 +30369,10 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 1560491131517230043, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: reputation gain increase + objectReference: {fileID: 0} - target: {fileID: 1616138430714842228, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text value: spell damage @@ -30452,9 +30525,13 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2845807532372217078, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: magic resistance + objectReference: {fileID: 0} - target: {fileID: 2967358665049345678, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: crit damage + value: crit chance objectReference: {fileID: 0} - target: {fileID: 3109988593671081437, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y @@ -30610,12 +30687,20 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4221870388557283733, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: armor + value: aura power objectReference: {fileID: 0} - target: {fileID: 4494731908084096829, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 4635022214758208145, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: gold cost reduction + objectReference: {fileID: 0} + - target: {fileID: 4659496175633823200, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: area effectiveness + objectReference: {fileID: 0} - target: {fileID: 4695528498147018353, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -30624,6 +30709,14 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 4707750307862452421, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: dodge chance + objectReference: {fileID: 0} + - target: {fileID: 4720975151376834809, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: armor + objectReference: {fileID: 0} - target: {fileID: 4820081752924518912, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 1 @@ -30648,6 +30741,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -243 objectReference: {fileID: 0} + - target: {fileID: 4826017323746308973, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: movement speed + objectReference: {fileID: 0} - target: {fileID: 4846245715795765224, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -30672,6 +30769,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 4960171871795582535, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: reputation gain increase + objectReference: {fileID: 0} - target: {fileID: 5124046566031901160, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text value: spell damage @@ -30788,9 +30889,13 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -243 objectReference: {fileID: 0} + - target: {fileID: 6006436310410248128, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: mana regen + objectReference: {fileID: 0} - target: {fileID: 6008375955906597761, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: max health + value: crit damage objectReference: {fileID: 0} - target: {fileID: 6026832820083204513, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_SizeDelta.x @@ -30802,7 +30907,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6117753572604157302, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: agility + value: flow objectReference: {fileID: 0} - target: {fileID: 6118383128788908528, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y @@ -30830,11 +30935,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6132508458495846626, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: intelligence + value: presence objectReference: {fileID: 0} - target: {fileID: 6137561430692021378, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: strength + value: cunning objectReference: {fileID: 0} - target: {fileID: 6189276437733570211, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_SizeDelta.x @@ -30844,6 +30949,18 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 26.28 objectReference: {fileID: 0} + - target: {fileID: 6209825276119564896, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: max mana + objectReference: {fileID: 0} + - target: {fileID: 6214990930090349736, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: cooldown reduction + objectReference: {fileID: 0} + - target: {fileID: 6228792325576570797, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: health regen + objectReference: {fileID: 0} - target: {fileID: 6286776454426932609, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -30870,16 +30987,20 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6365017298572550537, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: magic resistance + value: max health objectReference: {fileID: 0} - target: {fileID: 6450942919256510082, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: crit chance + value: attack speed objectReference: {fileID: 0} - target: {fileID: 6532598192936575808, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 6542895333818814712, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: block chance + objectReference: {fileID: 0} - target: {fileID: 6621198568315622621, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text value: 100 @@ -30908,6 +31029,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 6707499039465908745, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: block effectiveness + objectReference: {fileID: 0} - target: {fileID: 6763084552005789826, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -31082,7 +31207,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7775166638274071561, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: armor + value: aura power objectReference: {fileID: 0} - target: {fileID: 8051282907696523785, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y @@ -31124,9 +31249,13 @@ PrefabInstance: propertyPath: m_Navigation.m_Mode value: 0 objectReference: {fileID: 0} + - target: {fileID: 8507227937405436266, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + propertyPath: m_text + value: magic resistance + objectReference: {fileID: 0} - target: {fileID: 8673867568563897106, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_text - value: crit damage + value: crit chance objectReference: {fileID: 0} - target: {fileID: 8935937027202868498, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} propertyPath: m_AnchorMax.y @@ -31231,15 +31360,15 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4b39b0332b8f834799a2a0652fcb00b, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &1429460544233492508 stripped +--- !u!114 &1580301607642838749 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 8388662940348449503, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_CorrespondingSourceObject: {fileID: 8237832782853366814, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} m_PrefabInstance: {fileID: 7475116342283948739} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} m_Name: m_EditorClassIdentifier: --- !u!114 &1724355552491408487 stripped @@ -31319,6 +31448,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4b39b0332b8f834799a2a0652fcb00b, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &2825999169382097392 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4650817571998462771, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &3362019307574079437 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5266036217517473038, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31352,6 +31492,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &3511333591241033847 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 6270754478779849396, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &3615285077178322387 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6165674364595429136, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31374,6 +31525,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &3864633969443889951 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5916888422304264668, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &3913803044804994185 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 5903213708275676746, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31440,17 +31602,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &4401285417393631619 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 6532598192936575808, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} - m_PrefabInstance: {fileID: 7475116342283948739} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!114 &4482898907643477029 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 6452117280185528038, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31462,17 +31613,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4b39b0332b8f834799a2a0652fcb00b, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &4759723387819599452 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2715984491722470559, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} - m_PrefabInstance: {fileID: 7475116342283948739} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!114 &5358658183454902068 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 3305982479648462327, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31517,6 +31657,28 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &7259158418784761931 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 216529755560667784, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &7269109627457981830 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 242598461865467717, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &7383279236982269789 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 129021008049157534, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31663,9 +31825,9 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 22471986, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} m_PrefabInstance: {fileID: 7475116342283948739} m_PrefabAsset: {fileID: 0} ---- !u!114 &7840512114563794883 stripped +--- !u!114 &7520173055616625363 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 825261058405274880, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_CorrespondingSourceObject: {fileID: 1144467607499536400, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} m_PrefabInstance: {fileID: 7475116342283948739} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} @@ -31685,6 +31847,28 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4b39b0332b8f834799a2a0652fcb00b, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &8036075373488328738 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 592554634535764705, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8100137349526931782 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1717431345503804293, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &8177768118273254048 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1639792348634050659, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31696,6 +31880,39 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &8230845341534719947 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1550685847388839176, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8269423699587754170 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1548701434249394809, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &8292332855592868562 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1488644707652503569, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &8335945901794612497 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1446719896155719634, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} @@ -31707,6 +31924,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d4b39b0332b8f834799a2a0652fcb00b, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &8342149584994853614 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1475410928052154413, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} + m_PrefabInstance: {fileID: 7475116342283948739} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 206021363b8a537468307729d55001c4, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &8357715456735506733 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 1459275509279990766, guid: 369f87c2a2dd3b246b04552b05534a04, type: 3} diff --git a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat b/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat index 7b3173fe..c612729e 100644 --- a/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat +++ b/Assets/Fantasy Skybox FREE/Panoramics/FS002/FS002_Night.mat @@ -78,7 +78,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Rotation: 13.959704 + - _Rotation: 4.5767407 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 diff --git a/Assets/Resources/Abilities/BasicMinionPrefab.prefab b/Assets/Resources/Abilities/BasicMinionPrefab.prefab index a3713e90..9cbb324c 100644 --- a/Assets/Resources/Abilities/BasicMinionPrefab.prefab +++ b/Assets/Resources/Abilities/BasicMinionPrefab.prefab @@ -83,6 +83,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -104,6 +109,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4995,7 +5001,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &7707231656763327841 Animator: - serializedVersion: 5 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -5009,6 +5015,7 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -5049,6 +5056,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2667e3eec41ca41448ae144b3253f7db, type: 3} m_Name: m_EditorClassIdentifier: + onHurtAnimation: + m_PersistentCalls: + m_Calls: [] --- !u!1 &4296156910025484507 GameObject: m_ObjectHideFlags: 0 @@ -5120,6 +5130,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5cad496eaf57a284face418cef84eb20, type: 3} m_Name: m_EditorClassIdentifier: + maintainsDistance: 0 projectileRange: 5 meleeRange: 2.5 distanceToChangePatrolDestination: 0.9 @@ -5172,10 +5183,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4296156910025484507} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -5245,11 +5256,13 @@ MonoBehaviour: maxValue: 20 baseMaxValue: 20 flatRegen: 0 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 1 onResourceChanged: m_PersistentCalls: m_Calls: [] + scrollingTextPrefab: {fileID: 0} onMaxHealthChanged: m_PersistentCalls: m_Calls: [] @@ -5260,6 +5273,9 @@ MonoBehaviour: OnInvulnerabilityStateChanged: m_PersistentCalls: m_Calls: [] + OnDodgedSuccessfully: + m_PersistentCalls: + m_Calls: [] --- !u!114 &2475434436818348713 MonoBehaviour: m_ObjectHideFlags: 0 @@ -5276,6 +5292,7 @@ MonoBehaviour: maxValue: 50 baseMaxValue: 50 flatRegen: 0 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 1 onResourceChanged: @@ -5299,42 +5316,75 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7ca3982b2d6cbba488bda7bf46c32099, type: 3} m_Name: m_EditorClassIdentifier: - Strength: - statTag: {fileID: 11400000, guid: 8b74e81cfcd772243b988990f4a8a634, type: 2} - BaseValue: 1 - Agility: - statTag: {fileID: 11400000, guid: ff27e4f0bff17a145af826f8ade78c8a, type: 2} - BaseValue: 1 - Intelligence: - statTag: {fileID: 11400000, guid: 52f094018088de54ab9507695f2913b7, type: 2} - BaseValue: 1 - Spirit: - statTag: {fileID: 11400000, guid: d7a9b755d873bad4f9bbd0393bc36a42, type: 2} - BaseValue: 1 - Vitality: - statTag: {fileID: 11400000, guid: 9bbf01c0977dc98408db3efec6685c56, type: 2} - BaseValue: 1 + Cunning: + statTag: {fileID: 11400000, guid: 5e7fa12b38e5ba44cad020ebc8804748, type: 2} + BaseValue: 0 + Flow: + statTag: {fileID: 11400000, guid: 0a3089ca453f0a14696b531656ecad10, type: 2} + BaseValue: 0 + Presence: + statTag: {fileID: 11400000, guid: 5ba45103d2ec7e74c99b1e53a70810cd, type: 2} + BaseValue: 0 AttackDamage: statTag: {fileID: 11400000, guid: 09eb68d1a036a1643b74420197b999bd, type: 2} BaseValue: 1 SpellDamage: statTag: {fileID: 11400000, guid: 918ee6f8846e6a9449166ac16b6330ae, type: 2} BaseValue: 1 + AttackSpeed: + statTag: {fileID: 11400000, guid: 836e8572c96c9d64f9ad748d01500018, type: 2} + BaseValue: 0 CritChance: statTag: {fileID: 11400000, guid: 831eab0f4c8fb69459a620afd95f698f, type: 2} BaseValue: 3 CritDamage: statTag: {fileID: 11400000, guid: ad5c133149d9aa641be97f85e426a01f, type: 2} BaseValue: 50 + AuraPower: + statTag: {fileID: 11400000, guid: 44e4512b7be56204580faea713895b3a, type: 2} + BaseValue: 0 MaxHealth: statTag: {fileID: 11400000, guid: 4242916f0b1bf6e4e8a04bce7028b3f4, type: 2} + BaseValue: 20 + HealthRegen: + statTag: {fileID: 11400000, guid: a70c329febb9ee44dae1fefd0cf27f2f, type: 2} BaseValue: 0 + MaxMana: + statTag: {fileID: 11400000, guid: ddf35a6cffc8596479023996fb35f0ac, type: 2} + BaseValue: 20 + ManaRegen: + statTag: {fileID: 11400000, guid: 03ad6f3efa4fe124ebd0833927315467, type: 2} + BaseValue: 2 Armor: statTag: {fileID: 11400000, guid: 9ffd1c81aeea68b4eb6b0f054f0d989f, type: 2} BaseValue: 1 MagicResistance: statTag: {fileID: 11400000, guid: 5ff891a32306c504f8f6159f69a1866e, type: 2} BaseValue: 1 + DodgeChance: + statTag: {fileID: 11400000, guid: 625888cd3080b0f4e8660da3da8765a3, type: 2} + BaseValue: 0 + BlockChance: + statTag: {fileID: 11400000, guid: 575b03db75017764392e042ddb7a357b, type: 2} + BaseValue: 0 + BlockEffectiveness: + statTag: {fileID: 11400000, guid: 14c919138a352e64da794fb96cfadeec, type: 2} + BaseValue: 0 + AreaEffectiveness: + statTag: {fileID: 11400000, guid: 847692d8f2a672f49a8932fbf04f0aec, type: 2} + BaseValue: 0 + CooldownReduction: + statTag: {fileID: 11400000, guid: bfc7f6dd11d04364aa8560538f97058e, type: 2} + BaseValue: 0 + MovementSpeed: + statTag: {fileID: 11400000, guid: a6f35800a90acf64d915a9531d3798b0, type: 2} + BaseValue: 0 + ReputationGainIncrease: + statTag: {fileID: 11400000, guid: 94178b288ffb90e44a9c25066831f9b0, type: 2} + BaseValue: 0 + GoldCostReduction: + statTag: {fileID: 11400000, guid: 9baf13da92ad0b349ad82ffb56054b9e, type: 2} + BaseValue: 0 onUpdateStatValues: m_PersistentCalls: m_Calls: [] @@ -5959,6 +6009,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5980,6 +6035,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10807,6 +10863,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 4296156910025484506} m_Modifications: + - target: {fileID: 3051811434907707199, guid: 6e89db09b01654446a91c387a41df066, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 5272481288682873347, guid: 6e89db09b01654446a91c387a41df066, type: 3} propertyPath: m_Name value: MinionNameplate diff --git a/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab b/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab index 3e5b5f32..174f8b0b 100644 --- a/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab +++ b/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab @@ -37,7 +37,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &5690275390890447421 Animator: - serializedVersion: 5 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -51,6 +51,7 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -243,10 +244,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2278116590711127943} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -294,11 +295,13 @@ MonoBehaviour: maxValue: 250 baseMaxValue: 250 flatRegen: 0 + baseRegenValue: 0 percentRegen: 0 timeBetweenRegens: 10000 onResourceChanged: m_PersistentCalls: m_Calls: [] + scrollingTextPrefab: {fileID: 0} onMaxHealthChanged: m_PersistentCalls: m_Calls: [] @@ -309,6 +312,9 @@ MonoBehaviour: OnInvulnerabilityStateChanged: m_PersistentCalls: m_Calls: [] + OnDodgedSuccessfully: + m_PersistentCalls: + m_Calls: [] --- !u!114 &457396336866213365 MonoBehaviour: m_ObjectHideFlags: 0 @@ -325,6 +331,7 @@ MonoBehaviour: maxValue: 250 baseMaxValue: 250 flatRegen: 0 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 1 onResourceChanged: @@ -348,42 +355,75 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7ca3982b2d6cbba488bda7bf46c32099, type: 3} m_Name: m_EditorClassIdentifier: - Strength: - statTag: {fileID: 11400000, guid: 8b74e81cfcd772243b988990f4a8a634, type: 2} - BaseValue: 5 - Agility: - statTag: {fileID: 11400000, guid: ff27e4f0bff17a145af826f8ade78c8a, type: 2} - BaseValue: 5 - Intelligence: - statTag: {fileID: 11400000, guid: 52f094018088de54ab9507695f2913b7, type: 2} - BaseValue: 5 - Spirit: - statTag: {fileID: 11400000, guid: d7a9b755d873bad4f9bbd0393bc36a42, type: 2} - BaseValue: 5 - Vitality: - statTag: {fileID: 11400000, guid: 9bbf01c0977dc98408db3efec6685c56, type: 2} - BaseValue: 5 + Cunning: + statTag: {fileID: 11400000, guid: 5e7fa12b38e5ba44cad020ebc8804748, type: 2} + BaseValue: 0 + Flow: + statTag: {fileID: 11400000, guid: 0a3089ca453f0a14696b531656ecad10, type: 2} + BaseValue: 0 + Presence: + statTag: {fileID: 11400000, guid: 5ba45103d2ec7e74c99b1e53a70810cd, type: 2} + BaseValue: 0 AttackDamage: statTag: {fileID: 11400000, guid: 09eb68d1a036a1643b74420197b999bd, type: 2} BaseValue: 1 SpellDamage: statTag: {fileID: 11400000, guid: 918ee6f8846e6a9449166ac16b6330ae, type: 2} BaseValue: 1 + AttackSpeed: + statTag: {fileID: 11400000, guid: 836e8572c96c9d64f9ad748d01500018, type: 2} + BaseValue: 0 CritChance: statTag: {fileID: 11400000, guid: 831eab0f4c8fb69459a620afd95f698f, type: 2} - BaseValue: 5 + BaseValue: 3 CritDamage: statTag: {fileID: 11400000, guid: ad5c133149d9aa641be97f85e426a01f, type: 2} BaseValue: 50 + AuraPower: + statTag: {fileID: 11400000, guid: 44e4512b7be56204580faea713895b3a, type: 2} + BaseValue: 0 MaxHealth: statTag: {fileID: 11400000, guid: 4242916f0b1bf6e4e8a04bce7028b3f4, type: 2} BaseValue: 0 + HealthRegen: + statTag: {fileID: 11400000, guid: a70c329febb9ee44dae1fefd0cf27f2f, type: 2} + BaseValue: 0 + MaxMana: + statTag: {fileID: 11400000, guid: ddf35a6cffc8596479023996fb35f0ac, type: 2} + BaseValue: 0 + ManaRegen: + statTag: {fileID: 11400000, guid: 03ad6f3efa4fe124ebd0833927315467, type: 2} + BaseValue: 0 Armor: statTag: {fileID: 11400000, guid: 9ffd1c81aeea68b4eb6b0f054f0d989f, type: 2} BaseValue: 1 MagicResistance: statTag: {fileID: 11400000, guid: 5ff891a32306c504f8f6159f69a1866e, type: 2} BaseValue: 1 + DodgeChance: + statTag: {fileID: 11400000, guid: 625888cd3080b0f4e8660da3da8765a3, type: 2} + BaseValue: 0 + BlockChance: + statTag: {fileID: 11400000, guid: 575b03db75017764392e042ddb7a357b, type: 2} + BaseValue: 0 + BlockEffectiveness: + statTag: {fileID: 11400000, guid: 14c919138a352e64da794fb96cfadeec, type: 2} + BaseValue: 0 + AreaEffectiveness: + statTag: {fileID: 11400000, guid: 847692d8f2a672f49a8932fbf04f0aec, type: 2} + BaseValue: 0 + CooldownReduction: + statTag: {fileID: 11400000, guid: bfc7f6dd11d04364aa8560538f97058e, type: 2} + BaseValue: 0 + MovementSpeed: + statTag: {fileID: 11400000, guid: a6f35800a90acf64d915a9531d3798b0, type: 2} + BaseValue: 0 + ReputationGainIncrease: + statTag: {fileID: 11400000, guid: 94178b288ffb90e44a9c25066831f9b0, type: 2} + BaseValue: 0 + GoldCostReduction: + statTag: {fileID: 11400000, guid: 9baf13da92ad0b349ad82ffb56054b9e, type: 2} + BaseValue: 0 onUpdateStatValues: m_PersistentCalls: m_Calls: [] @@ -1264,31 +1304,31 @@ PrefabInstance: value: 6 objectReference: {fileID: 0} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[0] + propertyPath: 'extraDrops.Array.data[0]' value: objectReference: {fileID: 11400000, guid: e82328e1db44dea4cb8e8837f1207d16, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[1] + propertyPath: 'extraDrops.Array.data[1]' value: objectReference: {fileID: 11400000, guid: 64bd507d296b1164481e3e0a97dfac3b, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[2] + propertyPath: 'extraDrops.Array.data[2]' value: objectReference: {fileID: 11400000, guid: ac649ea66c95bf54f81200f922e312f0, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[3] + propertyPath: 'extraDrops.Array.data[3]' value: objectReference: {fileID: 11400000, guid: 1b6a731753bcb1b4582ba89c877206db, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[4] + propertyPath: 'extraDrops.Array.data[4]' value: objectReference: {fileID: 11400000, guid: 165bf77190fbec04080e8daab6f5d772, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[5] + propertyPath: 'extraDrops.Array.data[5]' value: objectReference: {fileID: 11400000, guid: 81495d1a50517f842b64eb2a1d22bc64, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: extraDrops.Array.data[6] + propertyPath: 'extraDrops.Array.data[6]' value: objectReference: {fileID: 11400000, guid: 81495d1a50517f842b64eb2a1d22bc64, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} @@ -1304,11 +1344,11 @@ PrefabInstance: value: 13 objectReference: {fileID: 0} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: nonEquippablesDrops.Array.data[0] + propertyPath: 'nonEquippablesDrops.Array.data[0]' value: objectReference: {fileID: 11400000, guid: 1f0db102aa4283049a5a884470b4957b, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} - propertyPath: nonEquippablesDrops.Array.data[1] + propertyPath: 'nonEquippablesDrops.Array.data[1]' value: objectReference: {fileID: 11400000, guid: a6c738232ec60474f8edc7718e576d07, type: 2} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} @@ -2612,6 +2652,10 @@ PrefabInstance: propertyPath: m_fontSize value: 200 objectReference: {fileID: 0} + - target: {fileID: 1063629724385205317, guid: 2e56f69e0872f744daa6c9080ecf3040, type: 3} + propertyPath: 'm_ActiveFontFeatures.Array.data[0]' + value: 1801810542 + objectReference: {fileID: 0} - target: {fileID: 4924407620164273521, guid: 2e56f69e0872f744daa6c9080ecf3040, type: 3} propertyPath: m_Pivot.x value: 0.5 diff --git a/Assets/Resources/Enemies/BasicEnemyPrefabTemplate.prefab b/Assets/Resources/Enemies/BasicEnemyPrefabTemplate.prefab index 33d2112f..00af8173 100644 --- a/Assets/Resources/Enemies/BasicEnemyPrefabTemplate.prefab +++ b/Assets/Resources/Enemies/BasicEnemyPrefabTemplate.prefab @@ -37,7 +37,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &6853293170635492090 Animator: - serializedVersion: 5 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -51,6 +51,7 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -321,10 +322,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1040714684719195968} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -394,11 +395,13 @@ MonoBehaviour: maxValue: 40 baseMaxValue: 40 flatRegen: 0 + baseRegenValue: 0 percentRegen: 0 timeBetweenRegens: 10000 onResourceChanged: m_PersistentCalls: m_Calls: [] + scrollingTextPrefab: {fileID: 0} onMaxHealthChanged: m_PersistentCalls: m_Calls: [] @@ -409,6 +412,9 @@ MonoBehaviour: OnInvulnerabilityStateChanged: m_PersistentCalls: m_Calls: [] + OnDodgedSuccessfully: + m_PersistentCalls: + m_Calls: [] --- !u!114 &1708233211970282802 MonoBehaviour: m_ObjectHideFlags: 0 @@ -425,6 +431,7 @@ MonoBehaviour: maxValue: 100 baseMaxValue: 100 flatRegen: 0 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 1 onResourceChanged: @@ -448,42 +455,75 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7ca3982b2d6cbba488bda7bf46c32099, type: 3} m_Name: m_EditorClassIdentifier: - Strength: - statTag: {fileID: 11400000, guid: 8b74e81cfcd772243b988990f4a8a634, type: 2} - BaseValue: 1 - Agility: - statTag: {fileID: 11400000, guid: ff27e4f0bff17a145af826f8ade78c8a, type: 2} - BaseValue: 1 - Intelligence: - statTag: {fileID: 11400000, guid: 52f094018088de54ab9507695f2913b7, type: 2} - BaseValue: 2 - Spirit: - statTag: {fileID: 11400000, guid: d7a9b755d873bad4f9bbd0393bc36a42, type: 2} - BaseValue: 5 - Vitality: - statTag: {fileID: 11400000, guid: 9bbf01c0977dc98408db3efec6685c56, type: 2} - BaseValue: 1 + Cunning: + statTag: {fileID: 11400000, guid: 5e7fa12b38e5ba44cad020ebc8804748, type: 2} + BaseValue: 0 + Flow: + statTag: {fileID: 11400000, guid: 0a3089ca453f0a14696b531656ecad10, type: 2} + BaseValue: 0 + Presence: + statTag: {fileID: 11400000, guid: 5ba45103d2ec7e74c99b1e53a70810cd, type: 2} + BaseValue: 0 AttackDamage: statTag: {fileID: 11400000, guid: 09eb68d1a036a1643b74420197b999bd, type: 2} BaseValue: 1 SpellDamage: statTag: {fileID: 11400000, guid: 918ee6f8846e6a9449166ac16b6330ae, type: 2} BaseValue: 1 + AttackSpeed: + statTag: {fileID: 11400000, guid: 836e8572c96c9d64f9ad748d01500018, type: 2} + BaseValue: 0 CritChance: statTag: {fileID: 11400000, guid: 831eab0f4c8fb69459a620afd95f698f, type: 2} BaseValue: 3 CritDamage: statTag: {fileID: 11400000, guid: ad5c133149d9aa641be97f85e426a01f, type: 2} BaseValue: 50 + AuraPower: + statTag: {fileID: 11400000, guid: 44e4512b7be56204580faea713895b3a, type: 2} + BaseValue: 0 MaxHealth: statTag: {fileID: 11400000, guid: 4242916f0b1bf6e4e8a04bce7028b3f4, type: 2} BaseValue: 0 + HealthRegen: + statTag: {fileID: 11400000, guid: a70c329febb9ee44dae1fefd0cf27f2f, type: 2} + BaseValue: 0 + MaxMana: + statTag: {fileID: 11400000, guid: ddf35a6cffc8596479023996fb35f0ac, type: 2} + BaseValue: 0 + ManaRegen: + statTag: {fileID: 11400000, guid: 03ad6f3efa4fe124ebd0833927315467, type: 2} + BaseValue: 0 Armor: statTag: {fileID: 11400000, guid: 9ffd1c81aeea68b4eb6b0f054f0d989f, type: 2} BaseValue: 1 MagicResistance: statTag: {fileID: 11400000, guid: 5ff891a32306c504f8f6159f69a1866e, type: 2} BaseValue: 1 + DodgeChance: + statTag: {fileID: 11400000, guid: 625888cd3080b0f4e8660da3da8765a3, type: 2} + BaseValue: 0 + BlockChance: + statTag: {fileID: 11400000, guid: 575b03db75017764392e042ddb7a357b, type: 2} + BaseValue: 0 + BlockEffectiveness: + statTag: {fileID: 11400000, guid: 14c919138a352e64da794fb96cfadeec, type: 2} + BaseValue: 0 + AreaEffectiveness: + statTag: {fileID: 11400000, guid: 847692d8f2a672f49a8932fbf04f0aec, type: 2} + BaseValue: 0 + CooldownReduction: + statTag: {fileID: 11400000, guid: bfc7f6dd11d04364aa8560538f97058e, type: 2} + BaseValue: 0 + MovementSpeed: + statTag: {fileID: 11400000, guid: a6f35800a90acf64d915a9531d3798b0, type: 2} + BaseValue: 0 + ReputationGainIncrease: + statTag: {fileID: 11400000, guid: 94178b288ffb90e44a9c25066831f9b0, type: 2} + BaseValue: 0 + GoldCostReduction: + statTag: {fileID: 11400000, guid: 9baf13da92ad0b349ad82ffb56054b9e, type: 2} + BaseValue: 0 onUpdateStatValues: m_PersistentCalls: m_Calls: [] @@ -1002,15 +1042,17 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 + m_TextWrappingMode: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 + m_ActiveFontFeatures: 6e72656b m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 + m_EmojiFallbackSupport: 1 m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 @@ -1079,6 +1121,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1100,6 +1147,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -6225,6 +6273,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6246,6 +6299,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -11521,15 +11575,17 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 + m_TextWrappingMode: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 + m_ActiveFontFeatures: 00000000 m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 + m_EmojiFallbackSupport: 1 m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 @@ -11876,15 +11932,17 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 1 + m_TextWrappingMode: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 + m_ActiveFontFeatures: 00000000 m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 + m_EmojiFallbackSupport: 1 m_parseCtrlCharacters: 1 m_isOrthographic: 1 m_isCullingEnabled: 0 diff --git a/Assets/Resources/FriendlyNPC/FriendlyNPCPrefab.prefab b/Assets/Resources/FriendlyNPC/FriendlyNPCPrefab.prefab index a952f125..818894b0 100644 --- a/Assets/Resources/FriendlyNPC/FriendlyNPCPrefab.prefab +++ b/Assets/Resources/FriendlyNPC/FriendlyNPCPrefab.prefab @@ -131,6 +131,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -152,6 +157,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -4998,6 +5004,11 @@ ParticleSystemRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -5019,6 +5030,7 @@ ParticleSystemRenderer: m_AutoUVMaxDistance: 0.5 m_AutoUVMaxAngle: 89 m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 @@ -10007,10 +10019,10 @@ Rigidbody: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3538551111449850966} - serializedVersion: 4 + serializedVersion: 5 m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 + m_LinearDamping: 0 + m_AngularDamping: 0.05 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -10080,11 +10092,13 @@ MonoBehaviour: maxValue: 500 baseMaxValue: 500 flatRegen: 0 + baseRegenValue: 0 percentRegen: 0 timeBetweenRegens: 9999 onResourceChanged: m_PersistentCalls: m_Calls: [] + scrollingTextPrefab: {fileID: 0} onMaxHealthChanged: m_PersistentCalls: m_Calls: [] @@ -10095,6 +10109,9 @@ MonoBehaviour: OnInvulnerabilityStateChanged: m_PersistentCalls: m_Calls: [] + OnDodgedSuccessfully: + m_PersistentCalls: + m_Calls: [] --- !u!114 &3872572517374119927 MonoBehaviour: m_ObjectHideFlags: 0 @@ -10111,6 +10128,7 @@ MonoBehaviour: maxValue: 9999 baseMaxValue: 9999 flatRegen: 2 + baseRegenValue: 0 percentRegen: 2 timeBetweenRegens: 1 onResourceChanged: @@ -10134,42 +10152,75 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 7ca3982b2d6cbba488bda7bf46c32099, type: 3} m_Name: m_EditorClassIdentifier: - Strength: - statTag: {fileID: 11400000, guid: 8b74e81cfcd772243b988990f4a8a634, type: 2} - BaseValue: 1 - Agility: - statTag: {fileID: 11400000, guid: ff27e4f0bff17a145af826f8ade78c8a, type: 2} - BaseValue: 1 - Intelligence: - statTag: {fileID: 11400000, guid: 52f094018088de54ab9507695f2913b7, type: 2} - BaseValue: 1 - Spirit: - statTag: {fileID: 11400000, guid: d7a9b755d873bad4f9bbd0393bc36a42, type: 2} - BaseValue: 1 - Vitality: - statTag: {fileID: 11400000, guid: 9bbf01c0977dc98408db3efec6685c56, type: 2} - BaseValue: 1 + Cunning: + statTag: {fileID: 11400000, guid: 5e7fa12b38e5ba44cad020ebc8804748, type: 2} + BaseValue: 0 + Flow: + statTag: {fileID: 11400000, guid: 0a3089ca453f0a14696b531656ecad10, type: 2} + BaseValue: 0 + Presence: + statTag: {fileID: 11400000, guid: 5ba45103d2ec7e74c99b1e53a70810cd, type: 2} + BaseValue: 0 AttackDamage: statTag: {fileID: 11400000, guid: 09eb68d1a036a1643b74420197b999bd, type: 2} BaseValue: 1 SpellDamage: statTag: {fileID: 11400000, guid: 918ee6f8846e6a9449166ac16b6330ae, type: 2} BaseValue: 1 + AttackSpeed: + statTag: {fileID: 11400000, guid: 836e8572c96c9d64f9ad748d01500018, type: 2} + BaseValue: 0 CritChance: statTag: {fileID: 11400000, guid: 831eab0f4c8fb69459a620afd95f698f, type: 2} BaseValue: 3 CritDamage: statTag: {fileID: 11400000, guid: ad5c133149d9aa641be97f85e426a01f, type: 2} BaseValue: 50 + AuraPower: + statTag: {fileID: 11400000, guid: 44e4512b7be56204580faea713895b3a, type: 2} + BaseValue: 0 MaxHealth: statTag: {fileID: 11400000, guid: 4242916f0b1bf6e4e8a04bce7028b3f4, type: 2} BaseValue: 0 + HealthRegen: + statTag: {fileID: 11400000, guid: a70c329febb9ee44dae1fefd0cf27f2f, type: 2} + BaseValue: 0 + MaxMana: + statTag: {fileID: 11400000, guid: ddf35a6cffc8596479023996fb35f0ac, type: 2} + BaseValue: 0 + ManaRegen: + statTag: {fileID: 11400000, guid: 03ad6f3efa4fe124ebd0833927315467, type: 2} + BaseValue: 0 Armor: statTag: {fileID: 11400000, guid: 9ffd1c81aeea68b4eb6b0f054f0d989f, type: 2} BaseValue: 1 MagicResistance: statTag: {fileID: 11400000, guid: 5ff891a32306c504f8f6159f69a1866e, type: 2} BaseValue: 1 + DodgeChance: + statTag: {fileID: 11400000, guid: 625888cd3080b0f4e8660da3da8765a3, type: 2} + BaseValue: 0 + BlockChance: + statTag: {fileID: 11400000, guid: 575b03db75017764392e042ddb7a357b, type: 2} + BaseValue: 0 + BlockEffectiveness: + statTag: {fileID: 11400000, guid: 14c919138a352e64da794fb96cfadeec, type: 2} + BaseValue: 0 + AreaEffectiveness: + statTag: {fileID: 11400000, guid: 847692d8f2a672f49a8932fbf04f0aec, type: 2} + BaseValue: 0 + CooldownReduction: + statTag: {fileID: 11400000, guid: bfc7f6dd11d04364aa8560538f97058e, type: 2} + BaseValue: 0 + MovementSpeed: + statTag: {fileID: 11400000, guid: a6f35800a90acf64d915a9531d3798b0, type: 2} + BaseValue: 0 + ReputationGainIncrease: + statTag: {fileID: 11400000, guid: 94178b288ffb90e44a9c25066831f9b0, type: 2} + BaseValue: 0 + GoldCostReduction: + statTag: {fileID: 11400000, guid: 9baf13da92ad0b349ad82ffb56054b9e, type: 2} + BaseValue: 0 onUpdateStatValues: m_PersistentCalls: m_Calls: [] @@ -10750,7 +10801,7 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!95 &7199937531471280163 Animator: - serializedVersion: 5 + serializedVersion: 7 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -10764,6 +10815,7 @@ Animator: m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 m_StabilizeFeet: 0 + m_AnimatePhysics: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 @@ -10804,6 +10856,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 2667e3eec41ca41448ae144b3253f7db, type: 3} m_Name: m_EditorClassIdentifier: + onHurtAnimation: + m_PersistentCalls: + m_Calls: [] --- !u!1 &8389218724262874325 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/PlayerPrefab.prefab b/Assets/Resources/PlayerPrefab.prefab index 3bbcf2ea..75dda58f 100644 --- a/Assets/Resources/PlayerPrefab.prefab +++ b/Assets/Resources/PlayerPrefab.prefab @@ -319,11 +319,11 @@ MonoBehaviour: onLocalPlayerFainted: {fileID: 4208248794315303369} onLocalPlayerPermaDeath: {fileID: 7710901043301821002} onLocalPlayerRevived: {fileID: 7711071309134240638} - ability: {fileID: 11400000, guid: 3b11712f0ae0c3248b755e23ce4a3dd3, type: 2} key: {fileID: 11400000, guid: 092fa402deb2cef49ad39df894f4525b, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} gamepadBinding: {fileID: 11400000, guid: 2742d06c180116b4081691c7978914e9, type: 2} + ability: {fileID: 11400000, guid: 3b11712f0ae0c3248b755e23ce4a3dd3, type: 2} --- !u!1 &480331571121010796 GameObject: m_ObjectHideFlags: 0 @@ -344,7 +344,6 @@ GameObject: - component: {fileID: 8273564744905798527} - component: {fileID: 9176951908243474339} - component: {fileID: 9115515025738910048} - - component: {fileID: 3393006372492297274} - component: {fileID: 1869432520870514277} - component: {fileID: 4217372937522934288} - component: {fileID: 3247240039285484624} @@ -595,42 +594,75 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f0cf0a29fc9ddc14188ad334b0eef3f9, type: 3} m_Name: m_EditorClassIdentifier: - Strength: - statTag: {fileID: 11400000, guid: 8b74e81cfcd772243b988990f4a8a634, type: 2} - BaseValue: 1 - Agility: - statTag: {fileID: 11400000, guid: ff27e4f0bff17a145af826f8ade78c8a, type: 2} - BaseValue: 1 - Intelligence: - statTag: {fileID: 11400000, guid: 52f094018088de54ab9507695f2913b7, type: 2} - BaseValue: 1 - Spirit: - statTag: {fileID: 11400000, guid: d7a9b755d873bad4f9bbd0393bc36a42, type: 2} - BaseValue: 1 - Vitality: - statTag: {fileID: 11400000, guid: 9bbf01c0977dc98408db3efec6685c56, type: 2} - BaseValue: 1 + Cunning: + statTag: {fileID: 11400000, guid: 5e7fa12b38e5ba44cad020ebc8804748, type: 2} + BaseValue: 0 + Flow: + statTag: {fileID: 11400000, guid: 0a3089ca453f0a14696b531656ecad10, type: 2} + BaseValue: 0 + Presence: + statTag: {fileID: 11400000, guid: 5ba45103d2ec7e74c99b1e53a70810cd, type: 2} + BaseValue: 0 AttackDamage: statTag: {fileID: 11400000, guid: 09eb68d1a036a1643b74420197b999bd, type: 2} BaseValue: 1 SpellDamage: statTag: {fileID: 11400000, guid: 918ee6f8846e6a9449166ac16b6330ae, type: 2} BaseValue: 1 + AttackSpeed: + statTag: {fileID: 11400000, guid: 836e8572c96c9d64f9ad748d01500018, type: 2} + BaseValue: 0 CritChance: statTag: {fileID: 11400000, guid: 831eab0f4c8fb69459a620afd95f698f, type: 2} BaseValue: 5 CritDamage: statTag: {fileID: 11400000, guid: ad5c133149d9aa641be97f85e426a01f, type: 2} BaseValue: 50 + AuraPower: + statTag: {fileID: 11400000, guid: 44e4512b7be56204580faea713895b3a, type: 2} + BaseValue: 0 MaxHealth: statTag: {fileID: 11400000, guid: 4242916f0b1bf6e4e8a04bce7028b3f4, type: 2} + BaseValue: 100 + HealthRegen: + statTag: {fileID: 11400000, guid: a70c329febb9ee44dae1fefd0cf27f2f, type: 2} BaseValue: 0 + MaxMana: + statTag: {fileID: 11400000, guid: ddf35a6cffc8596479023996fb35f0ac, type: 2} + BaseValue: 100 + ManaRegen: + statTag: {fileID: 11400000, guid: 03ad6f3efa4fe124ebd0833927315467, type: 2} + BaseValue: 3 Armor: statTag: {fileID: 11400000, guid: 9ffd1c81aeea68b4eb6b0f054f0d989f, type: 2} BaseValue: 1 MagicResistance: statTag: {fileID: 11400000, guid: 5ff891a32306c504f8f6159f69a1866e, type: 2} BaseValue: 1 + DodgeChance: + statTag: {fileID: 11400000, guid: 625888cd3080b0f4e8660da3da8765a3, type: 2} + BaseValue: 0.02 + BlockChance: + statTag: {fileID: 11400000, guid: 575b03db75017764392e042ddb7a357b, type: 2} + BaseValue: 0 + BlockEffectiveness: + statTag: {fileID: 11400000, guid: 14c919138a352e64da794fb96cfadeec, type: 2} + BaseValue: 0 + AreaEffectiveness: + statTag: {fileID: 11400000, guid: 847692d8f2a672f49a8932fbf04f0aec, type: 2} + BaseValue: 0 + CooldownReduction: + statTag: {fileID: 11400000, guid: bfc7f6dd11d04364aa8560538f97058e, type: 2} + BaseValue: 0 + MovementSpeed: + statTag: {fileID: 11400000, guid: a6f35800a90acf64d915a9531d3798b0, type: 2} + BaseValue: 0 + ReputationGainIncrease: + statTag: {fileID: 11400000, guid: 94178b288ffb90e44a9c25066831f9b0, type: 2} + BaseValue: 0 + GoldCostReduction: + statTag: {fileID: 11400000, guid: 9baf13da92ad0b349ad82ffb56054b9e, type: 2} + BaseValue: 0 onUpdateStatValues: m_PersistentCalls: m_Calls: [] @@ -676,11 +708,13 @@ MonoBehaviour: maxValue: 100 baseMaxValue: 100 flatRegen: 1 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 3 onResourceChanged: m_PersistentCalls: m_Calls: [] + scrollingTextPrefab: {fileID: 0} onMaxHealthChanged: m_PersistentCalls: m_Calls: [] @@ -691,6 +725,9 @@ MonoBehaviour: OnInvulnerabilityStateChanged: m_PersistentCalls: m_Calls: [] + OnDodgedSuccessfully: + m_PersistentCalls: + m_Calls: [] --- !u!114 &9115515025738910048 MonoBehaviour: m_ObjectHideFlags: 0 @@ -707,6 +744,7 @@ MonoBehaviour: maxValue: 100 baseMaxValue: 100 flatRegen: 1 + baseRegenValue: 0 percentRegen: 1 timeBetweenRegens: 1 onResourceChanged: @@ -718,33 +756,6 @@ MonoBehaviour: OnNoManaCostStateChanged: m_PersistentCalls: m_Calls: [] ---- !u!114 &3393006372492297274 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 480331571121010796} - m_Enabled: 0 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 96b7af24550accb4595e004a4977e512, type: 3} - m_Name: - m_EditorClassIdentifier: - currentValue: 0 - maxValue: 10 - baseMaxValue: 10 - flatRegen: 0 - percentRegen: 0 - timeBetweenRegens: 1 - onResourceChanged: - m_PersistentCalls: - m_Calls: [] - onMaxSpiritPowerChanged: - m_PersistentCalls: - m_Calls: [] - OnNoSpiritPowerCostStateChanged: - m_PersistentCalls: - m_Calls: [] --- !u!114 &1869432520870514277 MonoBehaviour: m_ObjectHideFlags: 0 @@ -761,6 +772,7 @@ MonoBehaviour: maxValue: 40 baseMaxValue: 0 flatRegen: 0 + baseRegenValue: 0 percentRegen: 0 timeBetweenRegens: 40 onResourceChanged: @@ -1833,11 +1845,11 @@ MonoBehaviour: onLocalPlayerFainted: {fileID: 4208248794315303369} onLocalPlayerPermaDeath: {fileID: 7710901043301821002} onLocalPlayerRevived: {fileID: 7711071309134240638} - ability: {fileID: 11400000, guid: 4fceae8a71096354698248481a42b897, type: 2} key: {fileID: 11400000, guid: 8c87c2ccccdd90548bc46b87e6616d7d, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} gamepadBinding: {fileID: 11400000, guid: 1f4224a53abaaeb488c0fa8c746f0653, type: 2} + ability: {fileID: 11400000, guid: 4fceae8a71096354698248481a42b897, type: 2} --- !u!1 &3418457882641902796 GameObject: m_ObjectHideFlags: 0 @@ -2684,11 +2696,11 @@ MonoBehaviour: onLocalPlayerFainted: {fileID: 4208248794315303369} onLocalPlayerPermaDeath: {fileID: 7710901043301821002} onLocalPlayerRevived: {fileID: 7711071309134240638} - ability: {fileID: 11400000, guid: e75c893bb94c00f41b9bc6bbea9872d4, type: 2} key: {fileID: 11400000, guid: 448485539eeac0146bdea3687c26059d, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} gamepadBinding: {fileID: 11400000, guid: 35844ec4f29bfd643866a2dc26c4031c, type: 2} + ability: {fileID: 11400000, guid: e75c893bb94c00f41b9bc6bbea9872d4, type: 2} --- !u!1 &6115512224134637529 GameObject: m_ObjectHideFlags: 0 @@ -2859,11 +2871,11 @@ MonoBehaviour: onLocalPlayerFainted: {fileID: 4208248794315303369} onLocalPlayerPermaDeath: {fileID: 7710901043301821002} onLocalPlayerRevived: {fileID: 7711071309134240638} - ability: {fileID: 11400000, guid: 24ff8efa4b2e859479400e18c23a098b, type: 2} key: {fileID: 11400000, guid: 8fa70b4cecf91e64bb8b56f58df9a018, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} gamepadBinding: {fileID: 11400000, guid: 1b1841e76dc92c54497a6b0cc65a3b4c, type: 2} + ability: {fileID: 11400000, guid: 24ff8efa4b2e859479400e18c23a098b, type: 2} --- !u!1 &6824843847020615225 GameObject: m_ObjectHideFlags: 0 @@ -3436,11 +3448,11 @@ MonoBehaviour: onLocalPlayerFainted: {fileID: 4208248794315303369} onLocalPlayerPermaDeath: {fileID: 7710901043301821002} onLocalPlayerRevived: {fileID: 7711071309134240638} - ability: {fileID: 11400000, guid: e75c893bb94c00f41b9bc6bbea9872d4, type: 2} key: {fileID: 11400000, guid: 89726de95474445429e07386fe137ed0, type: 2} castingStateController: {fileID: 7040887640505163424} onAbilityKeyBinderSpawned: {fileID: 11400000, guid: 9bfd488187aea4848a890711a2d587c8, type: 2} gamepadBinding: {fileID: 11400000, guid: cb70b7a88547bc045abb0f2ed54807d1, type: 2} + ability: {fileID: 11400000, guid: e75c893bb94c00f41b9bc6bbea9872d4, type: 2} --- !u!1 &7350507655590327706 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/0-Splash.unity b/Assets/Scenes/0-Splash.unity index ba70d4bc..1cef623f 100644 --- a/Assets/Scenes/0-Splash.unity +++ b/Assets/Scenes/0-Splash.unity @@ -2427,14 +2427,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1718599065330219490, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_SizeDelta.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1718599065330219490, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_SizeDelta.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2459,22 +2451,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1937322274624059534, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1937322274624059534, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1937322274624059534, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1937322274624059534, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2623,10 +2599,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3520239619285888459, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.x - value: -42.50067 - objectReference: {fileID: 0} - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2647,22 +2619,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 3818900776374735421, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3818900776374735421, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3818900776374735421, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3818900776374735421, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2723,22 +2679,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6486262286580599512, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMax.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6486262286580599512, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchorMin.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6486262286580599512, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6486262286580599512, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.y - value: 0 - objectReference: {fileID: 0} - target: {fileID: 7475116340865457954, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2923,10 +2863,6 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -600 objectReference: {fileID: 0} - - target: {fileID: 7560246081832902789, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} - propertyPath: m_AnchoredPosition.x - value: 42.50067 - objectReference: {fileID: 0} - target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 diff --git a/Assets/Scriptables/Data/Tags/StatTags/Deprecated.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated.meta new file mode 100644 index 00000000..0b513292 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Deprecated.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d27db948597cd184e88e6faba1a378bf +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Agility.asset b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Agility.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Agility.asset rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Agility.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Agility.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Agility.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Agility.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Agility.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Intelligence.asset b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Intelligence.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Intelligence.asset rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Intelligence.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Intelligence.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Intelligence.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Intelligence.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Intelligence.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Spirit.asset b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Spirit.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Spirit.asset rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Spirit.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Spirit.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Spirit.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Spirit.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Spirit.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Strength.asset b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Strength.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Strength.asset rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Strength.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Strength.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Strength.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Strength.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Strength.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Vitality.asset b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Vitality.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Vitality.asset rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Vitality.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Vitality.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Deprecated/Vitality.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Vitality.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Deprecated/Vitality.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary.meta b/Assets/Scriptables/Data/Tags/StatTags/Primary.meta new file mode 100644 index 00000000..10045089 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6e6503f0f143d84f8e8cc90f073eb1a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset b/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset new file mode 100644 index 00000000..73a4f76f --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: Cunning + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset.meta new file mode 100644 index 00000000..830308de --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Cunning.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e7fa12b38e5ba44cad020ebc8804748 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset b/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset new file mode 100644 index 00000000..bef334ca --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: Flow + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset.meta new file mode 100644 index 00000000..7dfeb9d3 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Flow.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0a3089ca453f0a14696b531656ecad10 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset b/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset new file mode 100644 index 00000000..46064e23 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: Presence + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset.meta new file mode 100644 index 00000000..20734528 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Primary/Presence.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ba45103d2ec7e74c99b1e53a70810cd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive.meta new file mode 100644 index 00000000..e69783d5 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c6b6de1b05a5f246863ece4ef620815 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/Armor.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/Armor.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/Armor.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/Armor.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/Armor.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset new file mode 100644 index 00000000..5cc9108e --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: BlockChance + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset.meta new file mode 100644 index 00000000..c135042d --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockChance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 575b03db75017764392e042ddb7a357b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset new file mode 100644 index 00000000..6c6d5111 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: BlockEffectiveness + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset.meta new file mode 100644 index 00000000..c043bb45 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/BlockEffectiveness.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 14c919138a352e64da794fb96cfadeec +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset new file mode 100644 index 00000000..d704dc3c --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: DodgeChance + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset.meta new file mode 100644 index 00000000..2079cce4 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/DodgeChance.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 625888cd3080b0f4e8660da3da8765a3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/MagicResistance.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/MagicResistance.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/MagicResistance.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/MagicResistance.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/MagicResistance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/MagicResistance.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/MagicResistance.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Defensive/MagicResistance.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc.meta new file mode 100644 index 00000000..5d54cbf9 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8557cc61edccac54eab91d27b8b29f0b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset new file mode 100644 index 00000000..4ce08d2d --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: AreaEffectiveness + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset.meta new file mode 100644 index 00000000..d2ee836f --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/AreaEffectiveness.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 847692d8f2a672f49a8932fbf04f0aec +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset new file mode 100644 index 00000000..7bbee943 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: CooldownReduction + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset.meta new file mode 100644 index 00000000..fc0c8ee2 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/CooldownReduction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bfc7f6dd11d04364aa8560538f97058e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset new file mode 100644 index 00000000..bb0ef957 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: GoldCostReduction + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset.meta new file mode 100644 index 00000000..a6f61022 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/GoldCostReduction.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9baf13da92ad0b349ad82ffb56054b9e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset new file mode 100644 index 00000000..97f7bb0c --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: MovementSpeed + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset.meta new file mode 100644 index 00000000..533997ef --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/MovementSpeed.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6f35800a90acf64d915a9531d3798b0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset new file mode 100644 index 00000000..3b5e2877 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: ReputationGainIncrease + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset.meta new file mode 100644 index 00000000..cd30cf76 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Misc/ReputationGainIncrease.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94178b288ffb90e44a9c25066831f9b0 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive.meta new file mode 100644 index 00000000..8f7b1786 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b09db5bf7aa3c6d42b396347a70a06be +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/AttackDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackDamage.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/AttackDamage.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackDamage.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/AttackDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackDamage.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/AttackDamage.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackDamage.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset new file mode 100644 index 00000000..273f88e3 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: AttackSpeed + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset.meta new file mode 100644 index 00000000..7598bd40 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AttackSpeed.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 836e8572c96c9d64f9ad748d01500018 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset new file mode 100644 index 00000000..4cfaad2b --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: AuraPower + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset.meta new file mode 100644 index 00000000..e52de329 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/AuraPower.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44e4512b7be56204580faea713895b3a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/CritChance.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritChance.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/CritChance.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritChance.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/CritChance.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritChance.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/CritChance.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritChance.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/CritDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritDamage.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/CritDamage.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritDamage.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/CritDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritDamage.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/CritDamage.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/CritDamage.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/SpellDamage.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/SpellDamage.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/SpellDamage.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/SpellDamage.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/SpellDamage.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/SpellDamage.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/SpellDamage.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Offensive/SpellDamage.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources.meta new file mode 100644 index 00000000..bcfe4b44 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 782d49ca8d80b084291b5d682039e763 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset new file mode 100644 index 00000000..28491961 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: HealthRegen + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset.meta new file mode 100644 index 00000000..bb396508 --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/HealthRegen.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a70c329febb9ee44dae1fefd0cf27f2f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset new file mode 100644 index 00000000..0e2e470a --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: ManaRegen + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset.meta new file mode 100644 index 00000000..bb65c40e --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/ManaRegen.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 03ad6f3efa4fe124ebd0833927315467 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/MaxHealth.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxHealth.asset similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/MaxHealth.asset rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxHealth.asset diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/MaxHealth.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxHealth.asset.meta similarity index 100% rename from Assets/Scriptables/Data/Tags/StatTags/Secondary/MaxHealth.asset.meta rename to Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxHealth.asset.meta diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset new file mode 100644 index 00000000..7675796c --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset @@ -0,0 +1,14 @@ +%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: 4cc5b60241d710942888d37734f848d6, type: 3} + m_Name: MaxMana + m_EditorClassIdentifier: diff --git a/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset.meta b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset.meta new file mode 100644 index 00000000..79a41e9a --- /dev/null +++ b/Assets/Scriptables/Data/Tags/StatTags/Secondary/Resources/MaxMana.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ddf35a6cffc8596479023996fb35f0ac +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AbilitySystem/Effects/BaseDamageOverTimeEffectInstance.cs b/Assets/Scripts/AbilitySystem/Effects/BaseDamageOverTimeEffectInstance.cs index 6f0398e8..e7a8f5cb 100644 --- a/Assets/Scripts/AbilitySystem/Effects/BaseDamageOverTimeEffectInstance.cs +++ b/Assets/Scripts/AbilitySystem/Effects/BaseDamageOverTimeEffectInstance.cs @@ -56,7 +56,7 @@ public abstract class BaseDamageOverTimeEffectInstance : StatusEffectInstance Health targetHealth = GetComponent(); if (targetHealth != null) { - targetHealth.ChangeValue(-currentDamagePerTick, (int)mitigationType); + targetHealth.ChangeValue(-currentDamagePerTick, (int)mitigationType, false); } OnEffectTick.Invoke(); } diff --git a/Assets/Scripts/AbilitySystem/Effects/InstantValueEffect.cs b/Assets/Scripts/AbilitySystem/Effects/InstantValueEffect.cs index b5dee2fd..a6335ecc 100644 --- a/Assets/Scripts/AbilitySystem/Effects/InstantValueEffect.cs +++ b/Assets/Scripts/AbilitySystem/Effects/InstantValueEffect.cs @@ -24,7 +24,7 @@ public class InstantValueEffect : BaseEffect private float finalValue; private CharacterStats stats; private DamageOutputModifierEffectInstance damageOutputModifier; - + private bool isCrit; public override void ApplyEffect(Taggable user, List targets) { if (user == null) return; @@ -56,7 +56,7 @@ public class InstantValueEffect : BaseEffect { targetHealth = target.GetComponent(); if (targetHealth != null) - targetHealth.ChangeValue(GetCorrectValueSign(user, target), (int)damageType); + targetHealth.ChangeValue(GetCorrectValueSign(user, target), (int)damageType, isCrit); //targetHealth.ChangeValue(target.targetTag == TargettingTag.Enemy ? -value : value); } } @@ -125,6 +125,7 @@ public class InstantValueEffect : BaseEffect if (IsCrit(stats) && !applyToClassResourceInstead) { finalValue *= (1 + stats.CritDamage.Value / 100f); + isCrit = true; //Debug.Log("FinalValue IsCrit = " + finalValue + " dmgType = " + damageType); } diff --git a/Assets/Scripts/AbilitySystem/SummonAbility.cs b/Assets/Scripts/AbilitySystem/SummonAbility.cs index d35b3b4c..69bbb549 100644 --- a/Assets/Scripts/AbilitySystem/SummonAbility.cs +++ b/Assets/Scripts/AbilitySystem/SummonAbility.cs @@ -14,21 +14,25 @@ public class SummonAbility : BaseAbility public bool isImage = false; [Space] - public float StrengthPercentFromMaster; - public float AgilityPercentFromMaster; - public float IntelligencePercentFromMaster; - public float SpiritPercentFromMaster; - public float VitalityPercentFromMaster; [Space] public float AttackDamagePercentFromMaster; public float SpellDamagePercentFromMaster; + public float AttackSpeedPercentFromMaster; public float CritChancePercentFromMaster; public float CritDamagePercentFromMaster; + public float MaxHealthPercentFromMaster; + public float HealthRegenPercentFromMaster; + public float MaxManaPercentFromMaster; + public float ManaRegenPercentFromMaster; + public float ArmorPercentFromMaster; public float MagicResistancePercentFromMaster; + public float AreaEffectivenessFromMaster; + public float AuraPowerFromMaster; + private GameObject instantiatedMinion; @@ -98,22 +102,26 @@ public class SummonAbility : BaseAbility ownerStats = user.GetComponent(); minionStats = instantiatedMinion.GetComponent(); - minionStats.Strength.AddModifier(new StatModifier(ownerStats.Strength.Value * StrengthPercentFromMaster, StatModType.Flat, ownerStats)); - minionStats.Agility.AddModifier(new StatModifier(ownerStats.Agility.Value * AgilityPercentFromMaster, StatModType.Flat, ownerStats)); - minionStats.Intelligence.AddModifier(new StatModifier(ownerStats.Intelligence.Value * IntelligencePercentFromMaster, StatModType.Flat, ownerStats)); - minionStats.Spirit.AddModifier(new StatModifier(ownerStats.Spirit.Value * SpiritPercentFromMaster, StatModType.Flat, ownerStats)); - minionStats.Vitality.AddModifier(new StatModifier(ownerStats.Vitality.Value * VitalityPercentFromMaster, StatModType.Flat, ownerStats)); - minionStats.AttackDamage.AddModifier(new StatModifier(ownerStats.AttackDamage.Value * AttackDamagePercentFromMaster, StatModType.Flat, ownerStats)); minionStats.SpellDamage.AddModifier(new StatModifier(ownerStats.SpellDamage.Value * SpellDamagePercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.AttackSpeed.AddModifier(new StatModifier(ownerStats.AttackSpeed.Value * AttackSpeedPercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.CritChance.AddModifier(new StatModifier(ownerStats.CritChance.Value * CritChancePercentFromMaster, StatModType.Flat, ownerStats)); minionStats.CritDamage.AddModifier(new StatModifier(ownerStats.CritDamage.Value * CritDamagePercentFromMaster, StatModType.Flat, ownerStats)); minionStats.MaxHealth.AddModifier(new StatModifier(ownerStats.MaxHealth.Value * MaxHealthPercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.HealthRegen.AddModifier(new StatModifier(ownerStats.HealthRegen.Value * HealthRegenPercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.MaxMana.AddModifier(new StatModifier(ownerStats.MaxMana.Value * MaxManaPercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.ManaRegen.AddModifier(new StatModifier(ownerStats.ManaRegen.Value * ManaRegenPercentFromMaster, StatModType.Flat, ownerStats)); + + minionStats.Armor.AddModifier(new StatModifier(ownerStats.Armor.Value * ArmorPercentFromMaster, StatModType.Flat, ownerStats)); minionStats.MagicResistance.AddModifier(new StatModifier(ownerStats.MagicResistance.Value * MagicResistancePercentFromMaster, StatModType.Flat, ownerStats)); + minionStats.AreaEffectiveness.AddModifier(new StatModifier(ownerStats.AreaEffectiveness.Value * AreaEffectivenessFromMaster, StatModType.Flat, ownerStats)); + minionStats.AuraPower.AddModifier(new StatModifier(ownerStats.AuraPower.Value * AuraPowerFromMaster, StatModType.Flat, ownerStats)); + minionStats.onUpdateStatValues.Invoke(); instantiatedMinion.GetComponent().owner = user; diff --git a/Assets/Scripts/Game/GameConstants.cs b/Assets/Scripts/Game/GameConstants.cs index 81dac888..8e71b736 100644 --- a/Assets/Scripts/Game/GameConstants.cs +++ b/Assets/Scripts/Game/GameConstants.cs @@ -115,6 +115,27 @@ public static class GameConstants public static class CharacterStatsBalancing { + #region Cunning Influence + public static float CritChanceIncreasePerCunning = 0.0033f; + public static float CritDamageIncreasePerCunning = 0.008f; + public static float MovementSpeedIncreasePerCunning = 0.0033f; + #endregion + + #region Flow Influence + public const float MaxManaIncreasePerFlow = 8f; + public const float ManaRegenIncreasePerFlow = 3f; + public const float CooldownReductionIncreasePerFlow = 0.003f; + public const float AttackSpeedIncreasePerFlow = 0.01f; + #endregion + + #region Presence Influence + public static float AreaEffectivenessIncreasePerPresence = 0.0033f; + + public static float ReputationGainIncreasePerPresence = 0.01f; + public static float GoldCostReductionPerPresence = 0.005f; + public static float AuraPowerPerPresence = 0.0033f; + #endregion + public const float AttackDamageIncreaseFromStrength = 0.35f; // 35% str => AttkDmg public const float AttackDamageIncreaseFromAgility = 0.25f; // 25% agi => AttkDmg @@ -144,6 +165,8 @@ public static class GameConstants public const float MaximumPercentDamageReductionFromArmor = 0.75f; public const float MaximumPercentDamageReductionFromMagicResistance = 0.75f; + public const float MaximumPercentCooldownReduction = 0.9f; + public const float MaximumPercentDamageReductionFromBlock = 0.75f; public const float BaseMaxHealthGrowthPerLevel = 0.2f; @@ -336,6 +359,10 @@ public static class GameConstants public static object SpiritSource = "Spirit"; public static object VitalitySource = "Vitality"; + public static object CunningSource = "Cunning"; + public static object FlowSource = "Flow"; + public static object PresenceSource = "Presence"; + #endregion } diff --git a/Assets/Scripts/Health.cs b/Assets/Scripts/Health.cs index 78881c90..00bfbe8a 100644 --- a/Assets/Scripts/Health.cs +++ b/Assets/Scripts/Health.cs @@ -8,12 +8,17 @@ public class Health : Resource { protected CharacterStats character; + public ScrollingText scrollingTextPrefab; + protected ScrollingText scrollingText; + protected AbsorbEffectInstance absorbEffectInstance; protected DamageIncomeModifierEffectInstance damageIncomeModifierEffectInstance; public UnityEvent onMaxHealthChanged = new UnityEvent(); public UnityEvent onDeath = new UnityEvent(); + private bool noCost = false; + public bool NoCost => noCost; public bool invulnerable = false; public bool Invulnerable => invulnerable; @@ -25,6 +30,7 @@ public class Health : Resource private bool isDead; public UnityEvent OnInvulnerabilityStateChanged = new UnityEvent(); + public UnityEvent OnDodgedSuccessfully = new UnityEvent(); public void SetIsDeadState(bool isDead) { @@ -38,10 +44,9 @@ public class Health : Resource absorbEffectInstance = GetComponent(); damageIncomeModifierEffectInstance = GetComponent(); + baseRegenValue = character.HealthRegen.BaseValue; - baseFlatRegen = flatRegen; - - character.MaxHealth.BaseValue = baseMaxValue; + baseMaxValue = character.MaxHealth.BaseValue; character.onUpdateStatValues.AddListener(CalculateMaxValueBasedOnStat); } @@ -51,7 +56,12 @@ public class Health : Resource base.Start(); } + public bool EnoughHealth(float cost) + { + if (noCost || invulnerable) return true; + return cost <= currentValue; + } public void SetInvulnerabilityState(bool isInvulnerable) { @@ -78,6 +88,40 @@ public class Health : Resource } } + protected bool HasDodged() + { + return MathHelpers.RollChance(MathHelpers.NormalizePercentageDecimal(character.DodgeChance.Value)); + } + protected bool HasBlocked() + { + return MathHelpers.RollChance(MathHelpers.NormalizePercentageDecimal(character.BlockChance.Value)); + } + + protected void HandleBlockMitigation() + { + if (incomingValue >= 0) return; + + Debug.Log("Blocked!"); + + if (scrollingTextPrefab != null) + { + scrollingText = GameObjectPoolManager.Instance.Get(scrollingTextPrefab.gameObject, this.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), 2f, Random.Range(-0.5f, 0.5f)), Quaternion.identity).GetComponent(); + + scrollingText.ShowBlock("Blocked!"); + } + + percentStatMitigation = MathHelpers.NormalizePercentageDecimal(character.BlockEffectiveness.Value); + + percentStatMitigation = Mathf.Clamp(percentStatMitigation, 0, GameConstants.CharacterStatsBalancing.MaximumPercentDamageReductionFromBlock); + + reducedDamage = incomingValue * percentStatMitigation; + incomingValue += Mathf.Abs(reducedDamage); + + if (incomingValue > 0) //avoid damage ultra mitigated turning into healing + incomingValue = 0; + + } + protected void HandleStatMitigation(DamageType dmgType) { if (incomingValue < 0) @@ -107,10 +151,6 @@ public class Health : Resource incomingValue = 0; } } - protected void HandleMagicResistanceMitigation() - { - - } protected void HandleAbsorbEffects() { @@ -129,6 +169,8 @@ public class Health : Resource } } + + public override void ChangeValue(float value) { //Debug.Log("Value to change: " + value); @@ -177,7 +219,7 @@ public class Health : Resource onResourceChanged.Invoke(currentValue); } - public void ChangeValue(float value, int dmgType) + public void ChangeValue(float value, int dmgType, bool isCrit) { //Debug.Log("Value to change: " + value); @@ -187,10 +229,51 @@ public class Health : Resource //Debug.Log(gameObject.name + " receiving dmg = " + incomingValue + " before mitigations " + (DamageType)dmgType); - if (invulnerable && incomingValue < 0) return; + if (invulnerable && incomingValue < 0) + { + if (scrollingTextPrefab != null) + { + scrollingText = GameObjectPoolManager.Instance.Get(scrollingTextPrefab.gameObject, this.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), 2f, Random.Range(-0.5f, 0.5f)), Quaternion.identity).GetComponent(); + + scrollingText.Show("Invulnerable", Color.gray, 1.5f); + } + return; + } + + if (incomingValue < 0) + { + HandleNegativeValue(dmgType, isCrit); + } + else + { + HandlePositiveValue(); + } + } + + protected void HandleNegativeValue(int dmgType, bool isCrit) + { + if (incomingValue >= 0) return; + + if (HasDodged()) + { + Debug.Log("Dodged!"); + + if (scrollingTextPrefab != null) + { + scrollingText = GameObjectPoolManager.Instance.Get(scrollingTextPrefab.gameObject, this.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), 2f, Random.Range(-0.5f, 0.5f)), Quaternion.identity).GetComponent(); + + scrollingText.ShowDodge("Dodge!"); + } + + OnDodgedSuccessfully.Invoke(); + return; + } HandleDamageIncomeModifierEffects(); + if (HasBlocked()) + HandleBlockMitigation(); + HandleStatMitigation((DamageType)dmgType); HandleAbsorbEffects(); @@ -198,6 +281,18 @@ public class Health : Resource currentValue += incomingValue; currentValue = Mathf.Clamp(currentValue, 0, maxValue); + + if (scrollingTextPrefab != null) + { + scrollingText = GameObjectPoolManager.Instance.Get(scrollingTextPrefab.gameObject, this.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), 2f, Random.Range(-0.5f, 0.5f)), Quaternion.identity).GetComponent(); + + if (isCrit) + scrollingText.ShowCrit(incomingValue.ToString("0.0")); + else + scrollingText.ShowHit(incomingValue.ToString("0.0")); + + } + if (currentValue == 0) { //dead; @@ -207,11 +302,26 @@ public class Health : Resource onResourceChanged.Invoke(currentValue); } - public bool EnoughHealth(float cost) + protected void HandlePositiveValue() { - if (invulnerable) return true; + currentValue += incomingValue; - return cost <= currentValue; + currentValue = Mathf.Clamp(currentValue, 0, maxValue); + + if (scrollingTextPrefab != null && incomingValue != 0) + { + scrollingText = GameObjectPoolManager.Instance.Get(scrollingTextPrefab.gameObject, this.transform.position + new Vector3(Random.Range(-0.5f, 0.5f), 2f, Random.Range(-0.5f, 0.5f)), Quaternion.identity).GetComponent(); + + scrollingText.ShowHeal(incomingValue.ToString("0.0")); + } + + if (currentValue == 0) + { + //dead; + onDeath.Invoke(); + } + //Debug.Log("CurrentHealth: " + currentValue); + onResourceChanged.Invoke(currentValue); } public override float GetMaxValue() @@ -229,13 +339,7 @@ public class Health : Resource } public void CalculateRegenValueBasedOnStat() { - flatRegen = baseFlatRegen + - (character.Strength.Value - character.Strength.BaseValue) * GameConstants.CharacterStatsBalancing.BonusStrengthToFlatRegenRate + - (character.Vitality.Value - character.Vitality.BaseValue) * GameConstants.CharacterStatsBalancing.BonusVitalityToFlatRegenRate - ; - //percentRegen = (character.Vitality.Value - character.Vitality.BaseValue) * GameConstants.CharacterBalancing.BonusVitalityToPercentRegenRate; - - //Debug.Log(this.gameObject.name + " regens health " + flatRegen + " " + percentRegen + " = " + flatRegen + (maxValue * percentRegen / 100f)); + flatRegen = character.HealthRegen.Value; } public override void SetMaxValue(float value) diff --git a/Assets/Scripts/Mana.cs b/Assets/Scripts/Mana.cs index 7168bbae..d1470678 100644 --- a/Assets/Scripts/Mana.cs +++ b/Assets/Scripts/Mana.cs @@ -20,7 +20,9 @@ public class Mana : Resource { character = GetComponent(); - baseFlatRegen = flatRegen; + baseRegenValue = character.ManaRegen.BaseValue; + + baseMaxValue = character.MaxMana.BaseValue; character.onUpdateStatValues.AddListener(CalculateMaxValueBasedOnStat); } @@ -62,7 +64,7 @@ public class Mana : Resource public void CalculateMaxValueBasedOnStat() { - maxValue = baseMaxValue + character.Intelligence.Value * GameConstants.CharacterStatsBalancing.IntelligenceToManaRate; + maxValue = character.MaxMana.Value; CalculateRegenValueBasedOnStat(); @@ -70,7 +72,7 @@ public class Mana : Resource } public void CalculateRegenValueBasedOnStat() { - flatRegen = baseFlatRegen + (character.Spirit.Value - character.Spirit.BaseValue) * GameConstants.CharacterStatsBalancing.BonusSpiritToFlatRegenRate; + flatRegen = character.ManaRegen.Value; //percentRegen = (character.Spirit.Value - character.Spirit.BaseValue) * GameConstants.CharacterBalancing.BonusSpiritToPercentRegenRate; } diff --git a/Assets/Scripts/Resource.cs b/Assets/Scripts/Resource.cs index 170166cc..4b63826c 100644 --- a/Assets/Scripts/Resource.cs +++ b/Assets/Scripts/Resource.cs @@ -9,6 +9,7 @@ public class Resource : MonoBehaviour [SerializeField] protected float maxValue; [SerializeField] protected float baseMaxValue; [SerializeField] protected float flatRegen; + [SerializeField] protected float baseRegenValue; [SerializeField] protected float percentRegen; [SerializeField] protected float timeBetweenRegens; @@ -16,14 +17,20 @@ public class Resource : MonoBehaviour public UnityEvent onResourceChanged = new UnityEvent(); - protected float baseFlatRegen; - // Start is called before the first frame update protected virtual void Start() { currentValue = maxValue; + flatRegen = baseRegenValue; onResourceChanged.Invoke(currentValue); + } + protected virtual void OnDisable() + { + StopAllCoroutines(); + } + protected virtual void OnEnable() + { StartCoroutine(RegenResource()); } @@ -48,6 +55,10 @@ public class Resource : MonoBehaviour { return baseMaxValue; } + public virtual float GetBaseRegenValue() + { + return baseRegenValue; + } public virtual void SetCurrentValue(float value) { diff --git a/Assets/Scripts/SpiritPower.cs b/Assets/Scripts/SpiritPower.cs index 855a490a..f8a9579e 100644 --- a/Assets/Scripts/SpiritPower.cs +++ b/Assets/Scripts/SpiritPower.cs @@ -19,7 +19,7 @@ public class SpiritPower : Resource { character = GetComponent(); - baseFlatRegen = flatRegen; + //baseFlatRegen = flatRegen; character.onUpdateStatValues.AddListener(CalculateMaxValueBasedOnStat); } @@ -82,7 +82,7 @@ public class SpiritPower : Resource public void CalculateMaxValueBasedOnStat() { - maxValue = baseMaxValue + character.Spirit.Value * GameConstants.CharacterStatsBalancing.SpiritToSpiritPowerRate; + //maxValue = baseMaxValue + character.Spirit.Value * GameConstants.CharacterStatsBalancing.SpiritToSpiritPowerRate; CalculateRegenValueBasedOnStat(); @@ -90,7 +90,7 @@ public class SpiritPower : Resource } public void CalculateRegenValueBasedOnStat() { - flatRegen = baseFlatRegen + (character.Spirit.Value - character.Spirit.BaseValue) * GameConstants.CharacterStatsBalancing.BonusSpiritToFlatRegenRate; + //flatRegen = baseFlatRegen + (character.Spirit.Value - character.Spirit.BaseValue) * GameConstants.CharacterStatsBalancing.BonusSpiritToFlatRegenRate; //percentRegen = (character.Spirit.Value - character.Spirit.BaseValue) * GameConstants.CharacterBalancing.BonusSpiritToPercentRegenRate; } diff --git a/Assets/Scripts/UI/ResourceOrbUI.cs b/Assets/Scripts/UI/ResourceOrbUI.cs index 393f9884..b5a6e6d3 100644 --- a/Assets/Scripts/UI/ResourceOrbUI.cs +++ b/Assets/Scripts/UI/ResourceOrbUI.cs @@ -24,7 +24,6 @@ public class ResourceOrbUI : MonoBehaviour Health health; Mana mana; - SpiritPower spiritPower; AbsorbEffectInstance absorb; @@ -44,7 +43,6 @@ public class ResourceOrbUI : MonoBehaviour health = spawnedPlayer.GetComponent(); mana = spawnedPlayer.GetComponent(); absorb = spawnedPlayer.GetComponent(); - spiritPower = spawnedPlayer.GetComponent(); health.onResourceChanged.AddListener(UpdateCurrentHealth); health.onMaxHealthChanged.AddListener(UpdateMaxHealth); @@ -53,8 +51,6 @@ public class ResourceOrbUI : MonoBehaviour mana.onResourceChanged.AddListener(UpdateCurrentMana); mana.onMaxManaChanged.AddListener(UpdateMaxMana); - spiritPower.onResourceChanged.AddListener(UpdateCurrentSpiritPower); - spiritPower.onMaxSpiritPowerChanged.AddListener(UpdateMaxSpiritPower); absorb.OnEffectStackAddedEvent.AddListener(UpdateCurrentAbsorb); absorb.OnAbsorbDamage.AddListener(UpdateCurrentAbsorb); @@ -96,27 +92,14 @@ public class ResourceOrbUI : MonoBehaviour UpdateManaTMP(); } - public void UpdateCurrentSpiritPower(float value) - { - spiritPowerFill.fillAmount = spiritPower.GetCurrentValue() / spiritPower.GetMaxValue(); - UpdateSpiritPowerTMP(); - } - public void UpdateMaxSpiritPower(float value) - { - spiritPowerFill.fillAmount = spiritPower.GetCurrentValue() / value; - UpdateSpiritPowerTMP(); - } + public void UpdateManaTMP() { mana_TMP.text = $"{mana.GetCurrentValue().ToString("F0")}/{mana.GetMaxValue().ToString("F0")}"; } - public void UpdateSpiritPowerTMP() - { - spiritPower_TMP.text = $"{spiritPower.GetCurrentValue().ToString("F0")}/{spiritPower.GetMaxValue().ToString("F0")}"; - } - + public void UpdateCurrentAbsorb() { absorbFill.fillAmount = absorb.currentAmount / health.GetMaxValue(); diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index dc7e8e52..6017812a 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -2,20 +2,24 @@ %TAG !u! tag:unity3d.com,2011: --- !u!21 &2180264 Material: - serializedVersion: 6 + serializedVersion: 8 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: LiberationSans SDF Material m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} - m_ShaderKeywords: + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 stringTagMap: {} disabledShaderPasses: [] + m_LockedProperties: m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -67,6 +71,7 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} + m_Ints: [] m_Floats: - _Ambient: 0.5 - _Bevel: 0.5 @@ -148,6 +153,8 @@ Material: - _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} + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!114 &11400000 MonoBehaviour: m_ObjectHideFlags: 0 @@ -161,11 +168,6 @@ MonoBehaviour: m_Name: LiberationSans SDF - Fallback m_EditorClassIdentifier: m_Version: 1.1.0 - m_Material: {fileID: 2180264} - m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 - m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} - m_AtlasPopulationMode: 1 - InternalDynamicOS: 0 m_FaceInfo: m_FaceIndex: 0 m_FamilyName: Liberation Sans @@ -188,57 +190,8 @@ MonoBehaviour: m_StrikethroughOffset: 18 m_StrikethroughThickness: 6.298828 m_TabWidth: 24 - m_GlyphTable: [] - m_CharacterTable: [] - m_AtlasTextures: - - {fileID: 28268798066460806} - m_AtlasTextureIndex: 0 - m_IsMultiAtlasTexturesEnabled: 1 - m_ClearDynamicDataOnBuild: 1 - m_UsedGlyphRects: [] - m_FreeGlyphRects: - - m_X: 0 - m_Y: 0 - m_Width: 511 - m_Height: 511 - m_fontInfo: - Name: Liberation Sans - PointSize: 86 - Scale: 1 - CharacterCount: 250 - LineHeight: 98.90625 - Baseline: 0 - Ascender: 77.84375 - CapHeight: 59.1875 - Descender: -18.21875 - CenterLine: 0 - SuperscriptOffset: 77.84375 - SubscriptOffset: -12.261719 - SubSize: 0.5 - Underline: -12.261719 - UnderlineThickness: 6.298828 - strikethrough: 23.675 - strikethroughThickness: 0 - TabWidth: 239.0625 - Padding: 9 - AtlasWidth: 1024 - AtlasHeight: 1024 - atlas: {fileID: 0} - m_AtlasWidth: 512 - m_AtlasHeight: 512 - m_AtlasPadding: 9 - m_AtlasRenderMode: 4169 - m_glyphInfoList: [] - m_KerningTable: - kerningPairs: [] - m_FontFeatureTable: - m_MultipleSubstitutionRecords: [] - m_LigatureSubstitutionRecords: [] - m_GlyphPairAdjustmentRecords: [] - m_MarkToBaseAdjustmentRecords: [] - m_MarkToMarkAdjustmentRecords: [] - fallbackFontAssets: [] - m_FallbackFontAssetTable: [] + m_Material: {fileID: 2180264} + m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 m_CreationSettings: sourceFontFileName: sourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75 @@ -258,6 +211,63 @@ MonoBehaviour: fontStyleModifier: 0 renderMode: 4169 includeFontFeatures: 1 + m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3} + m_SourceFontFilePath: + m_AtlasPopulationMode: 1 + InternalDynamicOS: 0 + m_GlyphTable: + - m_Index: 2121 + m_Metrics: + m_Width: 43 + m_Height: 29 + m_HorizontalBearingX: 2 + m_HorizontalBearingY: 43 + m_HorizontalAdvance: 47 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 43 + m_Height: 29 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 8776 + m_GlyphIndex: 2121 + m_Scale: 1 + m_AtlasTextures: + - {fileID: 28268798066460806} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 1 + m_GetFontFeatures: 1 + m_ClearDynamicDataOnBuild: 1 + m_AtlasWidth: 512 + m_AtlasHeight: 512 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4169 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 62 + m_Height: 48 + m_FreeGlyphRects: + - m_X: 0 + m_Y: 48 + m_Width: 511 + m_Height: 463 + - m_X: 62 + m_Y: 0 + m_Width: 449 + m_Height: 511 + m_FontFeatureTable: + m_MultipleSubstitutionRecords: [] + m_LigatureSubstitutionRecords: [] + m_GlyphPairAdjustmentRecords: [] + m_MarkToBaseAdjustmentRecords: [] + m_MarkToMarkAdjustmentRecords: [] + m_ShouldReimportFontFeatures: 0 + m_FallbackFontAssetTable: [] m_FontWeightTable: - regularTypeface: {fileID: 0} italicTypeface: {fileID: 0} @@ -306,6 +316,33 @@ MonoBehaviour: boldSpacing: 7 italicStyle: 35 tabSize: 10 + m_fontInfo: + Name: Liberation Sans + PointSize: 86 + Scale: 1 + CharacterCount: 250 + LineHeight: 98.90625 + Baseline: 0 + Ascender: 77.84375 + CapHeight: 59.1875 + Descender: -18.21875 + CenterLine: 0 + SuperscriptOffset: 77.84375 + SubscriptOffset: -12.261719 + SubSize: 0.5 + Underline: -12.261719 + UnderlineThickness: 6.298828 + strikethrough: 23.675 + strikethroughThickness: 0 + TabWidth: 239.0625 + Padding: 9 + AtlasWidth: 1024 + AtlasHeight: 1024 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + fallbackFontAssets: [] + atlas: {fileID: 0} --- !u!28 &28268798066460806 Texture2D: m_ObjectHideFlags: 0 @@ -316,17 +353,21 @@ Texture2D: m_ImageContentsHash: serializedVersion: 2 Hash: 00000000000000000000000000000000 - m_ForcedFallbackFormat: 4 - m_DownscaleFallback: 0 - serializedVersion: 2 - m_Width: 0 - m_Height: 0 - m_CompleteImageSize: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 4 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 + m_MipsStripped: 0 m_TextureFormat: 1 m_MipCount: 1 m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMipmapLimit: 0 + m_MipmapLimitGroupName: m_StreamingMipmaps: 0 m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 m_AlphaIsTransparency: 0 m_ImageCount: 1 m_TextureDimension: 2 @@ -340,9 +381,11 @@ Texture2D: m_WrapW: 0 m_LightmapFormat: 0 m_ColorSpace: 0 - image data: 0 - _typelessdata: + m_PlatformBlob: + image data: 262144 + _typelessdata: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e111213131311100d0a070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002060a0c0d080806020000000000000000000000000000000205090e121415181b1d1e1f201f1e1d1a171312100c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070d121618191514120f0903000000000000000000000205090e12141a1e212225282a2b2c2c2c2b292724201f1c18120d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010a12191e22252622211f1a150e060000000000000104080e11141a1e21262b2d2e32353738393939383634302d2c28231c18130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a131c232a2f32332f2e2b2620180f0a06020406080d1114191e20262b2d31373a3b3e4144454646464443403d3a38342e29241d160d0800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c252e353b3e403b3a37312a211b16120f111314191d20252a2d31373a3c4246484b4e505152535251504d4a46444039352f281f1a120b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d19232e3740464b4c4847433c332c27211f1a1d202024292c3036393c4246484d5355585b5d5e5f5f5f5e5c5a5753514a45413a312c241d140b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e2a35404951575955534e463f38322e2b26292c2d2f35393b4146474d5355575f6165686a6b6c6c6c6b696763605c54514b433e362f261d130800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16222f3b46515b6366625f585148433d3a373135393a3c4145474c5254575f6166696e71747778797979777673706d66605d55504841382f251a0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323e4b57636d736e6a625b544f48474343404547494c5254565e6165696e73777b7e8183848586858482807d79736d67615a534a41362b201408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f7b726d63605955534e504b515356565d6065686e72767b7f84888b8e9091929292918f8d8a857f7a716c645c53483c3024180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b687581857e766f6b66625f585d555d606266686d71767a7f83888c9196989b9d9e9f9f9f9e9c9a97928c847e746e64584c4033271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e8b837c76726e6a6b6a6a676d6f72767a7e82868b9095999da0a8aaa29f9d9c9d9ea1a9a19e97918a8174675b4e4134281b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e959089837f7b79777677787a7c7f83868b8f92999d9fa7a29f9b9898929190909196979b9fa19d9184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9b9d95908c88858483838486898c8f92999c9fa3a39f9c98928f8b888584838385878a8e92999d9184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e979e9f9d99989291909091939a999c9fa3a7a09d99928f8a86827e7b79777677787a7d82868e939184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d858f949b9fa3a29f9e9d9d9e9fa4aca49f9d9995908c86827e7a75726f6c66696a686d71757b81879184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303c4955616c707a82898e92999a9c9e9f9f9e9e9c999a93908c88837f7b75716d676562605b54565e6164696e747c8484776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202d39444f5961686e757c81868a8d9091929292918f8d8a87837f7b77726e6864605d555553504a4c5254575e616a6f7a8073675a4d4034271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c28333e474f565e616a6f757a7d8083848586858482807e7a77736e6965615e5653514b4846443f4146474d535860676d736e64584c3f3326190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17212c353e444d52586062686d70747677787978777573716e6866625f5754524d4745403c39383335393b42464e555d6067645c52473b2f23170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a232c323b41464e54565e616467696b6c6c6b6b696664615e5655534d4746413b39352f383939393831363d434c51545a58524a40362b1f13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a131c202930363d43474c5254575a5d5e5f5f5f5e5c5a5754524c4847423c393a3b3e4244454646454443413d3a4145474d4c4740382e24190e02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121c252e353b3e403c3a4146474a4d5051525352514f4d4a4746413b3a3a3c4247484b4e505152535251504d4a4645403a403f3b362e261c12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d19232e3740464b4c4847433c3a3d4143444546454442403e3b393a3c4347484e5355585b5d5e5f5f5f5e5c5a5753514b46413a332d261d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e2a35404951575955534e443f38332d383939383830363a3b4246484e5355575f6265686a6b6c6c6c6b696763605c55524c443f382f261b110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a16232f3b46515b6366625f58504a443f3a3937383a3b3e4246484d5254585f62666a6e71757778797978777674706d67615e56504941382d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323e4b57636d736f6a605b5450494746444446484a4d5254575e61666a6e73777b7e8183848586858483807d79736d68605b53493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d192633404c5966737f7c726c66605b5354535050535557575e6165696e72777b8084888b8e9091929292918f8d8a85807a726c655b5044372b1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b687581857f78706c656361605b5c60626467696e72767b7f83888c9196989b9d9e9f9f9f9e9c9a97928d857f796c605346392d201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e8c837d7873706d6c65666d6e7174777b7f83878c9095999ea0a8a8a19e9c9b9c9d9fa3a29e97928b8175685b4f4235281c0f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e95908a84807d7a797878797b7d8084878b90939a9da0a7a29f9b979691908f8f9092989a9fa29d9184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e9b9d96918d898786858586888a8d9095989c9fa4a39f9b98928e8a87848382828486898e92989d9184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b2835424e5b6875818e989ea09d9a96999291929399979a9da0a7a79f9d99928f8a85817e7b7876757677797d81868d929184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d868f949b9fa3aba39f9e9e9fa4aba7a7a09d9995908b86827d7975716e69696869676d70747a80879184776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303c4955616c717b82898e92999a9c9e9f9f9f9e9c9a9795908c88837f7a75706d6764615e575c555c6063686d747c8484776a5e5144372b1e11000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212d3945505a61696e757c81868a8d9091929292918f8d8a87847f7b77726d6864605c5554524d4f4b5153565e616a6f798073675a4d4034271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111c28333e4850575e616a6f757a7d8083848586858482807e7a77736e6965615d5653514b474642424045464c52585f676d736e64584b3f3326190d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222c363e454d52586062686d70747677787978777674716e6866625f5754524c4645403b3a363034383a41464e555d6067645c52473b2f23170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a242c333b42464e54565d616467696b6c6c6c6b696764615e5655534d4746413a38342e2d2a25282c30363c434b51535a58524a40362a1f130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121a212930363d43474c5254575a5d5e5f5f5f5e5c5a5754524c4847423c3935302c2823201e1a1c1f252a313a4045474d4b4740382e24190e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080f171f252a32373a4146474a4d5051525352514f4d4b4746413b3a37312d29241f1c1814110e1013191f282f35393a403f3b362e261c1208000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d141a20272b3035393a3d4143444546454443413e3b3936302e2b26201d1913100c07050204080d161d24292c2d34332f2a241c140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090e151b1e24292d2e31343638393939383634312e2d2a25211e1a15110d0804000000000000040c13181d20202726231f19120a0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13191d202124272a2b2c2c2c2b29272421201e1914120e09050100000000000000000001070d1113141a1917130e08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d111314171a1d1e1f201f1e1c1a181414110d0806020000000000000000000000000000010406070d0d0b07020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010507070a0e101112131211100e0b080705010000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m_StreamData: + serializedVersion: 2 offset: 0 size: 0 path: diff --git a/Assets/_ProjectRevive.meta b/Assets/_ProjectRevive.meta new file mode 100644 index 00000000..88def045 --- /dev/null +++ b/Assets/_ProjectRevive.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1742103ec92528049ad5bc588b371a6d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Prefabs.meta b/Assets/_ProjectRevive/Prefabs.meta new file mode 100644 index 00000000..269b6b00 --- /dev/null +++ b/Assets/_ProjectRevive/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27653eb46145c1f43ad35dee7aff29f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab b/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab new file mode 100644 index 00000000..70a26002 --- /dev/null +++ b/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab @@ -0,0 +1,506 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1906237064409171123 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1942381479582294668} + - component: {fileID: 2631318067687519912} + - component: {fileID: 7246904886069132037} + m_Layer: 0 + m_Name: 3DTMP_Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1942381479582294668 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906237064409171123} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6207018735683416805} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1.92, y: 1.08} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &2631318067687519912 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906237064409171123} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &7246904886069132037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1906237064409171123} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshPro + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 50 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 2 + m_fontSizeBase: 2 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 2631318067687519912} + m_maskType: 0 +--- !u!1 &4042808676909982747 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6207018735683416805} + - component: {fileID: 677595231222924942} + - component: {fileID: 8419876189813547190} + m_Layer: 0 + m_Name: 3DScrollingText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6207018735683416805 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4042808676909982747} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1942381479582294668} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &677595231222924942 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4042808676909982747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7b75bf1984d0e641b5654a748327664, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::ScrollingText + normalHit: + color: {r: 1, g: 1, b: 1, a: 1} + duration: 1 + moveSpeed: 1 + moveYCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + alphaCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeMultiplier: 1 + critHit: + color: {r: 1, g: 0.85493267, b: 0.3160377, a: 1} + duration: 1 + moveSpeed: 2 + moveYCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1.0089722 + value: 1.4023819 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + alphaCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.99872124 + value: 0.0023809525 + inSlope: -3.1918354 + outSlope: -3.1918354 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.03585149 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeMultiplier: 1.5 + heal: + color: {r: 0.18464361, g: 0.7075472, b: 0, a: 1} + duration: 1 + moveSpeed: 0.65 + moveYCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1.0063939 + value: 0.8642857 + inSlope: 2.2141566 + outSlope: 2.2141566 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.047314584 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + alphaCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.99871826 + value: 0.019042969 + inSlope: -3.067302 + outSlope: -3.067302 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.02176404 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeMultiplier: 1 + dodge: + color: {r: 0.8443396, g: 1, b: 0.9048742, a: 1} + duration: 0.8 + moveSpeed: 1 + moveYCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + alphaCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.002557545 + value: 1.0071429 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -2.10476 + outSlope: -2.10476 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.029487208 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeMultiplier: 1 + block: + color: {r: 0.7216981, g: 0.85505116, b: 1, a: 1} + duration: 0.8 + moveSpeed: 0.5 + moveYCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + alphaCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.9961637 + value: 0.004761905 + inSlope: -2.2004297 + outSlope: -2.2004297 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.028241375 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeMultiplier: 1 + tmpText: {fileID: 7246904886069132037} + moveSpeed: 1 +--- !u!114 &8419876189813547190 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4042808676909982747} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 46c33abd058b3c449a82ead76e422095, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Billboard diff --git a/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab.meta b/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab.meta new file mode 100644 index 00000000..0f809e00 --- /dev/null +++ b/Assets/_ProjectRevive/Prefabs/3DScrollingText.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: abe5cfbb1d6d9454aa835afceb136dcf +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Scripts.meta b/Assets/_ProjectRevive/Scripts.meta new file mode 100644 index 00000000..d0cb0e1b --- /dev/null +++ b/Assets/_ProjectRevive/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 376b9df2024c33244bdfcf88773fa532 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Scripts/GameUtils.meta b/Assets/_ProjectRevive/Scripts/GameUtils.meta new file mode 100644 index 00000000..9d31137d --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/GameUtils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f45e1fe0c68b11d44b73ac6dd54bd7f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs b/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs new file mode 100644 index 00000000..a868fbac --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +public static class MathHelpers +{ + public static bool RollChance(float chance) + { + if (chance >= 1f) return true; // 100% always succeeds + if (chance <= 0f) return false; // 0% always fails + return UnityEngine.Random.value < chance; + } + + /// + /// 0.05 or 5 will always return from 0 to 100 ==> 5% + /// + /// + /// + public static float NormalizePercentage(float value) + { + // If value is <= 1, assume it's already in decimal format (0.05 = 5%) + // If value is > 1, assume it's in percentage format (5 = 5%) + return value <= 1f ? value * 100f : value; + } + + /// + /// 0.05 or 5 will always return from 0 to 1 ==> 0.05 + /// + /// + /// + public static float NormalizePercentageDecimal(float value) + { + return value <= 1f ? value : value / 100f; + } +} diff --git a/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs.meta b/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs.meta new file mode 100644 index 00000000..3d31a212 --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/GameUtils/MathHelpers.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: aa14077032594904c8cd57768dc911be \ No newline at end of file diff --git a/Assets/_ProjectRevive/Scripts/ObjectPooling.meta b/Assets/_ProjectRevive/Scripts/ObjectPooling.meta new file mode 100644 index 00000000..5fb0d72a --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/ObjectPooling.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 51c9de5a29173634699bcbd99d2b5b6b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs b/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs new file mode 100644 index 00000000..b977be4c --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs @@ -0,0 +1,390 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Pool; + +/// +/// Centralized manager for GameObject pooling using Unity's built-in ObjectPool system. +/// Handles per-prefab pools for projectiles, AOE effects, and other frequently instantiated objects. +/// +/// USAGE: +/// - Replace Object.Instantiate(prefab, pos, rot) with GameObjectPoolManager.Instance.Get(prefab, pos, rot) +/// - Replace Destroy(gameObject) with GameObjectPoolManager.Instance.Release(gameObject) +/// +/// TO ADD NEW PREFAB TYPES: +/// 1. Add prefab to poolConfigs list in inspector or call RegisterPrefab() at runtime +/// 2. That's it! The system automatically creates pools for any prefab you Get() +/// +public class GameObjectPoolManager : MonoBehaviour +{ + [System.Serializable] + public class PoolConfig + { + [Tooltip("The prefab to pool")] + public GameObject prefab; + + [Tooltip("Initial number of objects to create in pool")] + public int defaultCapacity = 50; + + [Tooltip("Maximum objects in pool before oldest gets destroyed")] + public int maxSize = 100; + + [Tooltip("Check objects when returned to pool")] + public bool collectionCheck = true; + } + + #region Singleton + private static GameObjectPoolManager _instance; + public static GameObjectPoolManager Instance + { + get + { + if (_instance == null) + { + _instance = FindFirstObjectByType(); + if (_instance == null) + { + GameObject go = new GameObject("GameObjectPoolManager"); + _instance = go.AddComponent(); + DontDestroyOnLoad(go); + } + } + return _instance; + } + } + + private void Awake() + { + if (_instance == null) + { + _instance = this; + DontDestroyOnLoad(gameObject); + InitializePools(); + } + else if (_instance != this) + { + Destroy(gameObject); + } + } + #endregion + + [Header("Pool Configuration")] + [SerializeField] private List poolConfigs = new List(); + + [ContextMenu("Reset All Pool Configs")] + private void ResetPoolConfigs() + { + foreach (var config in poolConfigs) + { + if (config.prefab != null) + { + config.defaultCapacity = 50; + config.maxSize = 100; + config.collectionCheck = true; + Debug.Log($"Reset config for {config.prefab.name}"); + } + } + Debug.Log("All pool configs reset to default values"); + } + + [Header("Debug Info")] + [SerializeField] private bool showDebugLogs = true; // Temporarily enabled for debugging + [SerializeField] private bool showPoolStats = false; + + // Runtime pool storage - maps prefab to its ObjectPool + private Dictionary> pools = new Dictionary>(); + + // Track which pool each active object belongs to for release + private Dictionary activeObjectToPrefab = new Dictionary(); + + #region Public API + + /// + /// Get a pooled GameObject instance. Creates pool if it doesn't exist. + /// + /// Prefab to instantiate + /// World position + /// World rotation + /// Pooled GameObject instance + public GameObject Get(GameObject prefab, Vector3 position, Quaternion rotation) + { + if (prefab == null) + { + Debug.LogError("GameObjectPoolManager: Cannot get null prefab"); + return null; + } + + // Ensure pool exists + if (!pools.ContainsKey(prefab)) + { + CreatePoolForPrefab(prefab); + } + + // Get object from pool + GameObject obj = pools[prefab].Get(); + + // Set position and rotation + obj.transform.position = position; + obj.transform.rotation = rotation; + + // Track this object + activeObjectToPrefab[obj] = prefab; + + if (showDebugLogs) + Debug.Log($"GameObjectPoolManager: Got {prefab.name} from pool"); + + return obj; + } + + /// + /// Return a GameObject to its pool. + /// + /// Object to return to pool + public void Release(GameObject obj) + { + if (obj == null) + { + Debug.LogError("GameObjectPoolManager: Cannot release null object"); + return; + } + + // Find which prefab this object belongs to + if (!activeObjectToPrefab.TryGetValue(obj, out GameObject prefab)) + { + Debug.LogWarning($"GameObjectPoolManager: Object {obj.name} not tracked. This might be a non-pooled object. Destroying instead."); + Destroy(obj); + return; + } + + // Remove from tracking + activeObjectToPrefab.Remove(obj); + + // Return to pool + pools[prefab].Release(obj); + + if (showDebugLogs) + Debug.Log($"GameObjectPoolManager: Released {obj.name} to {prefab.name} pool"); + } + + /// + /// Register a new prefab for pooling at runtime. + /// + /// Prefab to register + /// Initial pool size + /// Maximum pool size + public void RegisterPrefab(GameObject prefab, int defaultCapacity = 50, int maxSize = 100) + { + if (prefab == null) return; + + if (pools.ContainsKey(prefab)) + { + Debug.LogWarning($"GameObjectPoolManager: Prefab {prefab.name} already registered"); + return; + } + + PoolConfig config = new PoolConfig + { + prefab = prefab, + defaultCapacity = defaultCapacity, + maxSize = maxSize, + collectionCheck = true + }; + + poolConfigs.Add(config); + CreatePool(config); + + Debug.Log($"GameObjectPoolManager: Registered and created pool for {prefab.name}"); + } + + #endregion + + #region Pool Management + + private void InitializePools() + { + foreach (var config in poolConfigs) + { + if (config.prefab != null && ValidatePoolConfig(config)) + { + CreatePool(config); + } + } + + Debug.Log($"GameObjectPoolManager: Initialized {pools.Count} pools"); + } + + private bool ValidatePoolConfig(PoolConfig config) + { + if (config.defaultCapacity <= 0) + { + Debug.LogError($"GameObjectPoolManager: Invalid defaultCapacity ({config.defaultCapacity}) for {config.prefab.name}. Must be > 0. Using default value 50."); + config.defaultCapacity = 50; + } + + if (config.maxSize <= 0) + { + Debug.LogError($"GameObjectPoolManager: Invalid maxSize ({config.maxSize}) for {config.prefab.name}. Must be > 0. Using default value 100."); + config.maxSize = 100; + } + + if (config.maxSize < config.defaultCapacity) + { + Debug.LogWarning($"GameObjectPoolManager: maxSize ({config.maxSize}) is less than defaultCapacity ({config.defaultCapacity}) for {config.prefab.name}. Setting maxSize to {config.defaultCapacity}."); + config.maxSize = config.defaultCapacity; + } + + return true; + } + + private void CreatePoolForPrefab(GameObject prefab) + { + // Check if we have a config for this prefab + PoolConfig config = poolConfigs.Find(c => c.prefab == prefab); + + if (config == null) + { + // Create default config + config = new PoolConfig + { + prefab = prefab, + defaultCapacity = 50, + maxSize = 100, + collectionCheck = true + }; + + Debug.Log($"GameObjectPoolManager: Auto-creating pool for {prefab.name} with default settings"); + } + + // Always validate config before creating pool + ValidatePoolConfig(config); + CreatePool(config); + } + + private void CreatePool(PoolConfig config) + { + if (pools.ContainsKey(config.prefab)) + { + Debug.LogWarning($"GameObjectPoolManager: Pool for {config.prefab.name} already exists"); + return; + } + + Debug.Log($"GameObjectPoolManager: Creating pool for {config.prefab.name} with defaultCapacity={config.defaultCapacity}, maxSize={config.maxSize}"); + + var pool = new ObjectPool( + createFunc: () => CreatePooledObject(config.prefab), + actionOnGet: (obj) => OnGetFromPool(obj), + actionOnRelease: (obj) => OnReleaseToPool(obj), + actionOnDestroy: (obj) => OnDestroyPooledObject(obj), + collectionCheck: config.collectionCheck, + defaultCapacity: config.defaultCapacity, + maxSize: config.maxSize + ); + + pools[config.prefab] = pool; + + Debug.Log($"GameObjectPoolManager: Successfully created pool for {config.prefab.name}"); + } + + #endregion + + #region Pool Callbacks + + private GameObject CreatePooledObject(GameObject prefab) + { + GameObject obj = Instantiate(prefab); + obj.name = prefab.name + "(Pooled)"; + + // Add PooledObject component to track pool membership + var pooledComponent = obj.GetComponent(); + if (pooledComponent == null) + { + pooledComponent = obj.AddComponent(); + } + pooledComponent.Initialize(prefab); + + if (showDebugLogs) + Debug.Log($"GameObjectPoolManager: Created new pooled object {obj.name}"); + + return obj; + } + + private void OnGetFromPool(GameObject obj) + { + // Reset any IPoolable components FIRST + var poolables = obj.GetComponents(); + for (int i = 0; i < poolables.Length; i++) + { + poolables[i].OnGetFromPool(); + } + + // Activate object AFTER reset + obj.SetActive(true); + } + + private void OnReleaseToPool(GameObject obj) + { + // Reset any IPoolable components + var poolables = obj.GetComponents(); + for (int i = 0; i < poolables.Length; i++) + { + poolables[i].OnReleaseToPool(); + } + + obj.SetActive(false); + } + + private void OnDestroyPooledObject(GameObject obj) + { + if (obj != null) + { + Destroy(obj); + } + } + + #endregion + + #region Debug and Stats + + private void OnGUI() + { + if (!showPoolStats) return; + + GUILayout.BeginArea(new Rect(10, 10, 300, 200)); + GUILayout.Label("Pool Stats", GUI.skin.box); + + foreach (var kvp in pools) + { + string prefabName = kvp.Key.name; + int activeCount = activeObjectToPrefab.Values.Count; + GUILayout.Label($"{prefabName}: {activeCount} active"); + } + + GUILayout.EndArea(); + } + + #endregion +} + +/// +/// Interface for objects that need custom reset behavior when pooled/released. +/// Implement this on components that need to reset state when returned to pool. +/// +public interface IPoolable +{ + void OnGetFromPool(); + void OnReleaseToPool(); +} + +/// +/// Component automatically added to pooled objects to track their source prefab. +/// +public class PooledObject : MonoBehaviour +{ + [SerializeField] private GameObject sourcePrefab; + + public GameObject SourcePrefab => sourcePrefab; + + public void Initialize(GameObject prefab) + { + sourcePrefab = prefab; + } +} diff --git a/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs.meta b/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs.meta new file mode 100644 index 00000000..c6ef3211 --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/ObjectPooling/GameObjectPoolManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1acfd68aaf4b17f4e803c4c4d96f6c61 \ No newline at end of file diff --git a/Assets/_ProjectRevive/Scripts/UI.meta b/Assets/_ProjectRevive/Scripts/UI.meta new file mode 100644 index 00000000..de9c4573 --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1966ae9774d6044386b53bf4bded1ef +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs b/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs new file mode 100644 index 00000000..6e6cf360 --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs @@ -0,0 +1,201 @@ +using System.Collections; +using TMPro; +using UnityEngine; + +public class ScrollingText : MonoBehaviour, IPoolable +{ + public FloatingTextStyle normalHit; + public FloatingTextStyle critHit; + public FloatingTextStyle heal; + public FloatingTextStyle dodge; + public FloatingTextStyle block; + + [SerializeField] private TMP_Text tmpText; + [SerializeField] private float moveSpeed = 1f; + + private Coroutine currentRoutine; + + float time; + Color startColor; + Vector3 startPos; + float t; + Color c; + float yOffset; + + private void Reset() + { + // Auto-assign TMP_Text if missing + if (tmpText == null) tmpText = GetComponent(); + } + + /// + /// Displays text with color, scrolls upward, and fades out. + /// + public void Show(string text, Color color, float duration) + { + if (tmpText == null) return; + + // Stop any existing animation + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = color; + + currentRoutine = StartCoroutine(AnimateText(duration)); + } + + public void ShowHit(string text) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = normalHit.color; + tmpText.fontSize *= normalHit.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(normalHit)); + } + public void ShowCrit(string text) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = critHit.color; + tmpText.fontSize *= critHit.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(critHit)); + } + public void ShowHeal(string text) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = heal.color; + tmpText.fontSize *= heal.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(heal)); + } + public void ShowDodge(string text) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = dodge.color; + tmpText.fontSize *= dodge.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(dodge)); + } + public void ShowBlock(string text) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = block.color; + tmpText.fontSize *= block.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(block)); + } + + public void Show(string text, FloatingTextStyle style) + { + if (tmpText == null) return; + + if (currentRoutine != null) + StopCoroutine(currentRoutine); + + tmpText.text = text; + tmpText.color = style.color; + tmpText.fontSize *= style.sizeMultiplier; + + currentRoutine = StartCoroutine(AnimateText(style)); + } + + private IEnumerator AnimateText(float duration) + { + time = 0f; + startColor = tmpText.color; + startPos = transform.localPosition; + + while (time < duration) + { + time += Time.deltaTime; + t = time / duration; + + // Move upward + transform.localPosition = startPos + Vector3.up * (moveSpeed * t); + + // Fade out + c = startColor; + c.a = Mathf.Lerp(1f, 0f, t); + tmpText.color = c; + + yield return null; + } + + tmpText.text = ""; // Clear after animation + GameObjectPoolManager.Instance.Release(this.gameObject); + } + + private IEnumerator AnimateText(FloatingTextStyle style) + { + time = 0f; + startPos = transform.localPosition; + startColor = style.color; + + while (time < style.duration) + { + time += Time.deltaTime; + t = time / style.duration; + + // Move upwards with curve + yOffset = style.moveYCurve.Evaluate(t) * style.moveSpeed; + transform.localPosition = startPos + Vector3.up * yOffset; + + // Fade with curve + c = startColor; + c.a = style.alphaCurve.Evaluate(t); + tmpText.color = c; + + yield return null; + } + + tmpText.text = ""; + } + + public void OnGetFromPool() + { + + } + + public void OnReleaseToPool() + { + + } +} + + +[System.Serializable] +public class FloatingTextStyle +{ + public Color color = Color.white; + public float duration = 1.5f; + public float moveSpeed = 1f; + public AnimationCurve moveYCurve = AnimationCurve.Linear(0, 0, 1, 1); + public AnimationCurve alphaCurve = AnimationCurve.Linear(0, 1, 1, 0); + public float sizeMultiplier = 1f; +} \ No newline at end of file diff --git a/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs.meta b/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs.meta new file mode 100644 index 00000000..80d53ddd --- /dev/null +++ b/Assets/_ProjectRevive/Scripts/UI/ScrollingText.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: f7b75bf1984d0e641b5654a748327664 \ No newline at end of file