diff --git a/Assets/BaseGame/Scripts/Vendor/VendorSlotUI.cs b/Assets/BaseGame/Scripts/Vendor/VendorSlotUI.cs index 5cf92b41..24dc259e 100644 --- a/Assets/BaseGame/Scripts/Vendor/VendorSlotUI.cs +++ b/Assets/BaseGame/Scripts/Vendor/VendorSlotUI.cs @@ -14,8 +14,8 @@ public class VendorSlotUI : ItemSlot CoinBag coinBag; Inventory inventory; - private VendorData currentVendorData; - VendorItem vendorItem; + private VendorDataInstance currentVendorData; + VendorItemInstance vendorItem; private void Awake() { @@ -23,7 +23,7 @@ public class VendorSlotUI : ItemSlot inventory = FindObjectOfType(); } - public void AddItem(VendorData vendor, VendorItem newItem) + public void AddItem(VendorDataInstance vendor, VendorItemInstance newItem) { vendorItem = newItem; Item = vendorItem.item; @@ -67,5 +67,13 @@ public class VendorSlotUI : ItemSlot public override void OnPointerEnter(PointerEventData eventData) { ItemTooltip.Instance.ShowTooltip(Item); + if(Item is EquippableItemInstance ei) + { + EquippableItemInstance equippedInSameSlot = EquipmentPanel.Instance.GetEquippedItemOnSpecificSlot(ei.EquipmentType); + if (equippedInSameSlot != null) + { + EquippedItemTooltip.Instance.ShowTooltip(equippedInSameSlot); + } + } } } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ConsumableItem.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ConsumableItem.cs index 293875fa..b1b5b80d 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ConsumableItem.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ConsumableItem.cs @@ -12,3 +12,12 @@ public class ConsumableItem : Item } } + + +public class ConsumableItemInstance : ItemInstance +{ + public virtual void Consume() + { + + } +} \ No newline at end of file diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentPanel.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentPanel.cs index 0008ee7f..bb397efe 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentPanel.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentPanel.cs @@ -11,9 +11,27 @@ namespace Kryz.CharacterStats.Examples [SerializeField] GameEventListener onJoinedRoom; - public UnityEvent_Item OnItemRightClickedEvent = new UnityEvent_Item(); + public UnityEvent_ItemInstance OnItemRightClickedEvent = new UnityEvent_ItemInstance(); - EquipmentData equipmentData = new EquipmentData(); + EquipmentInstanceData equipmentData = new EquipmentInstanceData(); + + #region Singleton + private static EquipmentPanel _instance; + + // Public reference to the singleton instance + public static EquipmentPanel Instance + { + get + { + // If the instance doesn't exist, try to find it in the scene + if (_instance == null) + { + _instance = FindObjectOfType(); + } + return _instance; + } + } + #endregion private void Awake() { @@ -34,16 +52,28 @@ namespace Kryz.CharacterStats.Examples equipmentSlots = equipmentSlotsParent.GetComponentsInChildren(); } - public bool AddItem(EquippableItem item, out EquippableItem previousItem) + public EquippableItemInstance GetEquippedItemOnSpecificSlot(EquipmentType slot) + { + for (int i = 0; i < equipmentSlots.Length; i++) + { + if(equipmentSlots[i].EquipmentType == slot) + { + return (EquippableItemInstance)equipmentSlots[i].Item; + } + } + return null; + } + + public bool AddItem(EquippableItemInstance item, out EquippableItemInstance previousItem) { for (int i = 0; i < equipmentSlots.Length; i++) { if (equipmentSlots[i].EquipmentType == item.EquipmentType) { - previousItem = (EquippableItem)equipmentSlots[i].Item; + previousItem = (EquippableItemInstance)equipmentSlots[i].Item; equipmentSlots[i].Item = item; - equipmentData.equippedItems[i] = ItemIndexer.Instance.Items.IndexOf(item); + equipmentData.equippedItems[i] = item; PlayerDataHandler.Instance.SaveCharacterEquipmentData(PlayerDataHandler.Instance.currentPlayerName.Value, PhotonNetwork.NickName, equipmentData); return true; } @@ -52,14 +82,14 @@ namespace Kryz.CharacterStats.Examples return false; } - public bool RemoveItem(EquippableItem item) + public bool RemoveItem(EquippableItemInstance item) { for (int i = 0; i < equipmentSlots.Length; i++) { if (equipmentSlots[i].Item == item) { equipmentSlots[i].Item = null; - equipmentData.equippedItems[i] = -1; + equipmentData.equippedItems[i] = null; PlayerDataHandler.Instance.SaveCharacterEquipmentData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value, equipmentData); return true; } @@ -81,13 +111,13 @@ namespace Kryz.CharacterStats.Examples Debug.Log("Success Loading Equipment"); for (int i = 0; i < equipmentData.equippedItems.Length; i++) { - if (equipmentData.equippedItems[i] < 0) + if (equipmentData.equippedItems[i] == null) { equipmentSlots[i].Item = null; } else { - equipmentSlots[i].Item = ItemIndexer.Instance.Items[equipmentData.equippedItems[i]]; + equipmentSlots[i].Item = equipmentData.equippedItems[i]; } } } @@ -98,7 +128,7 @@ namespace Kryz.CharacterStats.Examples equipmentSlots[i].Item = null; } - equipmentData = new EquipmentData(); + equipmentData = new EquipmentInstanceData(); PlayerDataHandler.Instance.SaveCharacterEquipmentData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value, equipmentData); } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentSlot.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentSlot.cs index 510d1918..0ac929e6 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentSlot.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquipmentSlot.cs @@ -1,4 +1,6 @@  +using UnityEngine.EventSystems; + namespace Kryz.CharacterStats.Examples { public class EquipmentSlot : ItemSlot @@ -10,5 +12,10 @@ namespace Kryz.CharacterStats.Examples base.OnValidate(); gameObject.name = EquipmentType.ToString() + " Slot"; } - } + + public override void OnPointerEnter(PointerEventData eventData) + { + EquippedItemTooltip.Instance.ShowTooltip(Item); + } + } } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs index 1c50fe86..b05afb06 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItem.cs @@ -45,6 +45,89 @@ namespace Kryz.CharacterStats.Examples public float ArmorPercentBonus; public float MagicResistancePercentBonus; 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] + public int MinSpellDamageBonus; + public int MaxSpellDamageBonus; + [Space] + public int MinCritChanceBonus; + public int MaxCritChanceBonus; + [Space] + public int MinCritDamageBonus; + public int MaxCritDamageBonus; + [Space] + public int MinMaxHealthBonus; + public int MaxMaxHealthBonus; + [Space] + public int MinArmorBonus; + public int MaxArmorBonus; + [Space] + public int MinMagicResistanceBonus; + public int MaxMagicResistanceBonus; + [Space] + [Space] + public float MinAttackDamagePercentBonus; + public float MaxAttackDamagePercentBonus; + [Space] + public float MinSpellDamagePercentBonus; + public float MaxSpellDamagePercentBonus; + [Space] + public float MinCritChancePercentBonus; + public float MaxCritChancePercentBonus; + [Space] + public float MinCritDamagePercentBonus; + public float MaxCritDamagePercentBonus; + [Space] + public float MinMaxHealthPercentBonus; + public float MaxMaxHealthPercentBonus; + [Space] + public float MinArmorPercentBonus; + public float MaxArmorPercentBonus; + [Space] + public float MinMagicResistancePercentBonus; + public float MaxMagicResistancePercentBonus; + [Space] + [Space] + [Tooltip("Can only contain up to this number of unique stats in a single item instance.")] + public int TotalUniqueStats; + public void Equip(PlayerCharacterStats c) { @@ -125,5 +208,6 @@ namespace Kryz.CharacterStats.Examples c.Armor.RemoveAllModifiersFromSource(this); c.MagicResistance.RemoveAllModifiersFromSource(this); } + } } \ No newline at end of file diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs new file mode 100644 index 00000000..6079f0b8 --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs @@ -0,0 +1,394 @@ +using Kryz.CharacterStats; +using Kryz.CharacterStats.Examples; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +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; + public int CritChanceBonus; + public int CritDamageBonus; + public int MaxHealthBonus; + public int ArmorBonus; + public int MagicResistanceBonus; + [Space] + public float AttackDamagePercentBonus; + public float SpellDamagePercentBonus; + public float CritChancePercentBonus; + public float CritDamagePercentBonus; + public float MaxHealthPercentBonus; + public float ArmorPercentBonus; + public float MagicResistancePercentBonus; + [Space] + public EquipmentType EquipmentType; + [Space] + public bool CraftableBase = false; + [Space] + /// + /// Can only contain up to this number of unique stats in a single item instance. + /// + [Space] + [Tooltip("Can only contain up to this number of unique stats in a single item instance.")] + public int TotalUniqueStats; + + 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)); + if (SpellDamageBonus != 0) + c.SpellDamage.AddModifier(new StatModifier(SpellDamageBonus, StatModType.Flat, this.ItemName)); + + if (CritChanceBonus != 0) + c.CritChance.AddModifier(new StatModifier(CritChanceBonus, StatModType.Flat, this.ItemName)); + if (CritDamageBonus != 0) + c.CritDamage.AddModifier(new StatModifier(CritDamageBonus, StatModType.Flat, this.ItemName)); + + if (MaxHealthBonus != 0) + c.MaxHealth.AddModifier(new StatModifier(MaxHealthBonus, StatModType.Flat, this.ItemName)); + if (ArmorBonus != 0) + c.Armor.AddModifier(new StatModifier(ArmorBonus, StatModType.Flat, this.ItemName)); + if (MagicResistanceBonus != 0) + c.MagicResistance.AddModifier(new StatModifier(MagicResistanceBonus, StatModType.Flat, this.ItemName)); + + if (AttackDamagePercentBonus != 0) + c.AttackDamage.AddModifier(new StatModifier(AttackDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + if (SpellDamagePercentBonus != 0) + c.SpellDamage.AddModifier(new StatModifier(SpellDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + + if (CritChancePercentBonus != 0) + c.CritChance.AddModifier(new StatModifier(CritChancePercentBonus, StatModType.PercentAdd, this.ItemName)); + if (CritDamagePercentBonus != 0) + c.CritDamage.AddModifier(new StatModifier(CritDamagePercentBonus, StatModType.PercentAdd, this.ItemName)); + + if (MaxHealthPercentBonus != 0) + c.MaxHealth.AddModifier(new StatModifier(MaxHealthPercentBonus, StatModType.PercentAdd, this.ItemName)); + if (ArmorPercentBonus != 0) + c.Armor.AddModifier(new StatModifier(ArmorPercentBonus, StatModType.PercentAdd, this.ItemName)); + if (MagicResistancePercentBonus != 0) + c.MagicResistance.AddModifier(new StatModifier(MagicResistancePercentBonus, StatModType.PercentAdd, this.ItemName)); + } + + 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.ItemName); + c.SpellDamage.RemoveAllModifiersFromSource(this.ItemName); + + c.CritChance.RemoveAllModifiersFromSource(this.ItemName); + c.CritDamage.RemoveAllModifiersFromSource(this.ItemName); + + c.MaxHealth.RemoveAllModifiersFromSource(this.ItemName); + c.Armor.RemoveAllModifiersFromSource(this.ItemName); + c.MagicResistance.RemoveAllModifiersFromSource(this.ItemName); + } + + public bool TryAddCraftingStone(CraftingStatStone stone) + { + if (!CraftableBase) return false; + + var itemStats = GetNonZeroStats(this); + var stoneStats = GetNonZeroStats(stone); + + // Calculate overlapping and new unique stats + int overlappingStats = itemStats.Intersect(stoneStats).Count(); + int newUniqueStats = stoneStats.Except(itemStats).Count(); + + // Ensure we don't exceed the max unique stats cap + if (itemStats.Count + newUniqueStats > TotalUniqueStats) + { + return false; // Adding the crafting stone would exceed the cap + } + + // Add stats from the stone to the item + AddStats(stone); + return true; + } + + private List GetNonZeroStats(object stats) + { + var nonZeroStats = new List(); + var fields = stats.GetType().GetFields(); + + foreach (var field in fields) + { + if (field.GetValue(stats) is int intValue && intValue != 0 && field.Name.ToLower().Contains("bonus")) + { + nonZeroStats.Add(field.Name); + } + else if (field.GetValue(stats) is float floatValue && !Mathf.Approximately(floatValue, 0f) && field.Name.ToLower().Contains("bonus")) + { + nonZeroStats.Add(field.Name); + } + } + + return nonZeroStats; + } + + private void AddStats(CraftingStatStone stone) + { + StrengthBonus += stone.StrengthBonus; + AgilityBonus += stone.AgilityBonus; + IntelligenceBonus += stone.IntelligenceBonus; + SpiritBonus += stone.SpiritBonus; + VitalityBonus += stone.VitalityBonus; + + StrengthPercentBonus += stone.StrengthPercentBonus; + AgilityPercentBonus += stone.AgilityPercentBonus; + IntelligencePercentBonus += stone.IntelligencePercentBonus; + SpiritPercentBonus += stone.SpiritPercentBonus; + VitalityPercentBonus += stone.VitalityPercentBonus; + + AttackDamageBonus += stone.AttackDamageBonus; + SpellDamageBonus += stone.SpellDamageBonus; + CritChanceBonus += stone.CritChanceBonus; + CritDamageBonus += stone.CritDamageBonus; + MaxHealthBonus += stone.MaxHealthBonus; + ArmorBonus += stone.ArmorBonus; + MagicResistanceBonus += stone.MagicResistanceBonus; + + AttackDamagePercentBonus += stone.AttackDamagePercentBonus; + SpellDamagePercentBonus += stone.SpellDamagePercentBonus; + CritChancePercentBonus += stone.CritChancePercentBonus; + CritDamagePercentBonus += stone.CritDamagePercentBonus; + MaxHealthPercentBonus += stone.MaxHealthPercentBonus; + ArmorPercentBonus += stone.ArmorPercentBonus; + MagicResistancePercentBonus += stone.MagicResistancePercentBonus; + } + + 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; + CritDamageBonus = 0; + MaxHealthBonus = 0; + ArmorBonus = 0; + MagicResistanceBonus = 0; + + AttackDamagePercentBonus = 0; + SpellDamagePercentBonus = 0; + CritChancePercentBonus = 0; + CritDamagePercentBonus = 0; + MaxHealthPercentBonus = 0; + ArmorPercentBonus = 0; + MagicResistancePercentBonus = 0; + + EquipmentType = EquipmentType.Helmet; + + CraftableBase = false; + + TotalUniqueStats = 0; + } + public EquippableItemInstance(EquippableItem template) + { + ItemName = template.ItemName; + Icon = template.Icon; + sellPricePlayer = template.sellPricePlayer; + sellPriceVendor = template.sellPriceVendor; + 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; + CritDamageBonus = template.CritDamageBonus; + MaxHealthBonus = template.MaxHealthBonus; + ArmorBonus = template.ArmorBonus; + MagicResistanceBonus = template.MagicResistanceBonus; + + AttackDamagePercentBonus = template.AttackDamagePercentBonus; + SpellDamagePercentBonus = template.SpellDamagePercentBonus; + CritChancePercentBonus = template.CritChancePercentBonus; + CritDamagePercentBonus = template.CritDamagePercentBonus; + MaxHealthPercentBonus = template.MaxHealthPercentBonus; + ArmorPercentBonus = template.ArmorPercentBonus; + MagicResistancePercentBonus = template.MagicResistancePercentBonus; + + EquipmentType = template.EquipmentType; + + CraftableBase = template.CraftableBase; + TotalUniqueStats = template.TotalUniqueStats; + } + + public EquippableItemInstance(EquippableItem template, bool randomizeStats) + { + ItemName = template.ItemName; + Icon = template.Icon; + sellPricePlayer = template.sellPricePlayer; + sellPriceVendor = template.sellPriceVendor; + description = template.description; + templateIndex = ItemIndexer.Instance.Items.IndexOf(template); + + 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); + CritChanceBonus = Random.Range(template.MinCritChanceBonus, template.MaxCritChanceBonus); + CritDamageBonus = Random.Range(template.MinCritDamageBonus, template.MaxCritDamageBonus); + MaxHealthBonus = Random.Range(template.MinMaxHealthBonus, template.MaxMaxHealthBonus); + ArmorBonus = Random.Range(template.MinArmorBonus, template.MaxArmorBonus); + MagicResistanceBonus = Random.Range(template.MinMagicResistanceBonus, template.MaxMagicResistanceBonus); + + AttackDamagePercentBonus = Mathf.Round(Random.Range(template.MinAttackDamagePercentBonus, template.MaxAttackDamagePercentBonus) * 100f) / 100f; + SpellDamagePercentBonus = Mathf.Round(Random.Range(template.MinSpellDamagePercentBonus, template.MaxSpellDamagePercentBonus) * 100f) / 100f; + CritChancePercentBonus = Mathf.Round(Random.Range(template.MinCritChancePercentBonus, template.MaxCritChancePercentBonus) * 100f) / 100f; + CritDamagePercentBonus = Mathf.Round(Random.Range(template.MinCritDamagePercentBonus, template.MaxCritDamagePercentBonus) * 100f) / 100f; + MaxHealthPercentBonus = Mathf.Round(Random.Range(template.MinMaxHealthPercentBonus, template.MaxMaxHealthPercentBonus) * 100f) / 100f; + ArmorPercentBonus = Mathf.Round(Random.Range(template.MinArmorPercentBonus, template.MaxArmorPercentBonus) * 100f) / 100f; + MagicResistancePercentBonus = Mathf.Round(Random.Range(template.MinMagicResistancePercentBonus, template.MaxMagicResistancePercentBonus) * 100f) / 100f; + + + } + 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; + CritChanceBonus = template.CritChanceBonus; + CritDamageBonus = template.CritDamageBonus; + MaxHealthBonus = template.MaxHealthBonus; + ArmorBonus = template.ArmorBonus; + MagicResistanceBonus = template.MagicResistanceBonus; + + AttackDamagePercentBonus = template.AttackDamagePercentBonus; + SpellDamagePercentBonus = template.SpellDamagePercentBonus; + CritChancePercentBonus = template.CritChancePercentBonus; + CritDamagePercentBonus = template.CritDamagePercentBonus; + MaxHealthPercentBonus = template.MaxHealthPercentBonus; + ArmorPercentBonus = template.ArmorPercentBonus; + MagicResistancePercentBonus = template.MagicResistancePercentBonus; + } + + + EquipmentType = template.EquipmentType; + + CraftableBase = template.CraftableBase; + TotalUniqueStats = template.TotalUniqueStats; + } +} + +[System.Serializable] +public class CraftingStatStone +{ + 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; + public int CritChanceBonus; + public int CritDamageBonus; + public int MaxHealthBonus; + public int ArmorBonus; + public int MagicResistanceBonus; + [Space] + public float AttackDamagePercentBonus; + public float SpellDamagePercentBonus; + public float CritChancePercentBonus; + public float CritDamagePercentBonus; + public float MaxHealthPercentBonus; + public float ArmorPercentBonus; + public float MagicResistancePercentBonus; + +} \ No newline at end of file diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs.meta b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs.meta new file mode 100644 index 00000000..059336a0 --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippableItemInstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67da004950510874d9b45cd829a33aec +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs new file mode 100644 index 00000000..667dc13b --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs @@ -0,0 +1,190 @@ +using System.Collections; +using System.Collections.Generic; +using System.Text; +using UnityEngine; +using UnityEngine.UI; + +public class EquippedItemTooltip : MonoBehaviour +{ + public static EquippedItemTooltip Instance; + + [SerializeField] Text nameText; + [SerializeField] Text slotTypeText; + [SerializeField] Text sellPriceText; + [SerializeField] Text statsText; + + private StringBuilder sb = new StringBuilder(); + + private string sellText = "Sell: "; + + private void Awake() + { + if (Instance == null) + { + Instance = this; + } + else + { + Destroy(this); + } + gameObject.SetActive(false); + } + private void ShowNonEquippableItemTooltip(ItemInstance itemToShow, bool fromVendor = false) + { + if (itemToShow == null) return; + + gameObject.SetActive(true); + + nameText.text = itemToShow.ItemName; + slotTypeText.text = ""; + if (fromVendor) + sellPriceText.text = sellText + itemToShow.sellPriceVendor.ToString(); + else + sellPriceText.text = sellText + itemToShow.sellPricePlayer.ToString(); + + statsText.text = itemToShow.description; + } + public void ShowTooltip(ItemInstance itemToShow) + { + if (!(itemToShow is EquippableItemInstance)) + { + ShowNonEquippableItemTooltip(itemToShow); + return; + } + + EquippableItemInstance item = (EquippableItemInstance)itemToShow; + + gameObject.SetActive(true); + + nameText.text = item.ItemName; + slotTypeText.text = item.EquipmentType.ToString(); + sellPriceText.text = sellText + item.sellPricePlayer.ToString(); + + 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.ArmorBonus, " Armor"); + AddStatText(item.MagicResistanceBonus, " Magic Resistance"); + + sb.AppendLine(); + + AddStatText(item.AttackDamagePercentBonus * 100, " % Attack Damage"); + AddStatText(item.SpellDamagePercentBonus * 100, " % Spell Damage"); + AddStatText(item.CritChancePercentBonus * 100, "% Increased Crit Chance"); + AddStatText(item.CritDamagePercentBonus * 100, "% Increased Crit Damage"); + AddStatText(item.MaxHealthPercentBonus * 100, " % Max Health"); + AddStatText(item.ArmorPercentBonus * 100, " % Armor"); + AddStatText(item.MagicResistancePercentBonus * 100, " % Magic Resistance"); + + if (!string.IsNullOrEmpty(itemToShow.description)) + { + sb.AppendLine(); + sb.AppendLine(); + sb.Append(itemToShow.description); + } + + statsText.text = sb.ToString(); + } + public void ShowTooltipVendor(ItemInstance itemFromVendor) + { + if (!(itemFromVendor is EquippableItemInstance)) + { + ShowNonEquippableItemTooltip(itemFromVendor, true); + return; + } + + EquippableItemInstance item = (EquippableItemInstance)itemFromVendor; + + gameObject.SetActive(true); + + nameText.text = item.ItemName; + slotTypeText.text = item.EquipmentType.ToString(); + sellPriceText.text = sellText + item.sellPriceVendor.ToString(); + + 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.ArmorBonus, " Armor"); + AddStatText(item.MagicResistanceBonus, " Magic Resistance"); + + sb.AppendLine(); + + AddStatText(item.AttackDamagePercentBonus * 100, " % Attack Damage"); + AddStatText(item.SpellDamagePercentBonus * 100, " % Spell Damage"); + AddStatText(item.CritChancePercentBonus * 100, "% Increased Crit Chance"); + AddStatText(item.CritDamagePercentBonus * 100, "% Increased Crit Damage"); + AddStatText(item.MaxHealthPercentBonus * 100, " % Max Health"); + AddStatText(item.ArmorPercentBonus * 100, " % Armor"); + AddStatText(item.MagicResistancePercentBonus * 100, " % Magic Resistance"); + + if (!string.IsNullOrEmpty(itemFromVendor.description)) + { + sb.AppendLine(); + sb.AppendLine(); + sb.Append(itemFromVendor.description); + } + + statsText.text = sb.ToString(); + } + + public void HideTooltip() + { + gameObject.SetActive(false); + } + + private void AddStatText(float statBonus, string statName) + { + if (statBonus != 0) + { + if (sb.Length > 0) + sb.AppendLine(); + + if (statBonus > 0) + sb.Append("+"); + + sb.Append(statBonus); + sb.Append(statName); + } + } +} diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs.meta b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs.meta new file mode 100644 index 00000000..b5d1de86 --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/EquippedItemTooltip.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6fd71483ced6e1e479ea344efd0fa806 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/HiddenMap.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/HiddenMap.cs index 29dad8c1..a7e7cf52 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/HiddenMap.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/HiddenMap.cs @@ -15,3 +15,32 @@ public class HiddenMap : ConsumableItem onMapZoneDiscovered.Raise((int)mapZone); } } + + +[System.Serializable] +public class HiddenMapInstance : ConsumableItemInstance +{ + public HiddenMapZone mapZone; + + public GameEvent_Int onMapZoneDiscovered; + + public HiddenMapInstance(HiddenMap template) + { + ItemName = template.ItemName; + Icon = template.Icon; + sellPricePlayer = template.sellPricePlayer; + sellPriceVendor = template.sellPriceVendor; + description = template.description; + templateIndex = ItemIndexer.Instance.Items.IndexOf(template); + + mapZone = template.mapZone; + + onMapZoneDiscovered = template.onMapZoneDiscovered; + } + + public override void Consume() + { + PlayerDataHandler.Instance.SaveMapUsedProgress(PlayerDataHandler.Instance.currentPlayerName.Value, mapZone); + onMapZoneDiscovered.Raise((int)mapZone); + } +} \ No newline at end of file diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/Inventory.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/Inventory.cs index c62b9de7..d68cddbb 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/Inventory.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/Inventory.cs @@ -7,7 +7,7 @@ namespace Kryz.CharacterStats.Examples { public class Inventory : MonoBehaviour { - [SerializeField] List items; + [SerializeField] List items; [SerializeField] Transform itemsParent; [SerializeField] ItemSlot[] itemSlots; [SerializeField] GameObject characterPanelUI; @@ -15,12 +15,14 @@ namespace Kryz.CharacterStats.Examples [SerializeField] GameEventListener onJoinedRoom; [SerializeField] GameEventListener OnGameOptionsOpenned; - public UnityEvent_Item OnItemRightClickedEvent = new UnityEvent_Item(); - public UnityEvent_Item OnItemRightClickedEventWhileVendoring = new UnityEvent_Item(); + public UnityEvent_ItemInstance OnItemRightClickedEvent = new UnityEvent_ItemInstance(); + public UnityEvent_ItemInstance OnItemRightClickedEventWhileVendoring = new UnityEvent_ItemInstance(); + public UnityEvent_ItemInstance OnItemRightClickedEventWhileCrafting = new UnityEvent_ItemInstance(); - InventoryData inventoryData = new InventoryData(); + InventoryInstanceData inventoryData = new InventoryInstanceData(); public bool isVendoring; + public bool isCrafting; #region Singleton private static Inventory _instance; @@ -50,11 +52,16 @@ namespace Kryz.CharacterStats.Examples onJoinedRoom.Response.AddListener(LoadInventory); OnGameOptionsOpenned.Response.AddListener(() => isVendoring = false); + OnGameOptionsOpenned.Response.AddListener(() => isCrafting = false); } - private void HandleItemSlotOnRightClick(Item item) + private void HandleItemSlotOnRightClick(ItemInstance item) { - if(isVendoring) + if(isCrafting) + { + OnItemRightClickedEventWhileCrafting.Invoke(item); + } + else if (isVendoring) { OnItemRightClickedEventWhileVendoring.Invoke(item); } @@ -86,7 +93,8 @@ namespace Kryz.CharacterStats.Examples itemSlots[i].Item = items[i]; if (ItemIndexer.Instance != null) - inventoryData.inventoryItems[i] = ItemIndexer.Instance.Items.IndexOf(items[i]); + inventoryData.inventoryItems[i] = items[i]; + //inventoryData.inventoryItems[i] = ItemIndexer.Instance.Items.IndexOf(items[i]); } @@ -94,7 +102,7 @@ namespace Kryz.CharacterStats.Examples { itemSlots[i].Item = null; - inventoryData.inventoryItems[i] = -1; + inventoryData.inventoryItems[i] = null; } if (!Application.isPlaying) return; if (!PhotonNetwork.IsConnected) return; @@ -104,7 +112,7 @@ namespace Kryz.CharacterStats.Examples PlayerDataHandler.Instance.SaveCharacterInventoryData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value, inventoryData); } - public bool AddItem(Item item) + public bool AddItem(ItemInstance item) { if (IsFull()) return false; @@ -115,7 +123,7 @@ namespace Kryz.CharacterStats.Examples return true; } - public bool RemoveItem(Item item) + public bool RemoveItem(ItemInstance item) { if (items.Remove(item)) { @@ -127,7 +135,10 @@ namespace Kryz.CharacterStats.Examples public bool IsFull() { + Debug.Log("Is Full: item count = " + items.Count + " itemSlots lenght = " + itemSlots.Length + " findAllnull/empty names " + items.FindAll(x => string.IsNullOrEmpty(x.ItemName)).Count); + Debug.Log("Is Full: " + (items.Count >= itemSlots.Length || items.FindAll(x => string.IsNullOrEmpty(x.ItemName)).Count <= 0)); return items.Count >= itemSlots.Length; + //return items.FindAll(x => string.IsNullOrEmpty(x.ItemName)).Count <= 0; } public void LoadInventory() @@ -135,23 +146,25 @@ namespace Kryz.CharacterStats.Examples items.Clear(); inventoryData = PlayerDataHandler.Instance.LoadCharacterInventoryData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value); - + if (inventoryData != null) { Debug.Log("Success Loading Inventory"); for (int i = 0; i < inventoryData.inventoryItems.Length; i++) { - if (inventoryData.inventoryItems[i] < 0) continue; + if (inventoryData.inventoryItems[i] == null) continue; + if (string.IsNullOrEmpty(inventoryData.inventoryItems[i].ItemName)) continue; - items.Add(ItemIndexer.Instance.Items[inventoryData.inventoryItems[i]]); + items.Add(inventoryData.inventoryItems[i]); + //items.Add(ItemIndexer.Instance.Items[inventoryData.inventoryItems[i]]); } RefreshUI(false); } else { - inventoryData = new InventoryData(); + inventoryData = new InventoryInstanceData(); RefreshUI(true); //PlayerDataHandler.Instance.SaveCharacterInventoryData(PlayerDataHandler.Instance.currentPlayerName.Value, PlayerDataHandler.Instance.currentCharacterName.Value, inventoryData); diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/Item.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/Item.cs index a4ec1e7f..b20d30f3 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/Item.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/Item.cs @@ -10,5 +10,26 @@ namespace Kryz.CharacterStats.Examples public int sellPricePlayer; public int sellPriceVendor; public string description; + + public static ItemInstance ConvertTemplateIntoInstance(Item template, bool randomizeStats = false) + { + if(template is EquippableItem item) + { + return new EquippableItemInstance(item, item.CraftableBase); + } + else if(template is HiddenMap map) + { + return new HiddenMapInstance(map); + } + return new ItemInstance(template); + } + public static ItemInstance ConvertTemplateIntoInstance(Item template, int templateIndex, bool randomizeStats = false) + { + if (template is EquippableItem item) + { + return new EquippableItemInstance(item, randomizeStats); + } + return new ItemInstance(template, templateIndex); + } } } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs new file mode 100644 index 00000000..9e2edf19 --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs @@ -0,0 +1,45 @@ +using Kryz.CharacterStats.Examples; +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[System.Serializable] +public class ItemInstance +{ + public string ItemName; + public Sprite Icon; + public int sellPricePlayer; + public int sellPriceVendor; + public string description; + public int templateIndex; + + public ItemInstance() + { + ItemName = ""; + Icon = null; + sellPricePlayer = 0; + sellPriceVendor = 0; + description = ""; + templateIndex = 0; + } + public ItemInstance(Item template) + { + ItemName = template.ItemName; + Icon = template.Icon; + sellPricePlayer = template.sellPricePlayer; + sellPriceVendor = template.sellPriceVendor; + description = template.description; + templateIndex = ItemIndexer.Instance.Items.IndexOf(template); + } + + public ItemInstance(Item template, int templateIndex) + { + ItemName = template.ItemName; + Icon = template.Icon; + sellPricePlayer = template.sellPricePlayer; + sellPriceVendor = template.sellPriceVendor; + description = template.description; + this.templateIndex = templateIndex; + } +} \ No newline at end of file diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs.meta b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs.meta new file mode 100644 index 00000000..07883001 --- /dev/null +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemInstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bf86b40aca6176849a51b2157332a427 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemSlot.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemSlot.cs index 0f3e9531..a5f473ce 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemSlot.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemSlot.cs @@ -10,17 +10,21 @@ namespace Kryz.CharacterStats.Examples { [SerializeField] protected Image image; - public UnityEvent_Item OnRightClickEvent = new UnityEvent_Item(); + public UnityEvent_ItemInstance OnRightClickEvent = new UnityEvent_ItemInstance(); - protected Item _item; - public Item Item { + protected ItemInstance _item; + public ItemInstance Item { get { return _item; } set { _item = value; if (_item == null) { image.enabled = false; - } else { + } else if(_item.Icon == null) { + image.enabled = false; + } + else + { image.sprite = _item.Icon; image.enabled = true; } @@ -51,11 +55,20 @@ namespace Kryz.CharacterStats.Examples public virtual void OnPointerEnter(PointerEventData eventData) { ItemTooltip.Instance.ShowTooltip(Item); + if (Item is EquippableItemInstance ei) + { + EquippableItemInstance equippedInSameSlot = EquipmentPanel.Instance.GetEquippedItemOnSpecificSlot(ei.EquipmentType); + if (equippedInSameSlot != null) + { + EquippedItemTooltip.Instance.ShowTooltip(equippedInSameSlot); + } + } } public void OnPointerExit(PointerEventData eventData) { ItemTooltip.Instance.HideTooltip(); + EquippedItemTooltip.Instance.HideTooltip(); } } } diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs index 06e0e03b..f2c2a198 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/ItemTooltip.cs @@ -29,7 +29,7 @@ namespace Kryz.CharacterStats.Examples } gameObject.SetActive(false); } - private void ShowNonEquippableItemTooltip(Item itemToShow, bool fromVendor = false) + private void ShowNonEquippableItemTooltip(ItemInstance itemToShow, bool fromVendor = false) { if (itemToShow == null) return; @@ -44,15 +44,15 @@ namespace Kryz.CharacterStats.Examples statsText.text = itemToShow.description; } - public void ShowTooltip(Item itemToShow) + public void ShowTooltip(ItemInstance itemToShow) { - if (!(itemToShow is EquippableItem)) + if (!(itemToShow is EquippableItemInstance)) { ShowNonEquippableItemTooltip(itemToShow); return; } - EquippableItem item = (EquippableItem)itemToShow; + EquippableItemInstance item = (EquippableItemInstance)itemToShow; gameObject.SetActive(true); @@ -106,15 +106,15 @@ namespace Kryz.CharacterStats.Examples statsText.text = sb.ToString(); } - public void ShowTooltipVendor(Item itemFromVendor) + public void ShowTooltipVendor(ItemInstance itemFromVendor) { - if (!(itemFromVendor is EquippableItem)) + if (!(itemFromVendor is EquippableItemInstance)) { ShowNonEquippableItemTooltip(itemFromVendor, true); return; } - EquippableItem item = (EquippableItem)itemFromVendor; + EquippableItemInstance item = (EquippableItemInstance)itemFromVendor; gameObject.SetActive(true); diff --git a/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs b/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs index ac6e4271..09d66180 100644 --- a/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs +++ b/Assets/Character Stats/Examples/Items & Inventory/Scripts/PlayerCharacterStats.cs @@ -167,32 +167,33 @@ namespace Kryz.CharacterStats.Examples } - private void EquipFromInventory(Item item) + private void EquipFromInventory(ItemInstance item) { - if (item is EquippableItem) + if (item is EquippableItemInstance) { - Equip((EquippableItem)item); + Equip((EquippableItemInstance)item); } } - private void UnequipFromEquipPanel(Item item) + private void UnequipFromEquipPanel(ItemInstance item) { - if (item is EquippableItem) + if (item is EquippableItemInstance) { - Unequip((EquippableItem)item); + Unequip((EquippableItemInstance)item); } } - public void Equip(EquippableItem item) + public void Equip(EquippableItemInstance item) { if (inventory.RemoveItem(item)) { ItemTooltip.Instance.HideTooltip(); + EquippedItemTooltip.Instance.HideTooltip(); - EquippableItem previousItem; + EquippableItemInstance previousItem; if (equipmentPanel.AddItem(item, out previousItem)) { - if (previousItem != null) + if (previousItem != null && !string.IsNullOrEmpty(previousItem.ItemName)) { inventory.AddItem(previousItem); previousItem.Unequip(this); @@ -209,7 +210,7 @@ namespace Kryz.CharacterStats.Examples } } - public void Unequip(EquippableItem item) + public void Unequip(EquippableItemInstance item) { if (!inventory.IsFull() && equipmentPanel.RemoveItem(item)) { @@ -297,7 +298,7 @@ namespace Kryz.CharacterStats.Examples break; } } - ((EquippableItem)slots[i].Item).Equip(this); + ((EquippableItemInstance)slots[i].Item).Equip(this); statPanel.UpdateStatValues(); onUpdateStatValues.Invoke(); } diff --git a/Assets/Developer/Prefabs/Persistent Objects.prefab b/Assets/Developer/Prefabs/Persistent Objects.prefab index 51dbb443..6431f56f 100644 --- a/Assets/Developer/Prefabs/Persistent Objects.prefab +++ b/Assets/Developer/Prefabs/Persistent Objects.prefab @@ -431,6 +431,86 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &123590469623239277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3641119934303568818} + - component: {fileID: 6191071655151349044} + - component: {fileID: 7789239333373587013} + m_Layer: 5 + m_Name: EquippedTag + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3641119934303568818 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123590469623239277} + m_LocalRotation: {x: 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: 2959850296485017366} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 410, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6191071655151349044 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123590469623239277} + m_CullTransparentMesh: 1 +--- !u!114 &7789239333373587013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123590469623239277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: b3797d5d853d86945b0da6c9793549c9, type: 3} + m_FontSize: 25 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 2 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Equipped:' --- !u!1 &185707331849063518 GameObject: m_ObjectHideFlags: 0 @@ -3795,6 +3875,465 @@ MonoBehaviour: experienceBar: {fileID: 5985558802430895850} experienceBarFill: {fileID: 9132331429105379675} onPlayerSpawned: {fileID: 7475116342871483259} +--- !u!1 &2959850296496625622 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2959850296484922440} + - component: {fileID: 2959850296485087984} + - component: {fileID: 2959850296507485286} + m_Layer: 5 + m_Name: Item Slot Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2959850296484922440 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496625622} + m_LocalRotation: {x: 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: 2959850296485017366} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 410, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2959850296485087984 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496625622} + m_CullTransparentMesh: 1 +--- !u!114 &2959850296507485286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496625622} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: b3797d5d853d86945b0da6c9793549c9, type: 3} + m_FontSize: 22 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Slot +--- !u!1 &2959850296496721988 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2959850296484903916} + - component: {fileID: 2959850296485125332} + - component: {fileID: 2959850296507435462} + - component: {fileID: 2959850296507453084} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2959850296484903916 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496721988} + m_LocalRotation: {x: 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: 2959850296485017366} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2959850296485125332 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496721988} + m_CullTransparentMesh: 1 +--- !u!114 &2959850296507435462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496721988} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b56c5c1572d7a9d44a96fce8f0a6bba7, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2959850296507453084 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496721988} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &2959850296496804030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2959850296484906414} + - component: {fileID: 2959850296485109758} + - component: {fileID: 2959850296507443966} + m_Layer: 5 + m_Name: Item Stats Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2959850296484906414 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496804030} + m_LocalRotation: {x: 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: 2959850296485017366} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 410, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2959850296485109758 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496804030} + m_CullTransparentMesh: 1 +--- !u!114 &2959850296507443966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496804030} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 1, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 28 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1.25 + m_Text: Stats +--- !u!1 &2959850296496806802 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2959850296485017366} + - component: {fileID: 2959850296507468170} + - component: {fileID: 2959850296507448014} + - component: {fileID: 2959850296507437766} + - component: {fileID: 4489233711721925659} + m_Layer: 5 + m_Name: EquippedItem Tooltip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2959850296485017366 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496806802} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.74999994, y: 0.74999994, z: 0.74999994} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 2959850296484903916} + - {fileID: 3641119934303568818} + - {fileID: 2959850296484889860} + - {fileID: 2959850296484922440} + - {fileID: 4379688128455002370} + - {fileID: 2959850296484906414} + m_Father: {fileID: 4340701886936047322} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 522.35, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &2959850296507468170 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496806802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 20 + m_Right: 20 + m_Top: 10 + m_Bottom: 15 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 1 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &2959850296507448014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496806802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 1 + m_VerticalFit: 2 +--- !u!114 &2959850296507437766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496806802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: 450 + m_MinHeight: 280 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &4489233711721925659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496806802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6fd71483ced6e1e479ea344efd0fa806, type: 3} + m_Name: + m_EditorClassIdentifier: + nameText: {fileID: 2959850296507479872} + slotTypeText: {fileID: 2959850296507485286} + sellPriceText: {fileID: 1158006711533175311} + statsText: {fileID: 2959850296507443966} +--- !u!1 &2959850296496814974 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2959850296484889860} + - component: {fileID: 2959850296485207308} + - component: {fileID: 2959850296507479872} + m_Layer: 5 + m_Name: Item Name Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2959850296484889860 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496814974} + m_LocalRotation: {x: 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: 2959850296485017366} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 410, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &2959850296485207308 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496814974} + m_CullTransparentMesh: 1 +--- !u!114 &2959850296507479872 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2959850296496814974} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 12800000, guid: b3797d5d853d86945b0da6c9793549c9, type: 3} + m_FontSize: 40 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Item Name --- !u!1 &3044780664683882875 GameObject: m_ObjectHideFlags: 0 @@ -3848,6 +4387,71 @@ MonoBehaviour: - {fileID: 3005345654528102386} - {fileID: 6460065817480779508} onPlayerSpawned: {fileID: 7475116342871483259} +--- !u!1 &3052407112493533417 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4340701886936047322} + - component: {fileID: 7032400310085581781} + m_Layer: 5 + m_Name: ItemTooltipsGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4340701886936047322 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3052407112493533417} + m_LocalRotation: {x: -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: 1 + m_Children: + - {fileID: 7475116342296380174} + - {fileID: 2959850296485017366} + m_Father: {fileID: 7475116342604559439} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 49.999958} + m_SizeDelta: {x: 810, y: 600} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &7032400310085581781 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3052407112493533417} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 140 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 7 + m_Spacing: 0 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 0 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &3209634625877957679 GameObject: m_ObjectHideFlags: 0 @@ -4396,6 +5000,108 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4148797534487268632 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4379688128455002370} + - component: {fileID: 7703136614739697559} + - component: {fileID: 1158006711533175311} + - component: {fileID: 6335949577219542693} + m_Layer: 5 + m_Name: Value Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4379688128455002370 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148797534487268632} + m_LocalRotation: {x: 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: 7552423618112014175} + m_Father: {fileID: 2959850296485017366} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 380, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7703136614739697559 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148797534487268632} + m_CullTransparentMesh: 1 +--- !u!114 &1158006711533175311 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148797534487268632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 0.19607843, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 22 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 5 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: 'Sell: X' +--- !u!114 &6335949577219542693 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4148797534487268632} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: 380 + m_PreferredHeight: -1 + m_FlexibleWidth: 0 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 --- !u!1 &4154880102837703214 GameObject: m_ObjectHideFlags: 0 @@ -6514,6 +7220,18 @@ MonoBehaviour: - {fileID: 11400000, guid: 54e1bf68d0f57a240a6234a5c66f4d25, type: 2} - {fileID: 11400000, guid: 85e280a601d74214881a22493d1b38cf, type: 2} - {fileID: 11400000, guid: 1f0db102aa4283049a5a884470b4957b, type: 2} + - {fileID: 11400000, guid: 5b802f347f7753d49a3a8427c71d6e42, type: 2} + - {fileID: 11400000, guid: 906dd41cf68ae944a81aea528bdab077, type: 2} + - {fileID: 11400000, guid: 401b486cea6d8df45924fdcf57e4b2af, type: 2} + - {fileID: 11400000, guid: b1c9b085cdd8bdc44bbe585bbba4c187, type: 2} + - {fileID: 11400000, guid: a9111f49f48fdc84ea5d6432fb240b9c, type: 2} + - {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - {fileID: 11400000, guid: be9886b162cf8ec408546d7efcb4ea62, type: 2} + - {fileID: 11400000, guid: 2b511380fccb3a84b8b057ac6a571950, type: 2} + - {fileID: 11400000, guid: 1a978966e0f4e374ba79ba557e8f762f, type: 2} + - {fileID: 11400000, guid: acd83131fcbffa9438937e119884e1dc, type: 2} + - {fileID: 11400000, guid: f8d7d9d387f13364e89147083e476ffa, type: 2} + - {fileID: 11400000, guid: 65a96a6b8c9196841b545beff92eee98, type: 2} --- !u!1 &6001753816787427263 GameObject: m_ObjectHideFlags: 0 @@ -9700,7 +10418,11 @@ MonoBehaviour: OnItemRightClickedEventWhileVendoring: m_PersistentCalls: m_Calls: [] + OnItemRightClickedEventWhileCrafting: + m_PersistentCalls: + m_Calls: [] isVendoring: 0 + isCrafting: 0 --- !u!1 &7475116342385688833 GameObject: m_ObjectHideFlags: 0 @@ -9960,7 +10682,7 @@ RectTransform: - {fileID: 2306657105594587368} - {fileID: 1083758498388601188} - {fileID: 7475116342305776693} - - {fileID: 7475116342296380174} + - {fileID: 4340701886936047322} - {fileID: 7475116340865517212} - {fileID: 7475116342128910726} - {fileID: 8303459673738591506} @@ -10089,6 +10811,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: itemTooltip: {fileID: 7475116342276730762} + equippedItemTooltip: {fileID: 2959850296496806802} statTooltip: {fileID: 7475116340887898890} keyBinder: {fileID: 7475116340942364666} --- !u!1 &7475116342612539502 @@ -12063,6 +12786,82 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: be11e87282fdea645a60f6c7575bc0b0, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &9059627393518490427 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7552423618112014175} + - component: {fileID: 3668201335071149038} + - component: {fileID: 5378828740748686631} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7552423618112014175 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9059627393518490427} + m_LocalRotation: {x: 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: 4379688128455002370} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &3668201335071149038 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9059627393518490427} + m_CullTransparentMesh: 1 +--- !u!114 &5378828740748686631 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9059627393518490427} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9d5365d85f9ac2e46b561528dae6e5ab, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 --- !u!1 &9120684351508125223 GameObject: m_ObjectHideFlags: 0 @@ -18721,7 +19520,7 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: - m_TransformParent: {fileID: 7475116342604559439} + m_TransformParent: {fileID: 4340701886936047322} m_Modifications: - target: {fileID: 118308, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_Name @@ -18753,11 +19552,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_RootOrder - value: 8 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchorMax.x - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchorMax.y @@ -18765,7 +19564,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchorMin.x - value: 0.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchorMin.y @@ -18781,15 +19580,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_LocalScale.x - value: 0.75 + value: 0.74999994 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_LocalScale.y - value: 0.75 + value: 0.74999994 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_LocalScale.z - value: 0.75 + value: 0.74999994 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_LocalPosition.x @@ -18821,11 +19620,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchoredPosition.x - value: 0 + value: 184.85002 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_AnchoredPosition.y - value: 50 + value: 0 objectReference: {fileID: 0} - target: {fileID: 22405792, guid: 98484fbd97870af4d8569162460a89bb, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab b/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab index 8f840d2e..0b7c3003 100644 --- a/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab +++ b/Assets/Resources/Bosses/BossEnemyPrefabTemplate.prefab @@ -1289,6 +1289,10 @@ PrefabInstance: propertyPath: nonEquippablesDrops.Array.size value: 2 objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.size + value: 13 + objectReference: {fileID: 0} - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} propertyPath: nonEquippablesDrops.Array.data[0] value: @@ -1297,6 +1301,962 @@ PrefabInstance: propertyPath: nonEquippablesDrops.Array.data[1] value: objectReference: {fileID: 11400000, guid: a6c738232ec60474f8edc7718e576d07, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[0].drop + value: + objectReference: {fileID: 11400000, guid: 1f0db102aa4283049a5a884470b4957b, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[1].drop + value: + objectReference: {fileID: 11400000, guid: 5b802f347f7753d49a3a8427c71d6e42, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[2].drop + value: + objectReference: {fileID: 11400000, guid: 906dd41cf68ae944a81aea528bdab077, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[3].drop + value: + objectReference: {fileID: 11400000, guid: 401b486cea6d8df45924fdcf57e4b2af, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[4].drop + value: + objectReference: {fileID: 11400000, guid: b1c9b085cdd8bdc44bbe585bbba4c187, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[5].drop + value: + objectReference: {fileID: 11400000, guid: a9111f49f48fdc84ea5d6432fb240b9c, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[6].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[7].drop + value: + objectReference: {fileID: 11400000, guid: be9886b162cf8ec408546d7efcb4ea62, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[8].drop + value: + objectReference: {fileID: 11400000, guid: 2b511380fccb3a84b8b057ac6a571950, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[9].drop + value: + objectReference: {fileID: 11400000, guid: 1a978966e0f4e374ba79ba557e8f762f, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[10].drop + value: + objectReference: {fileID: 11400000, guid: acd83131fcbffa9438937e119884e1dc, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[11].drop + value: + objectReference: {fileID: 11400000, guid: f8d7d9d387f13364e89147083e476ffa, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[12].drop + value: + objectReference: {fileID: 11400000, guid: 65a96a6b8c9196841b545beff92eee98, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[13].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[14].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[15].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[16].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[17].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[18].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[19].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[20].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[21].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[22].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[23].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[24].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[25].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[26].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[27].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[28].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[29].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[30].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[31].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[32].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[33].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[34].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[35].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[36].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[37].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[38].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[39].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[40].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[41].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[42].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[43].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[44].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[45].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[46].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[47].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[48].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[49].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[50].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[51].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[52].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[53].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[54].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[55].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[56].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[57].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[58].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[59].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[60].drop + value: + objectReference: {fileID: 11400000, guid: e2293ab47a0a29843bfa6efaee4202a1, type: 2} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[0].weight + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[1].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[2].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[3].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[4].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[5].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[6].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[7].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[8].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[9].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[10].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[11].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[12].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[13].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[14].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[15].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[16].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[17].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[18].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[19].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[20].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[21].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[22].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[23].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[24].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[25].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[26].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[27].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[28].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[29].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[30].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[31].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[32].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[33].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[34].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[35].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[36].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[37].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[38].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[39].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[40].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[41].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[42].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[43].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[44].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[45].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[46].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[47].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[48].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[49].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[50].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[51].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[52].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[53].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[54].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[55].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[56].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[57].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[58].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[59].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[60].weight + value: 35 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[0].lowestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[1].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[2].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[3].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[4].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[5].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[6].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[7].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[8].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[9].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[0].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[10].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[11].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[12].lowestPossibleDifficulty + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[13].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[14].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[15].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[16].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[17].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[18].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[19].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[1].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[20].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[21].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[22].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[23].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[24].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[25].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[26].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[27].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[28].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[29].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[2].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[30].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[31].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[32].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[33].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[34].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[35].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[36].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[37].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[38].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[39].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[3].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[40].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[41].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[42].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[43].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[44].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[45].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[46].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[47].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[48].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[49].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[4].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[50].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[51].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[52].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[53].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[54].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[55].lowestPossibleDifficulty + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[5].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[6].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[7].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[8].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[9].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[10].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[11].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[12].highestPossibleDifficulty + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[13].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[14].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[15].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[16].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[17].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[18].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[19].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[20].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[21].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[22].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[23].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[24].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[25].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[26].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[27].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[28].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[29].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[30].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[31].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[32].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[33].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[34].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[35].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[36].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[37].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[38].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[39].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[40].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[41].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[42].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[43].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[44].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[45].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[46].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[47].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[48].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[49].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[50].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[51].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[52].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[53].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[54].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[55].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[56].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[57].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[58].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[59].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 320740188261888096, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} + propertyPath: weightedDropLootTable.Array.data[60].highestPossibleDifficulty + value: 1 + objectReference: {fileID: 0} - target: {fileID: 2366098426994065154, guid: b6c7760f01532fc4a96882ae1816ae05, type: 3} propertyPath: m_Name value: DropTable diff --git a/Assets/Scenes/0-Splash.unity b/Assets/Scenes/0-Splash.unity index a76baa7b..7ae71055 100644 --- a/Assets/Scenes/0-Splash.unity +++ b/Assets/Scenes/0-Splash.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.05706269, g: 0.114712454, b: 0.119711496, a: 1} + m_IndirectSpecularColor: {r: 0.064229995, g: 0.12856054, b: 0.13422458, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -1539,6 +1539,90 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 506.24997 + objectReference: {fileID: 0} + - target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3015579015349867821, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1575,6 +1659,10 @@ PrefabInstance: propertyPath: m_AnchoredPosition.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 3470614162302931561, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3572373654598039533, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1599,6 +1687,26 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3698633681225247539, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -1639,6 +1747,26 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4759723387849467176, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -2047,6 +2175,14 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_SizeDelta.x value: 0 @@ -2055,6 +2191,14 @@ PrefabInstance: propertyPath: m_SizeDelta.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.x + value: 168.74998 + objectReference: {fileID: 0} + - target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7475116342305655975, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3} propertyPath: m_AnchorMax.y value: 0 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases.meta new file mode 100644 index 00000000..3451b7ab --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee359261a1411c14d8304b50c5cf6b47 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset new file mode 100644 index 00000000..a352d356 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 1-CraftableHelmet + m_EditorClassIdentifier: + ItemName: Basic Modular Helmet + Icon: {fileID: 21300000, guid: a6b25bb935e92234ebcfd2bcbcd3717a, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 0 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 6 + MinArmorBonus: 0 + MaxArmorBonus: 6 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 6 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 6 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset.meta new file mode 100644 index 00000000..67030247 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/1-CraftableHelmet.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5b802f347f7753d49a3a8427c71d6e42 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset new file mode 100644 index 00000000..2dd34d01 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 2-CraftableChest + m_EditorClassIdentifier: + ItemName: Basic Modular Chest + Icon: {fileID: 21300000, guid: cb1f494c783e3d04fa51b6f6947e9053, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 1 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 6 + MinArmorBonus: 0 + MaxArmorBonus: 6 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 6 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 6 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset.meta new file mode 100644 index 00000000..e7f53e0d --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/2-CraftableChest.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 906dd41cf68ae944a81aea528bdab077 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset new file mode 100644 index 00000000..476414b1 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 3-CraftableMainWeapon + m_EditorClassIdentifier: + ItemName: Basic Modular Main Weapon + Icon: {fileID: 21300000, guid: e340668a0e4bac1438e6a9d1340f8fc2, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 4 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 2 + MaxAttackDamageBonus: 9 + MinSpellDamageBonus: 2 + MaxSpellDamageBonus: 9 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 7 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset.meta new file mode 100644 index 00000000..f0ce163a --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/3-CraftableMainWeapon.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 401b486cea6d8df45924fdcf57e4b2af +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset new file mode 100644 index 00000000..c043d87f --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 4-CraftableOffWeapon + m_EditorClassIdentifier: + ItemName: Basic Modular Off Weapon + Icon: {fileID: 21300000, guid: d8db194edb7474d4d8a987ccadb2bf68, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 5 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 1 + MaxAttackDamageBonus: 6 + MinSpellDamageBonus: 1 + MaxSpellDamageBonus: 6 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 3 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0.01 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0.01 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 7 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset.meta new file mode 100644 index 00000000..9b3ed590 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/4-CraftableOffWeapon.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1c9b085cdd8bdc44bbe585bbba4c187 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset new file mode 100644 index 00000000..91a9dcfb --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 5-CraftableAccessory + m_EditorClassIdentifier: + ItemName: Basic Modular Accessory + Icon: {fileID: 21300000, guid: 1452a12a81d2d974b93e9241fc5d104b, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 6 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 1 + MaxCritChanceBonus: 4 + MinCritDamageBonus: 1 + MaxCritDamageBonus: 6 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0.01 + MaxCritChancePercentBonus: 0.02 + MinCritDamagePercentBonus: 0.01 + MaxCritDamagePercentBonus: 0.03 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.02 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 7 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset.meta new file mode 100644 index 00000000..6ddb8bf0 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/5-CraftableAccessory.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a9111f49f48fdc84ea5d6432fb240b9c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset new file mode 100644 index 00000000..c8281138 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 6-CraftableAmulet + m_EditorClassIdentifier: + ItemName: Basic Modular Amulet + Icon: {fileID: 21300000, guid: a542cad5a59326d488840d84c4306771, type: 3} + sellPricePlayer: 75 + sellPriceVendor: 1500 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 7 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 4 + MinAgilityBonus: 0 + MaxAgilityBonus: 4 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 4 + MinSpiritBonus: 0 + MaxSpiritBonus: 4 + MinVitalityBonus: 0 + MaxVitalityBonus: 4 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.05 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.05 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.05 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.05 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.05 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 1 + MaxCritChanceBonus: 4 + MinCritDamageBonus: 1 + MaxCritDamageBonus: 6 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0.01 + MaxCritChancePercentBonus: 0.02 + MinCritDamagePercentBonus: 0.01 + MaxCritDamagePercentBonus: 0.03 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.02 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 7 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset.meta new file mode 100644 index 00000000..fccefbaa --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/CraftableBases/6-CraftableAmulet.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2293ab47a0a29843bfa6efaee4202a1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Hood.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Hood.asset index bf9cb4cd..76678499 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Hood.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Hood.asset @@ -42,3 +42,52 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 0 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Orb.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Orb.asset index adeb07d9..343f8f18 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Orb.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Orb.asset @@ -42,3 +42,53 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 5 + CraftableBase: 0 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Ring.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Ring.asset index 3c897a93..ab3d1b65 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Ring.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Ring.asset @@ -42,3 +42,52 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 7 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Talisman.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Talisman.asset index e38214d0..b28c14f6 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Talisman.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Talisman.asset @@ -42,3 +42,52 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 6 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Vest.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Vest.asset index 99a65938..e1855108 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Vest.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Vest.asset @@ -42,3 +42,52 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Wand.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Wand.asset index f1148432..cdfd16af 100644 --- a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Wand.asset +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/0-Early-Items/Faithfull-Spirit Set/Faithfull-Spirit Wand.asset @@ -42,3 +42,52 @@ MonoBehaviour: ArmorPercentBonus: 0 MagicResistancePercentBonus: 0 EquipmentType: 4 + MinStrengthBonus: 0 + MaxStrengthBonus: 0 + MinAgilityBonus: 0 + MaxAgilityBonus: 0 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 0 + MinSpiritBonus: 0 + MaxSpiritBonus: 0 + MinVitalityBonus: 0 + MaxVitalityBonus: 0 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 4 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases.meta new file mode 100644 index 00000000..176249d3 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d97220b3839b01d4698de56e3ce177d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset new file mode 100644 index 00000000..a75ecde4 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 1-CraftableHelmet-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Helmet + Icon: {fileID: 21300000, guid: a6b25bb935e92234ebcfd2bcbcd3717a, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 0 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 51 + MinArmorBonus: 15 + MaxArmorBonus: 100 + MinMagicResistanceBonus: 15 + MaxMagicResistanceBonus: 100 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.02 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0.02 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0.02 + TotalUniqueStats: 12 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset.meta new file mode 100644 index 00000000..eaad12fe --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/1-CraftableHelmet-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be9886b162cf8ec408546d7efcb4ea62 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset new file mode 100644 index 00000000..36527a6f --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 2-CraftableChest-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Chest + Icon: {fileID: 21300000, guid: cb1f494c783e3d04fa51b6f6947e9053, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 1 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 51 + MinArmorBonus: 15 + MaxArmorBonus: 100 + MinMagicResistanceBonus: 15 + MaxMagicResistanceBonus: 100 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.02 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0.02 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0.02 + TotalUniqueStats: 12 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset.meta new file mode 100644 index 00000000..0725149c --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/2-CraftableChest-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b511380fccb3a84b8b057ac6a571950 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset new file mode 100644 index 00000000..57a7eeed --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 3-CraftableMainWeapon-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Main Weapon + Icon: {fileID: 21300000, guid: e340668a0e4bac1438e6a9d1340f8fc2, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 4 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 10 + MaxAttackDamageBonus: 41 + MinSpellDamageBonus: 10 + MaxSpellDamageBonus: 41 + MinCritChanceBonus: 0 + MaxCritChanceBonus: 0 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 15 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset.meta new file mode 100644 index 00000000..8b74ae43 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/3-CraftableMainWeapon-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1a978966e0f4e374ba79ba557e8f762f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset new file mode 100644 index 00000000..70cef3c8 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 4-CraftableOffWeapon-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Off Weapon + Icon: {fileID: 21300000, guid: d8db194edb7474d4d8a987ccadb2bf68, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 5 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 8 + MaxAttackDamageBonus: 31 + MinSpellDamageBonus: 8 + MaxSpellDamageBonus: 31 + MinCritChanceBonus: 1 + MaxCritChanceBonus: 5 + MinCritDamageBonus: 0 + MaxCritDamageBonus: 0 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0.05 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0.05 + MinCritChancePercentBonus: 0 + MaxCritChancePercentBonus: 0 + MinCritDamagePercentBonus: 0 + MaxCritDamagePercentBonus: 0 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0 + TotalUniqueStats: 15 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset.meta new file mode 100644 index 00000000..e8efd30f --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/4-CraftableOffWeapon-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: acd83131fcbffa9438937e119884e1dc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset new file mode 100644 index 00000000..c1b18cd3 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 5-CraftableAccessory-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Accessory + Icon: {fileID: 21300000, guid: 1452a12a81d2d974b93e9241fc5d104b, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 6 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 1 + MaxCritChanceBonus: 4 + MinCritDamageBonus: 1 + MaxCritDamageBonus: 6 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0.02 + MaxCritChancePercentBonus: 0.05 + MinCritDamagePercentBonus: 0.05 + MaxCritDamagePercentBonus: 0.1 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.1 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0.05 + TotalUniqueStats: 15 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset.meta new file mode 100644 index 00000000..158e7239 --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/5-CraftableAccessory-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f8d7d9d387f13364e89147083e476ffa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset new file mode 100644 index 00000000..72109d3b --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset @@ -0,0 +1,95 @@ +%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: e7a67ee28b6adf441814e60bcb404307, type: 3} + m_Name: 6-CraftableAmulet-Mid + m_EditorClassIdentifier: + ItemName: Standard Modular Amulet + Icon: {fileID: 21300000, guid: a542cad5a59326d488840d84c4306771, type: 3} + sellPricePlayer: 1000 + sellPriceVendor: 20000 + description: It seems to be designed with adaptability in mind, + though its effectiveness remains to be tested + 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 + ArmorBonus: 0 + MagicResistanceBonus: 0 + AttackDamagePercentBonus: 0 + SpellDamagePercentBonus: 0 + CritChancePercentBonus: 0 + CritDamagePercentBonus: 0 + MaxHealthPercentBonus: 0 + ArmorPercentBonus: 0 + MagicResistancePercentBonus: 0 + EquipmentType: 7 + CraftableBase: 1 + MinStrengthBonus: 0 + MaxStrengthBonus: 25 + MinAgilityBonus: 0 + MaxAgilityBonus: 25 + MinIntelligenceBonus: 0 + MaxIntelligenceBonus: 25 + MinSpiritBonus: 0 + MaxSpiritBonus: 25 + MinVitalityBonus: 0 + MaxVitalityBonus: 25 + MinStrengthPercentBonus: 0 + MaxStrengthPercentBonus: 0.1 + MinAgilityPercentBonus: 0 + MaxAgilityPercentBonus: 0.1 + MinIntelligencePercentBonus: 0 + MaxIntelligencePercentBonus: 0.1 + MinSpiritPercentBonus: 0 + MaxSpiritPercentBonus: 0.1 + MinVitalityPercentBonus: 0 + MaxVitalityPercentBonus: 0.1 + MinAttackDamageBonus: 0 + MaxAttackDamageBonus: 0 + MinSpellDamageBonus: 0 + MaxSpellDamageBonus: 0 + MinCritChanceBonus: 1 + MaxCritChanceBonus: 4 + MinCritDamageBonus: 1 + MaxCritDamageBonus: 6 + MinMaxHealthBonus: 0 + MaxMaxHealthBonus: 0 + MinArmorBonus: 0 + MaxArmorBonus: 0 + MinMagicResistanceBonus: 0 + MaxMagicResistanceBonus: 0 + MinAttackDamagePercentBonus: 0 + MaxAttackDamagePercentBonus: 0 + MinSpellDamagePercentBonus: 0 + MaxSpellDamagePercentBonus: 0 + MinCritChancePercentBonus: 0.02 + MaxCritChancePercentBonus: 0.05 + MinCritDamagePercentBonus: 0.05 + MaxCritDamagePercentBonus: 0.1 + MinMaxHealthPercentBonus: 0 + MaxMaxHealthPercentBonus: 0.1 + MinArmorPercentBonus: 0 + MaxArmorPercentBonus: 0 + MinMagicResistancePercentBonus: 0 + MaxMagicResistancePercentBonus: 0.05 + TotalUniqueStats: 15 diff --git a/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset.meta b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset.meta new file mode 100644 index 00000000..60ccdfdd --- /dev/null +++ b/Assets/Scriptables/Data/Resources/Items/Equippables/RevampedItems/1-Mid-Items/-CraftableBases/6-CraftableAmulet-Mid.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65a96a6b8c9196841b545beff92eee98 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drops/DropTable.cs b/Assets/Scripts/Drops/DropTable.cs index 6e6b4702..c82d69ea 100644 --- a/Assets/Scripts/Drops/DropTable.cs +++ b/Assets/Scripts/Drops/DropTable.cs @@ -67,7 +67,7 @@ public class DropTable : MonoBehaviour { instantiatedDrop = Instantiate(interactableDropPrefab, spawnPosition, this.transform.rotation); itemDrop = instantiatedDrop.GetComponent(); - itemDrop.itemDrop = guaranteedItemDrop[i]; + itemDrop.itemDrop = Item.ConvertTemplateIntoInstance(guaranteedItemDrop[i]); } if (!lootDrop) return; @@ -100,6 +100,6 @@ public class DropTable : MonoBehaviour spawnPosition.y = 0f; instantiatedDrop = Instantiate(interactableDropPrefab, spawnPosition, this.transform.rotation); itemDrop = instantiatedDrop.GetComponent(); - itemDrop.itemDrop = possibleItem; + itemDrop.itemDrop = Item.ConvertTemplateIntoInstance(possibleItem, true); } } diff --git a/Assets/Scripts/Drops/EquippableItemDrop.cs b/Assets/Scripts/Drops/EquippableItemDrop.cs index c886ae3b..d59ca724 100644 --- a/Assets/Scripts/Drops/EquippableItemDrop.cs +++ b/Assets/Scripts/Drops/EquippableItemDrop.cs @@ -5,14 +5,19 @@ using UnityEngine; public class EquippableItemDrop : Interactable { - public Item itemDrop; + public ItemInstance itemDrop; public override void Interact(bool melee) { base.Interact(melee); + Debug.Log("Interacting with item: " + this.name + " " + itemDrop.ItemName); + if (FindObjectOfType().AddItem(itemDrop)) + { + Debug.Log("Interacting with item: " + this.name + " " + itemDrop.ItemName + " found inventory and added it"); Destroy(this.gameObject); + } } diff --git a/Assets/Scripts/Interactables/FishingSpotInteractable.cs b/Assets/Scripts/Interactables/FishingSpotInteractable.cs index e1dc94b8..51becfa5 100644 --- a/Assets/Scripts/Interactables/FishingSpotInteractable.cs +++ b/Assets/Scripts/Interactables/FishingSpotInteractable.cs @@ -42,7 +42,7 @@ public class FishingSpotInteractable : Interactable if(drop != null) { - Inventory.Instance.AddItem(drop); + Inventory.Instance.AddItem(Item.ConvertTemplateIntoInstance(drop)); } Destroy(this.gameObject); diff --git a/Assets/Scripts/Items/ConsumableItemHandler.cs b/Assets/Scripts/Items/ConsumableItemHandler.cs index f9cc76d2..f5e943a8 100644 --- a/Assets/Scripts/Items/ConsumableItemHandler.cs +++ b/Assets/Scripts/Items/ConsumableItemHandler.cs @@ -10,12 +10,12 @@ public class ConsumableItemHandler : MonoBehaviour Inventory.Instance.OnItemRightClickedEvent.AddListener(OnItemRightClicked); } - private void OnItemRightClicked(Item clickedItem) + private void OnItemRightClicked(ItemInstance clickedItem) { - if(clickedItem is ConsumableItem) + if(clickedItem is ConsumableItemInstance) { if (Inventory.Instance.RemoveItem(clickedItem)) - ((ConsumableItem)clickedItem).Consume(); + ((ConsumableItemInstance)clickedItem).Consume(); } } } diff --git a/Assets/Scripts/Items/EquipmentData.cs b/Assets/Scripts/Items/EquipmentData.cs index a271d7ab..9df6448d 100644 --- a/Assets/Scripts/Items/EquipmentData.cs +++ b/Assets/Scripts/Items/EquipmentData.cs @@ -27,3 +27,28 @@ public class EquipmentData } } } + +[System.Serializable] +public class EquipmentInstanceData +{ + public EquippableItemInstance[] equippedItems; + + public EquipmentInstanceData() + { + equippedItems = new EquippableItemInstance[GameConstants.Sizes.TotalEquipmentSlots]; + + for (int i = 0; i < equippedItems.Length; i++) + { + equippedItems[i] = null; + } + } + public EquipmentInstanceData(EquippableItemInstance[] equippedItems) + { + this.equippedItems = new EquippableItemInstance[GameConstants.Sizes.TotalEquipmentSlots]; + + for (int i = 0; i < equippedItems.Length; i++) + { + this.equippedItems[i] = equippedItems[i]; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Items/InventoryData.cs b/Assets/Scripts/Items/InventoryData.cs index 147691c5..a1bbb74d 100644 --- a/Assets/Scripts/Items/InventoryData.cs +++ b/Assets/Scripts/Items/InventoryData.cs @@ -26,3 +26,30 @@ public class InventoryData } } } + + +[System.Serializable] +public class InventoryInstanceData +{ + [SerializeReference] + public ItemInstance[] inventoryItems; + + public InventoryInstanceData() + { + inventoryItems = new ItemInstance[GameConstants.Sizes.TotalInventorySlots]; + + for (int i = 0; i < inventoryItems.Length; i++) + { + inventoryItems[i] = null; + } + } + public InventoryInstanceData(ItemInstance[] inventoryItems) + { + this.inventoryItems = new ItemInstance[GameConstants.Sizes.TotalInventorySlots]; + + for (int i = 0; i < inventoryItems.Length; i++) + { + this.inventoryItems[i] = inventoryItems[i]; + } + } +} \ No newline at end of file diff --git a/Assets/Scripts/Items/PlayerDataHandler.cs b/Assets/Scripts/Items/PlayerDataHandler.cs index 15fc93d7..58b7d7d9 100644 --- a/Assets/Scripts/Items/PlayerDataHandler.cs +++ b/Assets/Scripts/Items/PlayerDataHandler.cs @@ -44,10 +44,10 @@ public class PlayerDataHandler : MonoBehaviour CoinData coinData = new CoinData(); string playerCoinKey; - EquipmentData equipmentData = new EquipmentData(); + EquipmentInstanceData equipmentData = new EquipmentInstanceData(); string equipmentDataKey; - InventoryData inventoryData = new InventoryData(); + InventoryInstanceData inventoryData = new InventoryInstanceData(); string inventoryDataKey; BuildData buildData = new BuildData(); @@ -125,18 +125,18 @@ public class PlayerDataHandler : MonoBehaviour // Character Equipment Data (equipped items) - public EquipmentData LoadCharacterEquipmentData(string playerName, string characterName) + public EquipmentInstanceData LoadCharacterEquipmentData(string playerName, string characterName) { equipmentDataKey = GameConstants.PlayerPrefsKeys.GetCharacterEquipmentDataKey(playerName, characterName); if (GameStatePersistenceManager.Instance.HasDataForKey(equipmentDataKey)) { - equipmentData = GameStatePersistenceManager.Instance.LoadData(equipmentDataKey); + equipmentData = GameStatePersistenceManager.Instance.LoadData(equipmentDataKey); return equipmentData; } else return null; } - public void SaveCharacterEquipmentData(string playerName, string characterName, EquipmentData equipmentData) + public void SaveCharacterEquipmentData(string playerName, string characterName, EquipmentInstanceData equipmentData) { equipmentDataKey = GameConstants.PlayerPrefsKeys.GetCharacterEquipmentDataKey(playerName, characterName); @@ -145,18 +145,18 @@ public class PlayerDataHandler : MonoBehaviour // Character Inventory Data (items on inventory) - public InventoryData LoadCharacterInventoryData(string playerName, string characterName) + public InventoryInstanceData LoadCharacterInventoryData(string playerName, string characterName) { inventoryDataKey = GameConstants.PlayerPrefsKeys.GetCharacterInventoryDataKey(playerName, characterName); if (GameStatePersistenceManager.Instance.HasDataForKey(inventoryDataKey)) { - inventoryData = GameStatePersistenceManager.Instance.LoadData(inventoryDataKey); + inventoryData = GameStatePersistenceManager.Instance.LoadData(inventoryDataKey); return inventoryData; } else return null; } - public void SaveCharacterInventoryData(string playerName, string characterName, InventoryData inventoryData) + public void SaveCharacterInventoryData(string playerName, string characterName, InventoryInstanceData inventoryData) { inventoryDataKey = GameConstants.PlayerPrefsKeys.GetCharacterInventoryDataKey(playerName, characterName); diff --git a/Assets/Scripts/RiftSystem/RiftRaiding/RiftRaidEnemySpawner.cs b/Assets/Scripts/RiftSystem/RiftRaiding/RiftRaidEnemySpawner.cs index a072b2da..63444586 100644 --- a/Assets/Scripts/RiftSystem/RiftRaiding/RiftRaidEnemySpawner.cs +++ b/Assets/Scripts/RiftSystem/RiftRaiding/RiftRaidEnemySpawner.cs @@ -95,6 +95,20 @@ public class RiftRaidEnemySpawner : MonoBehaviour unitDifficultySetter = spawnedEnemy.GetComponentInChildren(true); unitDifficultySetter.InitializeUnitDifficulty(unitDifficultySettings); + yield return null; + + spawnedEnemy = PhotonNetwork.Instantiate("Bosses/" + bossPrefabs[Random.Range(0, bossPrefabs.Count)].name, bossSpawnpoint.position, bossSpawnpoint.rotation); + totalEnemies++; + unitDifficultySetter = spawnedEnemy.GetComponentInChildren(true); + unitDifficultySetter.InitializeUnitDifficulty(unitDifficultySettings); + + yield return null; + + spawnedEnemy = PhotonNetwork.Instantiate("Bosses/" + bossPrefabs[Random.Range(0, bossPrefabs.Count)].name, bossSpawnpoint.position, bossSpawnpoint.rotation); + totalEnemies++; + unitDifficultySetter = spawnedEnemy.GetComponentInChildren(true); + unitDifficultySetter.InitializeUnitDifficulty(unitDifficultySettings); + yield return new WaitForSeconds(0.5f); photonView.RPC(nameof(RPC_UpdateTotalEnemies), RpcTarget.Others, totalEnemies); diff --git a/Assets/Scripts/UI/TooltipDisabler.cs b/Assets/Scripts/UI/TooltipDisabler.cs index cb704567..193e16f5 100644 --- a/Assets/Scripts/UI/TooltipDisabler.cs +++ b/Assets/Scripts/UI/TooltipDisabler.cs @@ -5,6 +5,7 @@ using UnityEngine; public class TooltipDisabler : MonoBehaviour { [SerializeField] private GameObject itemTooltip; + [SerializeField] private GameObject equippedItemTooltip; [SerializeField] private GameObject statTooltip; [SerializeField] private UIKeyBinder keyBinder; @@ -17,6 +18,7 @@ public class TooltipDisabler : MonoBehaviour itemTooltip.SetActive(isVisible); statTooltip.SetActive(isVisible); + equippedItemTooltip.SetActive(isVisible); }); } } diff --git a/Assets/Scripts/UnityEventItem.cs b/Assets/Scripts/UnityEventItem.cs index 686fb1a9..951b24e8 100644 --- a/Assets/Scripts/UnityEventItem.cs +++ b/Assets/Scripts/UnityEventItem.cs @@ -7,4 +7,9 @@ using UnityEngine.Events; [System.Serializable] public class UnityEvent_Item : UnityEvent { +} +[System.Serializable] +public class UnityEvent_ItemInstance : UnityEvent +{ + } \ No newline at end of file diff --git a/Assets/Scripts/Vendor/VendorController.cs b/Assets/Scripts/Vendor/VendorController.cs index 32c1dac9..18b37e1a 100644 --- a/Assets/Scripts/Vendor/VendorController.cs +++ b/Assets/Scripts/Vendor/VendorController.cs @@ -8,6 +8,9 @@ public class VendorController : Interactable public VendorData VendorData => vendorData; + private VendorDataInstance vendorDataInstance; + public VendorDataInstance VendorDataInstance => vendorDataInstance; + [Header("Events:")] [SerializeField] private GameEvent_VendorData onVendorInteracted; [SerializeField] private GameEvent onVendorReleased; @@ -23,6 +26,8 @@ public class VendorController : Interactable { base.Awake(); + vendorDataInstance = new VendorDataInstance(vendorData); + onVendorUIClosed.Response.AddListener(CloseInteraction); } @@ -33,7 +38,7 @@ public class VendorController : Interactable if (!melee) return; isUIOpen = true; - onVendorInteracted.Raise(vendorData); + onVendorInteracted.Raise(vendorDataInstance); } public override void OnFocused(Transform playerTransform, PlayerController playerController) diff --git a/Assets/Scripts/Vendor/VendorData.cs b/Assets/Scripts/Vendor/VendorData.cs index 8494e346..579692b6 100644 --- a/Assets/Scripts/Vendor/VendorData.cs +++ b/Assets/Scripts/Vendor/VendorData.cs @@ -14,4 +14,40 @@ public class VendorItem { public Item item; public bool soldMultipleTimes = true; +} + +[System.Serializable] +public class VendorDataInstance +{ + public List items = new List(); + + public VendorDataInstance(VendorData template) + { + for (int i = 0; i < template.items.Count; i++) + { + this.items.Add(new VendorItemInstance(template.items[i])); + } + } +} + +[System.Serializable] +public class VendorItemInstance +{ + public ItemInstance item; + public bool soldMultipleTimes = true; + + public VendorItemInstance(VendorItem template) + { + if(template.item is EquippableItem) + { + EquippableItem templateItem = template.item as EquippableItem; + this.item = new EquippableItemInstance(templateItem); + } + else + { + this.item = new ItemInstance(template.item); + + } + soldMultipleTimes = template.soldMultipleTimes; + } } \ No newline at end of file diff --git a/Assets/Scripts/Vendor/VendorUI.cs b/Assets/Scripts/Vendor/VendorUI.cs index ab8c1019..90eda065 100644 --- a/Assets/Scripts/Vendor/VendorUI.cs +++ b/Assets/Scripts/Vendor/VendorUI.cs @@ -12,7 +12,7 @@ public class VendorUI : MonoBehaviour [SerializeField] private GameEventListener_VendorData onVendorInteracted; [SerializeField] private GameEventListener onVendorReleased; - private VendorData currentOpenVendor; + private VendorDataInstance currentOpenVendor; private void Awake() { @@ -28,7 +28,7 @@ public class VendorUI : MonoBehaviour vendorUI.SetActive(false); } - private void InitializeVendorUI(VendorData vendorData) + private void InitializeVendorUI(VendorDataInstance vendorData) { for (int i = 0; i < slots.Count; i++) { @@ -41,7 +41,7 @@ public class VendorUI : MonoBehaviour } - public void OpenVendor(VendorData vendor) + public void OpenVendor(VendorDataInstance vendor) { currentOpenVendor = vendor; InitializeVendorUI(vendor); @@ -49,6 +49,7 @@ public class VendorUI : MonoBehaviour vendorUI.SetActive(true); Inventory.Instance.isVendoring = true; + Inventory.Instance.isCrafting = false; Inventory.Instance.OpenInventory(); } @@ -63,12 +64,13 @@ public class VendorUI : MonoBehaviour onVendorUIClosed.Raise(); } - private void SellItem(Item item) + private void SellItem(ItemInstance item) { if (Inventory.Instance.RemoveItem(item)) { CoinBag.Instance.ChangeAmount(item.sellPricePlayer); ItemTooltip.Instance.HideTooltip(); + EquippedItemTooltip.Instance.HideTooltip(); } } } diff --git a/Assets/Starfield Skybox/Skybox.mat b/Assets/Starfield Skybox/Skybox.mat index 4d0f8acf..70458c4b 100644 --- a/Assets/Starfield Skybox/Skybox.mat +++ b/Assets/Starfield Skybox/Skybox.mat @@ -94,7 +94,7 @@ Material: - _Mode: 0 - _OcclusionStrength: 1 - _Parallax: 0.02 - - _Rotation: 1644.4651 + - _Rotation: 6.23695 - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 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 22d431f3..2dc41ff6 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -193,19 +193,258 @@ MonoBehaviour: m_StrikethroughOffset: 18 m_StrikethroughThickness: 6.298828 m_TabWidth: 24 - m_GlyphTable: [] - m_CharacterTable: [] + m_GlyphTable: + - m_Index: 2030 + m_Metrics: + m_Width: 64 + m_Height: 9 + m_HorizontalBearingX: 11 + m_HorizontalBearingY: 9 + m_HorizontalAdvance: 86 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 64 + m_Height: 9 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 66 + m_Metrics: + m_Width: 51 + m_Height: 6 + m_HorizontalBearingX: -2 + m_HorizontalBearingY: -12 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 93 + m_Y: 10 + m_Width: 51 + m_Height: 6 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 14 + m_Metrics: + m_Width: 42 + m_Height: 43 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 50 + m_HorizontalAdvance: 50 + m_GlyphRect: + m_X: 163 + m_Y: 10 + m_Width: 42 + m_Height: 43 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 20 + m_Metrics: + m_Width: 38 + m_Height: 59 + m_HorizontalBearingX: 6 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 93 + m_Y: 35 + m_Width: 38 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 21 + m_Metrics: + m_Width: 40 + m_Height: 60 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 10 + m_Y: 38 + m_Width: 40 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 24 + m_Metrics: + m_Width: 42 + m_Height: 60 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 224 + m_Y: 10 + m_Width: 42 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 19 + m_Metrics: + m_Width: 42 + m_Height: 61 + m_HorizontalBearingX: 3 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 150 + m_Y: 72 + m_Width: 42 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 25 + m_Metrics: + m_Width: 41 + m_Height: 61 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 60 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 69 + m_Y: 113 + m_Width: 41 + m_Height: 61 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 26 + m_Metrics: + m_Width: 40 + m_Height: 59 + m_HorizontalBearingX: 4 + m_HorizontalBearingY: 59 + m_HorizontalAdvance: 48 + m_GlyphRect: + m_X: 10 + m_Y: 117 + m_Width: 40 + m_Height: 59 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 2030 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 66 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 43 + m_GlyphIndex: 14 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 20 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 50 + m_GlyphIndex: 21 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 53 + m_GlyphIndex: 24 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 48 + m_GlyphIndex: 19 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 54 + m_GlyphIndex: 25 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 55 + m_GlyphIndex: 26 + m_Scale: 1 m_AtlasTextures: - {fileID: 28268798066460806} m_AtlasTextureIndex: 0 m_IsMultiAtlasTexturesEnabled: 0 m_ClearDynamicDataOnBuild: 1 - m_UsedGlyphRects: [] - m_FreeGlyphRects: + m_UsedGlyphRects: - m_X: 0 m_Y: 0 - m_Width: 511 + m_Width: 83 + m_Height: 28 + - m_X: 83 + m_Y: 0 + m_Width: 70 + m_Height: 25 + - m_X: 153 + m_Y: 0 + m_Width: 61 + m_Height: 62 + - m_X: 83 + m_Y: 25 + m_Width: 57 + m_Height: 78 + - m_X: 0 + m_Y: 28 + m_Width: 59 + m_Height: 79 + - m_X: 214 + m_Y: 0 + m_Width: 61 + m_Height: 79 + - m_X: 140 + m_Y: 62 + m_Width: 61 + m_Height: 80 + - m_X: 59 + m_Y: 103 + m_Width: 60 + m_Height: 80 + - m_X: 0 + m_Y: 107 + m_Width: 59 + m_Height: 78 + m_FreeGlyphRects: + - m_X: 275 + m_Y: 0 + m_Width: 236 m_Height: 511 + - m_X: 140 + m_Y: 25 + m_Width: 13 + m_Height: 37 + - m_X: 201 + m_Y: 79 + m_Width: 310 + m_Height: 432 + - m_X: 201 + m_Y: 62 + m_Width: 13 + m_Height: 449 + - m_X: 59 + m_Y: 28 + m_Width: 24 + m_Height: 75 + - m_X: 119 + m_Y: 142 + m_Width: 392 + m_Height: 369 + - m_X: 119 + m_Y: 103 + m_Width: 21 + m_Height: 408 + - m_X: 0 + m_Y: 185 + m_Width: 511 + m_Height: 326 + - m_X: 59 + m_Y: 183 + m_Width: 452 + m_Height: 328 m_fontInfo: Name: Liberation Sans PointSize: 86 @@ -237,7 +476,22 @@ MonoBehaviour: m_KerningTable: kerningPairs: [] m_FontFeatureTable: - m_GlyphPairAdjustmentRecords: [] + m_GlyphPairAdjustmentRecords: + - m_FirstAdjustmentRecord: + m_GlyphIndex: 20 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: -6.390625 + m_YAdvance: 0 + m_SecondAdjustmentRecord: + m_GlyphIndex: 20 + m_GlyphValueRecord: + m_XPlacement: 0 + m_YPlacement: 0 + m_XAdvance: 0 + m_YAdvance: 0 + m_FeatureLookupFlags: 0 fallbackFontAssets: [] m_FallbackFontAssetTable: [] m_CreationSettings: @@ -319,9 +573,9 @@ Texture2D: m_DownscaleFallback: 0 m_IsAlphaChannelOptional: 0 serializedVersion: 2 - m_Width: 0 - m_Height: 0 - m_CompleteImageSize: 0 + m_Width: 512 + m_Height: 512 + m_CompleteImageSize: 262144 m_MipsStripped: 0 m_TextureFormat: 1 m_MipCount: 1 @@ -345,8 +599,8 @@ Texture2D: m_LightmapFormat: 0 m_ColorSpace: 0 m_PlatformBlob: - image data: 0 - _typelessdata: + image data: 262144 + _typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a080400000000000000000000000000020507080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0906010000000000000000000000000000000000000000000000000000000000000306060808080808080605030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607090c0e1011121313131211100e0b0807050200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b0500000000000000000003090e12141519191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191816120d07000000000000000000000000000000000000000000000000000000060b0f121314141414141413120f0b0600000000000000000000000000000000000000000000000000000000000000000000000000000003070c10131416191b1d1e1f1f201f1f1e1c1a181514120e0905020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c17100800000000000000060d141a1e2122262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262525221e181109010000000000000000000000000000000000000000000000020a11171c1f20212121212121201f1b17110a020000000000000000000000000000000000000000000000000000000000000000000000060b1012181d1f202325282a2b2b2c2d2c2c2a29272421211e1a14110e080200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a11080000000000060f181f262a2d2e3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232312e29231b130900000000000000000000000000000000000000000000020b141c22282b2d2e2e2e2e2e2e2d2b27221b140b020000000000000000000000000000000000000000000000000000000000000000020a11171c1f24292c2d30323437373839393938373634312e2d2a25201e19140e090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a1005000000030d18212931363a3b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3a342d251b11070000000000000000000000000000000000000000000a141d262d3338393b3b3b3b3b3b3937332d261d140a00000000000000000000000000000000000000000000000000000000000003090c141c23282b2f35383a3c3f41434445464646454443413e3b3a36312d2a251f1a140d0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000009141f29333b4246484c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a463f372d23180d010000000000000000000000000000000000000006111c262f383f444647474747474746443f382f261b110600000000000000000000000000000000000000000000000000000000060d141a1e262e34383a404547494c4e50515252535252514f4d4b4846423b3936302a251f170e0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c100400020e1a26313b454d535559595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959585651493f34291e1206000000000000000000000000000000000000000b17222d38424a505354545454545453504941382d22170b000000000000000000000000000000000000000000000000000000070f181f262a30383f44464b515356585b5d5e5e5f605f5f5d5c5a5754534d4746413b3630292018120b03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d2014080005121e2a36424d575f616565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565625b51463a2e221609000000000000000000000000000000000000030f1c28333f4a545b60616161616161605b53493f33271b0f0300000000000000000000000000000000000000000000000000081019212931363e424a5053555d606365676a6a6b6c6c6c6b6a696764615e5754524d46423b3329241d150d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272726d62564a3e3125180b00000000000000000000000000000000000006121f2b3844505b666c6e6e6e6e6e6e6c655b5044372b1f120500000000000000000000000000000000000000000000000008111a222b333b424650545c6063676d6f727476777879797978777674716e6966615e56524d453f352f271f160d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7265584c3f3225190c0000000000000000000000000000000000000613202d394653606c787a7a7a7a7a7a776c605346392d2013060000000000000000000000000000000000000000000000060f1a232c343d454d535a61666d7075797c7f81838485858685858482807e7b77736e68615e575145403931281f160c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c86796c5f5346392c20130000000000000000000000000000000000000814212e3b4754616e7a8787878787877a6d6154473a2e21140700000000000000000000000000000000000000000000030d18212c353e464e575f616c70787d8185898b8e90919192939292908f8d8a87847f7b746e69625b514b433a31281e150b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989286796c5f5346392c20130000000000000000000000000000000000000814212e3b4754616e7a8794949494877a6d6154473a2e211407000000000000000000000000000000000000000000010b151f2a333e474f5860696e767d84898e9298989a9d9d9e9f9f9f9e9d9c9a9795918c86817b726d605d554b433a30271d12070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9286796c5f5346392c20130000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000007121d27313c454f59616a6f7b828a91969b9fa2aaa7a7a5a3a2a2a3a4a5a8a7a7a09d99928e867f756d675d554b42392e23180c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9e9184776b5e5144382b1e110613202c3946535f6c7986929facada094877a6d6154473a2e211407111e2a3744515d6a7784909daab0a3978a7d7064574a3d3124170a000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939286796c5f5346392c20130000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000000000c18242f39434d57616b707c858f949ea0a8aca8a19e9a989695959697989c9fa2aaaba39f98928b81796d675d544b4034281e150a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca3978a7d7064574a3d3124170a000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686796c5f5346392c20130000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000004101d2935404b555f69707d8692979fa6aca69f9c96918e8b898988898a8c8f92989ea1a8aaa29f938f83796d665c51453d30261c1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7064574a3d3124170a000916232f3c4855616b707979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746a5e5145382b1f120000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000006131f2c3845515d676e7b869298a1a9aaa29f948f8984817e7d7c7c7c7d7f82868b91969da4aea59e958f82786d60594f42382e23170c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7064574a3d3124170a000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a62584d4135291d100000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e2114070000000000000000000000000000000000000004111d2935414b55606d79839098a2aaa9a198928a827c787472706f6f70717275797e848d929fa4aba79f948d80746b60544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7064574a3d3124170a0004101c28333e474f5557606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605f5e5850473c3125190d0000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e211407000000000000000000000000000000000000000613202c3945515d67737f8c95a0aaaba19792867e76706c6565636262636465676d7279808b9399a4afa69d92897d70665c5044382c1f150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2a36434f5b67717779797979797979706c6155493c3023160a00000b16212c353e44484a5353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353514d473e352a1f14090000000000000002050708080808080808080814212e3b4754616e7a8794a1a094877a6d6154473a2e211408080808080808080807050200000000000000000714212d3a4754606d7a85929fa7afa49992857c716c63605b535656555657555c60676d747f87939fa6aea49d9184786d6053463c31261b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5044392d201408000005101a232c33383c3d464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464645413c352c23190e03000000000002090e121415151515151515151515212e3b4754616e7a8794a1a094877a6d6154473a2e211515151515151515151514120e0902000000000005111e2a36424d5766727f8c97a2adaa9f93877d706a615a5350494a4949494a4b51555c606d73808c949fabaca0958b7e7164584e43372b1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010b17222e39444d555b5d60606060606060575550483e33281c100400000008111a21282c2f3039393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393835312a231a11070000000000050d141a1e2021212121212121212121212e3b4754616e7a8794a1a094877a6d6154473a2e2121212121212121212121201e1a140d05000000000714202d3a46525e697784909da9a8a2988d80746b60585046443f3d3c3c3d3e40454b515b606d7882909ca6b0a89d9083776a5f53473a2e2115060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111d27323b444a4f51535353535353534a49443e362c22170b00000000000810161c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b29251f1911080000000000050f171f252a2d2e2e2e2e2e2e2e2e2e2e2e2e3b4754616e7a8794a1a094877a6d6154473a2e2e2e2e2e2e2e2e2e2e2e2e2d2a251f170f050000000814212e3b4754616e7b8795989a9b9c92857a6d61594f463e37332d2f2f302e34394045505c666f7c88949fabaca095887b6f6255483c2d22170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b16202932393f4344464646464646463d3c39332c231a1005000000000000050b1014161720202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201f1d19140e070000000000020d17212930363a3b3b3b3b3b3b3b3b3b3b3b3b3b4754616e7a8794a1a094877a6d6154473b3b3b3b3b3b3b3b3b3b3b3b3b3a36302921170d0200000b1825323e4b5865717e888a8b8d8e908e8174685e52473d342b272223222323282f343f4a545f6a76828f9cacb1a7998c7f736653493f33271b0f0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040e1720272e3336373939393939393931302d28221a11080000000000000000000407090a131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131312100d090300000000000009141f29333b4246484848484848484848484848484854616e7a8794a1a094877a6d6154484848484848484848484848484846423b33291f140900000714212d3a4754606d797c7d7f808183847d7063564c41352b221b17161616181d232e38424e5864717d8a9aa4afa99c8f8276655b5044372b1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050e161d22272a2a2d2d2d2d2d2d2d2423201c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a25303b454d52545454545454545454545454545454616e7a8794a1a094877a6d61545454545454545454545454545454524d453b30251a0e02000613202c3945515d676d6f707273757678706b6054443a30231a0f0b0609070c121c26303c4754616d7a86939facab9f9285796c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11171a1d1e20202020202020171614100b05000000000000000000000005080a0b1313131313131313131313131313131313131313131313131313131313131313131313130f0f0d09040000000000000000000000000000000000000005121e2a36424d575e616161616161616161616161616161616e7a8794a1a094877a6d616161616161616161616161616161615e574d42362a1e12050004111d2935414c555d606264656768696b6360594f4432291e110800000000010a14202d3946525e687784919daaaea298877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060b0e1011131313131313130a0a08040000000000000000000000060c111517182020202020202020202020202020202020202020202020202020202020202020202020201c1b191510090200000000000000000000000000000000000714202d3a46525e696e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e7a8794a1a094877a6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e695e52463a2d20140700010d19242f3a434c51545557585a5b5d5e56544f473d3320170d00000000000005111d2a36414c566875828e9ba8b3aa95897c6f6256493c2f2316090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000911171d2124252d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292825211b140c03000000000000000000000000000000000815212e3b4854616e7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7c8995a2a295887c7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b7b6e6154483b2e211508000008131e28313a414547494a4c4d4e50514948443d352b210e05000000000000010d192530414e5b6774818e9aa7b0a3968a7d7063574a3d3024170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080c0e0f13131313131313131313131313131313131313131313131313131313131313131313131313130f0e0c0804000000000000000000000000000000000000000000000000000000000000000009121b22292d30313939393939393939393939393939393939393939393939393939393939393939393939393635312c261e150c02000000000000000000000000000000121f2b3845525e6b788487878787878787878787878787878787898e99a4a4988e888787878787878787878787878787878784786b5e5245382b1f120000010c161f282f35393a3c3d3f404243453d3b38332b23190f0000000000000000081a2733404d5a6673808d99a6b0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002090f14181b1c20202020202020202020202020202020202020202020202020202020202020202020202020201c1b18140f0902000000000000000000000000000000000000000000000000000000000006111b242d34393d3e46464646464646464646464646464646464646464646464646464646464646464646464642413d3730271e1409000000000000000000000000000000121f2b3845525e6b7885919494949494949494949494949494949599a0aaaaa098959494949494949494949494949494949184786b5e5245382b1f12000000040d161e24292c2d2f313234353638302f2c272119110700000000000000000d1a2633404d596673808c99a6b1a4978a7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c131a202527282d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282725201a130c03000000000000000000000000000000000000000000000000000000000c17222d363e45494b5353535353535353535353535353535353535353535353535353535353535353535353534f4d49423930261b10040000000000000000000000000000121f2b3845525e6b7885919ea1a1a1a1a1a1a1a1a1a1a1a1a1a1a2a4aab2b2aaa4a2a1a1a1a1a1a1a1a1a1a1a1a1a1a19e9185786b5e5245382b1f1200000000040c13191d202122242527282a2b252423211c170d0801000000000000000e1b2734414e5a6774818d9aa7b0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c151e252c31343539393939393939393939393939393939393939393939393939393939393939393939393939393534312c251e150c02000000000000000000000000000000000000000000000000000005111d29343e485056586060606060606060606060606060606060606060606060606060606060606060606060605c5a544c42372c2115090000000000000000000000000000121f2b3845525e6b7885919e9f9f9f9f9f9f9f9f9f9f9f9f9f9fa1a3a8b0b0a8a3a09f9f9f9f9f9f9f9f9f9f9f9f9f9f9e9185786b5e5245382b1f12000000000008121a22282d303132323232323231302d282219130c04000000000006121e2b37424d576875828f9ba8b4aa96897d7063564a3d3023170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131e272f373d4042464646464646464646464646464646464646464646464646464646464646464646464646464642403d372f271e130900000000000000000000000000000000000000000000000000000815212d3945505a62646c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69655e54493d3125190d0000000000000000000000000000121f2b3845525e6b78849193939393939393939393939393939394979ea8a89e97949393939393939393939393939393939185786b5e5245382b1f120000000005101a242c33393c3e3f3f3f3f3f3f3e3c393329241e16100c0709060b1117232d3a47535f697884919eabaea398887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f1a252f3941484d4f53535353535353535353535353535353535353535353535353535353535353535353535353534f4d4841392f251a0f04000000000000000000000000000000000000000000000000000a1724303d4956626c717979797979797979797979797979797979797979797979797979797979797979797979797570655a4d4135281b0f0000000000000000000000000000121f2b3845525e6b788486868686868686868686868686868686878c97a3a3978c878686868686868686868686868686868684786b5e5245382b1f12000000000b17222c363e44494a4b4b4b4b4b4b4a49453e352f281f1c18171616171b222935404b55616e7b8896a1acac9f9286796d6053463a2d201307000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202c37414b53595b60606060606060606060606060606060606060606060606060606060606060606060606060605b59534b41372c201408000000000000000000000000000000000000000000000000000b1825313e4b5864717e8686868686868686868686868686868686868686868686868686868686868686868686868275695c4f4236291c0f0000000000000000000000000000111e2a3743505c687278797979797979797979797979797979797a8794a1a094877a797979797979797979797979797979797872685c5043372a1e1100000004101c28333e4850555758585858585857555045413a312c282323222322282d333d45515d67727f8c99a8b2a99d908376665c5144382c1f1206000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825313d48535d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c68655d53483d3125180c000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b939393939393939393939393939393939393939393939393939393939393939393938f8275695c4f4236291c0f00000000000000000000000000000f1b2834404b5660686b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6e7a8794a1a094877a6d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6860564b4034281b0f0000000814212d3944505a616465656565656564615a514c433e38342e302f302d33383f44505a606d7985929eabb1a7998c807366544a4034281c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734404d59656f757979797979797979797979797979797979797979797979797979797979797979797979797979756f65594d4034271b0e000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b979f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9c8f8275695c4f4236291c0f00000000000000000000000000000b17232f3a454e565c5e6060606060606060606060606060616e7a8794a1a094877a6d6160606060606060606060606060605e5c564e453a2f23170b0000000a1623303c4955616c71727272727272716c605d554f4645403e3d3c3c3d3f44495059616c73808d97a1adab9f95887c6f6255483c2e23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b68758286868686868686868686868686868686868686868686868686868686868686868686868686868175685b4f4235281c0f000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4a5a5a5a5a5a5a5a5a5a5a5a7a9aeacacacafa9a7a5a5a5a5a5a5a5a5a5a5a59c8f8275695c4f4236291c0f000000000000000000000000000007121e28333c454b50525353535353535353535353535354616e7a8794a1a094877a6d61545353535353535353535353535352504b453c33281e12070000000b1724313e4a5764717e7e7e7e7e7e7e7d756d67615953514b4b4a49494a4a50535b606b707e88939fa9b0a69d9083766a5f53473b2e1c120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9393939393939393939393939393939393939393939393939393939393939393939393938e8175685b4f4235281c0f000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b979898989898989898989898989a9da4aebaafa59d9a9898989898989898989898988f8275695c4f4236291c0f0000000000000000000000000000010c17212a333a4043454646464646464646464646464754616e7a8794a1a094877a6d6154474646464646464646464646464543403a332a21170c01000003101d2a3643505d6976838b8b8b8b8b8b8a817a706b64605c545756555657545b60656c727d86929aa4afaa9f948a7d7064584e43372b1f0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9b9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b8b8b8b8b8b8b8b8b8b8b8b8b8b8d929da9b5a99d938e8b8b8b8b8b8b8b8b8b8b8b8b8b8275695c4f4236291c0f000000000000000000000000000000050f1821282f34373839393939393939393939393b4754616e7a8794a1a094877a6d6154473a39393939393939393939393837342f2821180f05000000030f1c2936424f5c6975828f9898989898938e847d76706d6666646362636465666c71787f879298a2acaca2988f82766c6155463c32261b0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875828e9ba8acacb2adaba5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59b8e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000815222f3b4855626e7c7f7f7f7f7f7f7f7f7f7f7f7f7f7f808d9aa7b4a79a8e807f7f7f7f7f7f7f7f7f7f7f7f7f7d7063574a3d3024170a00000000000000000000000000000000060f171e23282a2b2d2d2d2d2d2d2d2d2d2d2e3b4754616e7a8794a1a094877a6d6154473a2e2d2d2d2d2d2d2d2d2d2d2b2a28231e170f0600000000020e1b2835414e5b6874818e9ba5a5a5a59e96918a837d79767271706f6f707275787d838b9299a2aaafa49a92867b6e615a5044342a20150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1c2835424f5b6875818e9babb5b2a8a19e98989898989898989898989898989898989898989898989898989898988e8275685b4f4235281c0f000000000000000000000000000000000000000000000000000814212e3a47535f6a6e72727272727272727272727272727d8a96a3b0a3978a7d72727272727272727272727272706b6155483c2f2316090000000000000000000000000000000000050c12171b1e1f202020202020202020212e3b4754616e7a8794a1a094877a6d6154473a2e212020202020202020201f1e1b17120c050000000000010e1a2734414d5a6774808d9aa7b1b4aea8a19e94908a85827f7e7d7c7c7d7f82858a90959fa3ababa39f93887e71695f53473e3322180e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2734404d5a6773808d99a3aeada196918b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8175685b4f4235281c0f0000000000000000000000000000000000000000000000000006121e2b37424e575f6265656565656565656565656565707d8a96a3b0a3978a7d706565656565656565656565656361594f44382c20140700000000000000000000000000000000000001070b0f1112131313131313131314212e3b4754616e7a8794a1a094877a6d6154473a2e2114131313131313131312110f0b0701000000000000000d1a2633404d596673808c99a6b4aaa29f9a9f9f9c98928f8c8a8988898a8b8e92979da0a7aea8a199928b7f726c61574d42352c221006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b86929faaab9e91847f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7d7063564a3d3023170a00000000000000000000000000000000000000000000000000020e1a26313c454e535558585858585858585858585863707d8a96a3b0a3978a7d7064585858585858585858585857554f473e33281c1004000000000000000000000000000000000000000000020405060606060606060814212e3b4754616e7a8794a1a094877a6d6154473a2e21140706060606060606050402000000000000000000000c1926323f4c5965727f8c98a5aea298928d939aa0a29f9c999796959697989b9ea1a9acaba39f9691877f726d625a50453c31231a1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535e6974818e98a2ada196887c7272727272727272727272727272727272727272727272727272727272706b6054483c2f22160900000000000000000000000000000000000000000000000000000915202a333c4247484c4c4c4c4c4c4c4c4c4c4c5763707d8a96a3b0a3978a7d7064574c4c4c4c4c4c4c4c4c4c4a48443e352c21160b00000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000b1825313e4b5864717e8b97a4ab9f9286818890959b9fa3aba4a3a2a2a3a5a8a9a7a8a19e99928d847d716d625b51483e332a1f1108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d57616e7b86929fa8a89c8f82766c6565656565656565656565656565656565656565656565656565656360594f44382c2014070000000000000000000000000000000000000000000000000000030e18212a31373a3b3f3f3f3f3f3f3f3f3f3f4a5763707d8a96a3b0a3978a7d7064574a3f3f3f3f3f3f3f3f3f3d3c38332c231a100500000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000a1724313d4a5764707d8a97a3ac9f9286797c83898e9299999c9d9e9f9f9f9e9d9b9896918c86807a706b625a51493f362c21180e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a25313b46525e6973808c96a0ac9f948b7e716a5f5658585858585858585858585858585858585858585858585856544f473d33271c1004000000000000000000000000000000000000000000000000000000060f1820262b2e2f3232323232323232323d4a5763707d8a96a3b0a3978a7d7064574a3d3232323232323232302f2c28211a11080000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000a1623303d495663707c8996a3afa399867a6f787d82868a8c8f909192929291908e8b8884807b736d68605950483f372d241a0f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2a36424d57606d7984919aa4a69f92867c6e685d554b4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4a48443d352b21160b0000000000000000000000000000000000000000000000000000000000060e151a1e21222525252525252525303d4a5763707d8a96a3b0a3978a7d7064574a3d31252525252525252423201c161008000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000916222f3c4955626f7c8895a2b5ab94877b6e6c70757a7d808284848586858583817f7c78736e68605d564f473f362d251b12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e1a25303b45515d67707d88939fa6a29891847a6d675c544b423f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3d3c38332b231a0f0500000000000000000000000000000000000000000000000000000000000003090e1214151919191919191924303d4a5763707d8a96a3b0a3978a7d7064574a3d3124191919191919171614100b0500000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8794a1a094877a6d6154473a2e21140700000000000000000000000000000000000000000815212e3b4854616e7b8794abb5a295887b6f6263686d7073767778797978787674726f6a66615e56524c433d352d241b13090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2935404b55606b73808d949fa8a0968f82796d665c544b433a323232323232323232323232323232323232302f2c27211a1108000000000000000000000000000000000000000000000000000000000000000000020608080c0c0c0c0c0c1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170c0c0c0c0c0a090704000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a87949f9f94877a6d6154473a2e21140700000000000000000000000000000000000000000714212d3a4754606d7a8799a4afa296897c6f63565d606366696a6b6c6c6c6b6a6865625f5854524d45413a312b231b12090100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c18242f39434f59606d78829096a0a89f948f82786d665d554c443b332b2525252525252525252525252525252322201c160f08000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8792929292877a6d6154473a2e21140700000000000000000000000000000000000000000613202d394653606c7986939faca3968a7d706357525457595c5d5e5f5f5f5e5d5b5855534e4746413b352f281f1911090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27313d44505c666d7a849197a1a69e948f81786d675d564d453d3528231c141919191919191919191919171614100b0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8786868686877a6d6154473a2e211407000000000000000000000000000000000000000005121f2b3744505b657885929faba4978b7e7164584b474a4d4f515152535252504e4c4947433c39363029241e160d070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b151f28343f4a545e686e7b859298a2a69e938f82796d685f574f473e342e261e160d0c0c0c0c0c0c0c0c0c0a090704000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3946525e687579797979797975685e5246392d2013070000000000000000000000000000000000000000030f1b27333f495e6b7884919eaba5988b7f7265584c3f3d404344454646454543413f3c3b37322d2a251f19130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030d17232e38424c565f696f7c869299a3a59e948f827a6e69605950443f38302820180f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111e2a36414c565e616c6c6c6c6c6c615e564c4135291d11050000000000000000000000000000000000000000000b17222d44505d6a7783909daaa6998c7f7366594c403333363738393939383735322f2e2b26201e19140d080b09050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c26303a444d57606a707d879298a2a69e9490847b6f6b625a504a423a322a2119110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303b444c52545f5f5f5f5f5f54524c443a3025190d01000000000000000000000000000000000000000000061d293643505c6976838f9ca9a69a8d8073675a4d403427292a2b2c2c2c2b2a282522211f1b1919191919181715110c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a151e29323c454e58616b707d869298a2a69f9691857d716c605c544c443c332b2317110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141e29323b4146475353535353534746413a32281e1308000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8a79a8e8174675b4e413428252525252525252525252525252525252525252524211d1711090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c17202a333d464f59616b707d869298a1a8a09792877e746d665d564d453d3527221b140b0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1720293036393b4646464646463a3935302820160c02000000000000000000000000000000000000000000020e1b2835414e5b6874818e9ba7a89b8f8275685c4f4235323232323232323232323232323232323232323232312e29221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e18212b343e474f59616b707d8691969fa7a199928b80786d685f574f473f332d261d150c03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e171e252a2d2e3939393939392e2d29251e160e0400000000000000000000000000000000000000000000010d1a2734404d5a6773808d9aa6a99c8f8376695c50433f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3d3a342d241b11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f19222c353e474f59606b6f7c8490959ea5a39f928d827a6e69605950443f382f271e150d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191e20212c2c2c2c2c2c21201d19130c040000000000000000000000000000000000000000000000000d192633404c5966737f8c99a6aa9d9083776a5d504c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b4a453f362d22170c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101a232c353e474f59606a6f7a838f939fa4a49d948f847b706b625a5049413930271f160d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d1114142020202020201413110d0802000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5aa9e9184776b5e5858585858585858585858585858585858585858585858585650483f34291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a232c353d474f585f686e79818c939aa2a69f9691857d716c605b534a423931281f160d04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001050708131313131313070705010000000000000000000000000000000000000000000000000000000b1825313e4b5864717e8b97a4ab9f9285786565656565656565656565656565656565656565656565656565625a50453a2e2115090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008111a232b353d464e565e676d7780889298a0a8a09792877e736c655c544b433a31281f160c030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a97a3ac9f93867872727272727272727272727272727272727272727272727272716c62564a3d3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000081119232b343c444d555d656c737e8691969fa6a299928b80776d665d554b433a31281e150a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000000000000000010507070b0e101212131312110f0d0a0706040000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c8996a2afa4998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7165584b3e3225180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071019222a323b434b535b606c707c848f949da4a39f928d81786d675d554b433a30261c110600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000003080d111314181b1d1e1f20201f1e1c1a171413100c070100000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b8895a2b5ab9b918c8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b85786b5f5245382c1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000071018202931394149505a616a6f7a828d929fa4a49c938e82796d675d554b42382e23171006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000060b0f13191d20212427292b2c2c2c2c2b292724201f1d18120f0a040000000000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8794abb5ada39b989898989898989898989898989898989898989898989898989285786b5f5245382c1f120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e171f282f383f4450585f686d78808b9399a3a59e948f82796d675d544a3f342822180b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000000000020a11171b1f25292d2e3134363839393938383633302d2c29241d1b150e0903000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a8799a3afacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a59e9285786b5f5245382c1f12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d161d262d333e464e565d666d747f879298a2a69e949082796d665c50443f342a1d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000060b141b22272b3035393a3e414345454646454442403d3a38352f2b27201a140d050000000000000000000000000000000000000000000000000000000000000613202c3945515d677986929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9e9285786b5f5245382c1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b141b2227343c444c545c606d727e869298a2a69f948f82786d605a50463c2f261c110600000000000000000000000000000000000000000000000000000000000000000000000002070a0c0d0908060a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000000000020a11171d262d33373a4146474b4e505152535352514f4d4a4745403937322a251f170f08000000000000000000000000000000000000000000000000000000000004111d2935414b556b7885929393939393939393939393939393939393939393939393939393939393939285786b5f5245382c1f120500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117222a323a424a505b626c717d869298a2a69f948e81746d62584e42382d22170b0000000000000000000000000000000000000000000000000000000000000000000000070d131619191515120f1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000030b141b22272f383f44464c5254575a5c5e5f5f5f5f5e5c5a5753514b47433d363129211a120a01000000000000000000000000000000000000000000000000000000010d18242f44515e6b7784868686868686868686868686868686868686868686868686868686868686868685786b5f5245382c1f1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000061018202830383f44515a616b707d869299a4a69d938b7e716a5f544a3f33281d12070000000000000000000000000000000000000000000000000000000000000000010a12191e23252622211f1b1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000000000030c151d262d333d41495053565e616467696b6c6c6c6b6b696663605d55544e46423b332c241c130a01000000000000000000000000000000000000000000000000000000071d2a37434f5c67727779797979797979797979797979797979797979797979797979797979797979797873685d5044372b1e110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e161e262e343f485059606b707e87939fa6a59f92867c6f665b5044392e23180c00000000000000000000000000000000000000000000000000000000000000000a131c242a2f32332f2e2b262024303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000000020c151e272f383f444e535b6063686d7174767878797978777573706d67626058534d453e362e251c130a0000000000000000000000000000000000000000000000000000020f1b27333f4b5660676b6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6861574c4034281c0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000040607080707050100040c141c2328363e474f59616c727f8c949faaa3989083786c60554b4034281c100400000000000000000000000000000000000000000000000000000000000007121c252e353b3e403c3b37322a24303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000a141e2730394149505860656c70767a7e818384858686858482807d79746f6a615e57504840372e251c120900000000000000000000000000000000000000000000000000000b17232e3a444e565c5e60606060606060606060606060606060606060606060606060606060606060605f5d574f453b2f24180c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020608080e070c101313151413110d0802020a1117242c353d47505a606c77828f98a2aa9f958b7e71675c5145382c1f14080000000000000000000000000000000000000000000000000000000000020d19242e3740464b4c4847433c3429303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000000006111c263039424a535b606a6f787d82868a8d8f9192929292918f8d8a86817c756e69615a524a40372e241b0f060000000000000000000000000000000000000000000000000006121d28323c444b4f51535353535353535353535353535353535353535353535353535353535353535352504c453d33291e130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e1214151a1c181c1f202121201d19130c050006121a232b353e44505b656e7b86929faaa79e9184796d6053463b3025190d010000000000000000000000000000000000000000000000000000000007131e2a35404952575955534e463f35303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000000030d17232e38424a545c656c737c838a8f93999a9c9e9f9f9f9e9e9c9998928e89827b716c635c524940362d22180b02000000000000000000000000000000000000000000000000010c16202a323a3f434446464646464646464646464646464646464646464646464646464646464646464544403b332b21170d020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e151a1e2122272823282c2d2e2e2d2a251e160e05000811192327333f49535e69737f8c98a2ada1968b7e7164564c41362a1e1105000000000000000000000000000000000000000000000000000000000a16232f3b46525b6366625f585146413a3d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000000010b151f28343f4a545c666d777f8890959c9fa4aba8a5a3a2a2a3a5a8aaa39f9b938f867e736e635b52483e342a1d140a00000000000000000000000000000000000000000000000000040e1820282e33373839393939393939393939393939393939393939393939393939393939393939393837342f2921190f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060f181f262b2d2e34352e34383a3b3a3936302820160c0200071117222d38414d57606d7a86929faca89c908376685e5246392d201407000000000000000000000000000000000000000000000000000000000c1925323e4b57636d736f6a625b524c443d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000000000007121d27313944505c666d78818c939a9fa7a9a29f9b9896959596989b9fa2aaa59e98928a80736e635a50463c2f261b110600000000000000000000000000000000000000000000000000060e161d23272a2b2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2b28241e170f070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e18212a31373a3b414243404546484746413a32281e1308000006111b262f3b45525d6875828e9ba8ac9f93877a6e6154473b2e211408000000000000000000000000000000000000000000000000000000000d192633404c5966737f7c726d615d564f444a5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000c18232f39434f59606d78818e939fa4aaa29f97928e8b898888898b8e92989fa3aaa29f928c80736c61584e41382d22170b0000000000000000000000000000000000000000000000000000040c12171b1d1e20202020202020202020202020202020202020202020202020202020202020201f1e1c18130d0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009151f2a333c4247484d4f504b51535454524c443a3025190d0100000a141d2935414c5664717e8b97a4afa49a8a7e7164574b3e3124180b000000000000000000000000000000000000000000000000000000020f1c2835424f5b687581867f756d686059504a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000004101c2934404b55606b73808d939ea5a7a098928c85817e7c7c7c7d7f82868d9299a1a8a49c928b7e716a5f53493f33271c1106000000000000000000000000000000000000000000000000000001060b0f1111131313131313131313131313131313131313131313131313131313131313131312110f0c0702000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e1a26313c454d53555a5b5c555c6061615e564c41362a1d11050000020b19242f3c4955626f7c8895a2b6ac998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e8b827a6f6b605c545763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000006131f2c3845515c67707d88939fa5a7a09590857f797572706f6f7072757a80869196a1a9a49f92867c6e655b5044382e23170c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e2b37424d575f616768696a676d6e6d685e5246392d2013080000000814212e3b4754616e7a8794a1ada89b8e8175685b4e4235281b0f020000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e938f847d736d665e5763707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000004111d2935414c55606d7984919aa4a9a09590837b726d67656362626365686d737c849197a1aba2989083786c60544a3f34281c10030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212d3a47535f696e7475767778797b7a6d6154473a2f24190d0100000714202d3a4753606d7a8693a0ada89c8f8275695c4f4236291c0f030000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e9b96918780786e696163707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000613202c3945515d67737f8c96a1aca29790837a6e69605d5556555556565d606a6f7b859199a3aa9f948b7e71665c5044382c1f15090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b80828384858687807367554c4135291d120c070a0a15212e3b4854616e7b8794a1aea89c8f8275695c4f4236291c0f030000000000000000000000000000000000000000000000000000020f1c2835424f5b6875828e9ba199928c827b706c63707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000000000000000000000000000714212d3a4754606d7a85929fa8a89f92857b6e685e57514b4949494a4c52585f696f7d87929faaa69e9184786d6053463c31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3c4855626f7b888e8f9192978f8276675d5145392f241d181616141b222f3c4955626f7c8895a2afa89b8e8275685b4f4235281c0f020000000000000000000000000000000000000000000000000000020f1c2835424f5b6875818e969ea39f9490857d746d707d8a96a3b0a3978a7d7064574a3d3124170a000000000000000000000000000000000007131f2c38434e5865727f8c98a2aca0968b7f72695f564d45403d3c3c3d41454e57606b74808d98a2aca1968a7e7164574d42372b1e120600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929c9d9f9f92867a6d60554b40352f2923232324262d36424d5765717e8b98a4b1a69a8d8073675a4d4034271a0d01000000000000000000000000000000000000000000000000000000091623303c4956636f7d848e939fa29f97928a8079707d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000915222e3b4854606a7784919eaaab9e9184786d60574d443b352f2f2f30353c454f59616d7a86929faca89d908376695f53473a2d211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844515c6676828f9caaaba2988b7e72675d51454039342f3030312f383f46525e6975818e9ba8b3a9988b7e7265584b3f3225180c000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f7a818a92989fa29e928d837b7d8a96a3b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000916232f3c4956626f7c8996a0aca3998b7f72665c50453b32292422222429333d46525d6874808d9aa8ab9f95887b6e6155483b3025190d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a5465727e8b98a2aeaa9e9184796d605b514b45403e3d3d3d3f4149505b616e7b86929facada197887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000713202c38444f5960686d757e8590949fa39d959086818e9ba8b0a3978a7d7064574a3d3124170a0000000000000000000000000000000005121e2a36424d576774808d9aa8ac9f92867a6d61544a3f33292018161619212935414c56626f7c8895a0aca7998c807366564c4135291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3a4754616d7a86929fa9aca1968d80746d605d55514b4a49494a4b4f535b606d74818e98a3aeab9e9285796d6053463a2d20130700000000000000000000000000000000000000000000000000000000030f1b27323d474f565d606c717b828c9299a0a098928e939eaab0a3978a7d7064574a3d3124170a000000000000000000000000000000000714202d3a46525e697784919eaaa99c8f8276685e5242382e21170d07080f1924303a47535f6a7784919daaaa9d908377685e5246392d20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3946525e6874808d97a2ada89d928c7f746d67605c5557565657585960656c727f8b939daaafa4998d8074665c5044382b1f120600000000000000000000000000000000000000000000000000000000000b16212b353d444c525a61696e787f8791969da29f9b9ea5afb0a3978a7d7064574a3d3124170a000000000000000000000000000000000815212e3b4854616e7b8796a0acab988c7f7265564c4130261c0f06000008131e2b37434e586774808d9aa7ac9f93867a6d6154473a2e211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005111d2935414c56616d7a85929fa5aea49b918c8079716d67656463636465686b70787f87929fa5afa89f93877b6e62544a3f34281c10030000000000000000000000000000000000000000000000000000000000040f19232b323a414550575e666c727c848d929ea1a9aaafb7b0a3978a7d7064574a3d3124170a000000000000000000000000000000000b1825313e4b5864717e8b97a8aea399887c6f6255493c3022140a000000020f1b26323d4a5763707d8a96a8afa4998a7d7064574a3d312417070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d1925303a46525e68717e8b939da5ada39b928d847e797572717070707274777d828c9299a3afaaa1968e8174695f5342382e23170b00000000000000000000000000000000000000000000000000000000000000071119202830353e454d545b606a6f79808a92979ea6aeb4aca3978a7d7064574a3d3124170a000000000000000000000000000000010e1a2734414d5a6774808d9aa7ac9f9286796d6053463a2d201307000000000a14212e3b4754616e7a8796a1adab998d8073665a4d402f24180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e2a36414c56626c74818e939da4aea49d96918b85827f7d7c7c7d7e8184898f949fa3abaaa29891847a6d60574d4230261c11060000000000000000000000000000000000000000000000000000000000000000070e161e2429333b424a505860676d747d858f949fa29f9f9f978a7d7064574a3d3124170a00000000000000000000000000000004111d2935414c556976838f9ca9aa9d908377665c5144382c1f1206000000000714202d3946525e687884919eaba99c8f827669554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d1925303a44505a606d78818d929fa2aaa8a09e97928f8c8a89898a8b8e91969c9fa6ada7a09892867c6f685d52453c311e140a00000000000000000000000000000000000000000000000000000000000000000000040c131921292f383f444e555d606b707a828b9298939393938a7d7064574a3d3124170a0000000000000000000000000000000613202c3945515d677885929eaba89b8e827568544a4034281c10040000000005111e2a36414c566976838f9ca9ab9e918578675d5145382c1f130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e29323f44505c666d78808b92989fa3aba9a29e9b9897969697989b9ea0a8aca9a19e9590867d6f6a60564c41332a1f0c02000000000000000000000000000000000000000000000000000000000000000000000002080f171d262d333c434b515961686d757e858686868686867d7064574a3d3124170a0000000000000000000000000000000714212d3a4754606d7a8797a1ada6998c807366594d402e23180c0000000000010d192530414e5a6774818d9aa7ada197867a6d6053473a2d201407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020d172028343f4a545c666d747e858e92999ea1a8a7a8a5a4a3a3a3a5a7a8aca49f9d97928c837b6f6b60584e443a3021180e0000000000000000000000000000000000000000000000000000000000000000000000000000050b141c2228313940454f565e616d7279797979797979706c6155493c3023160a0000000000000000000000000000000915222f3c4855626f7c8895a9b3a4988b7e7165584b3e32251807000000000000081926333f4c5966727f8c99a5b2a995887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050e17232e38424a545c606c717a81868d9196989a9c9e9f9f9f9f9e9d9c999a93908b857f786e6960594f463c32281e0f06000000000000000000000000000000000000000000000000000000000000000000000000000000020a11171f272f353e444c525b62656c6c6c6c6c6c6c64615a5044392d2014080000000000000000000000000000000a1724303d4a5763707d8a96a3b0a3978a7d7064574a3d3124170a0000000000000b1825313e4b5864717e8b97a4b0a3968a7d7063574a3d3024170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c263038424a505a61686e747b8084888b8e90919292929291908f8d8a87837e79726d665f574f473d342b20160c000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d151d2429323a41465156585f606060606060575550483e33281c10040000000000000000000000000000000b1825313e4b5864717e8b97a4afa295897c6f6256493c2f2316090000000000000a1723303d4a5663707d8996a3b0a4978b7e7164584b3e3125180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141e2630383f4450565e61696e73787b7e81838485868685858482807d7a76726d67605c544d453d352b22190e0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000030b1218202930363f454a4b525353535353534a49443e362c22170b000000000000000000000000000000000c1926323f4c5965727f8c98a5aea195887b6e6255483b2f2215080000000000000916232f3c4956626f7c8995a2afa5988b7f7265584c3f3225190c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c141e262e343e444c52575e61666a6f727476777879797978777573716d6865605d55504a423c332b2319100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070e171e252a343a3d3f464646464646463d3c39332c231a1005000000000000000000000000000000000d1a2733404d5a6673808d99a6ada194877a6e6154473b2e2114080000000000000815222f3b4855626e7b8895a1aea6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020c141c2328323b41464d5354585f626567696b6c6c6c6c6b6a696664615e5653514b443f38302a21191107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d131923292e31323939393939393931302d28221a110800000000000000000000000000000000000e1a2734414d5a6774808d9aa7ada093877a6d6054473a2d2114070000000000000815212e3b4854616e7b8794a1aea69a8d8073675a4d4034271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020a1117202930363b4246484e5355585b5d5e5f5f5f5f5e5d5c5a5754524c47454039342e261e180f07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080d181d2224252c2d2d2d2d2d2d2423201c1710080000000000000000000000000000000000000e1b2734414e5a6774818d9aa7ada093867a6d6053473a2d2014070000000000000814212e3b4754616e7a8794a1ada79a8d8174675a4e4134271b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060e171e252a31363a3c4347484b4e50515253535252514f4d4a4746413a39352f28231c150c060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060c111517181f202020202020171614100b05000000000000000000000000000000000000000e1b2834414e5b6774818e9aa7aca09386796d6053463a2d2013070000000000000714212e3a4754616d7a8794a0ada79a8e8174675b4e4134281b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050d14191f252a2d31373a3c3f41434445464646454442403e3a3936302c29241d17110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105090b0c131313131313130a0a08040000000000000000000000000000000000000000000e1b2835414e5b6874818e9ba7aca09386796d6053463a2d2013070000000000000714212d3a4754606d7a8793a0ada79b8e8174685b4e4135281b0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002080e141a1e21262b2e2f323436383939393938373633312e2d2a25201d18120c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2834414e5b6774818e9aa7aca09386796d6053463a2d2013070000000000000714212e3a4754616d7a8794a0ada79a8e8174675b4e4134281b0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12151a1f212225282a2b2c2c2c2c2b2a29272421201e1913100d070100000000000000000000000000000000000000000000000000000000000000000000010406070a0e10111213131212100e0b0808060200000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7ada093867a6d6053473a2d2014070000000000000814212e3b4754616e7a8794a1ada79a8d8174675a4e4134271b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002050a0f121515181b1d1e1f20201f1f1e1c1a171413110d0804010000000000000000000000000000000000000000000000000000000000000000000001080d111314171a1c1e1f20201f1e1d1b181514120e09040100000000000000000000000000000000000000000000000000000000000000000000000000000e1a2734414d5a6774808d9aa7ada093877a6d6054473a2d2114070000000000000815212e3b4854616e7b8794a1aea79a8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090c0e10111213131312110f0d0b070705010000000000000000000000000000000000000000000000000000000000000000000000050b1013191d20212427292b2c2c2c2c2b2a282522211e1a15110d07010000000000000000000000000000000000000000000000000000000000000000000000000d1a2733404d5a6673808d99a6ada194877a6e6154473b2e2114080000000000000815222f3b4855626e7b8895a1aea6998d8073665a4d4033271a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f161c1e24292c2d3134363839393939383634322e2d2b26201d18130c0600000000000000000000000000000000000000000000000000000000000000000000000c1926333f4c5966727f8c99a5aea195887b6e6255483b2f2215080000000000000916222f3c4955626f7c8895a2afa5988c7f7265594c3f3226190c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0e0e131313131313130a09070400000000000000000000000000000000000000000000000000000000000000000000000000000000060b151b21272c2f35393a3d414344454646454543413e3b3a37312c29241d17110a030000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4afa295897c6f6256493c2f2316090000000000000a1623303d495663707c8996a3afa4988b7e7165584b3e3225180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080f14181a1b20202020202020171614100b05000000000000000000000000000000000000000000000000000000000000000000000000020a111720262b33383a4145474a4d4f515253535251504e4b4847423c39352f28231c150c0500000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a3968a7d7063574a3d3024170a0000000000000b1724313e4a5764717d8a97a4b0a3978a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a202427282d2d2d2d2d2d2d2323201c160f0800000000000000000000000000000000000000000000000000000000000000000000030b141b222732373d44484c5254575a5c5e5f5f5f5f5e5d5b5855534d4745413a342e261e170f07000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8995aab4a4978b7e7164584b3e3125180b0000000000000c1925323f4c5865727f8b98a5b4aa95887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d252b30333439393939393939302f2c27211a11080000000000000000000000000000000000000000000000000000000000000000030c151d262d333c43474f54565d606467696b6c6c6c6c6b696765615f5754514b443f383029211910070000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8798a3aea6998c7f7366594c40332619090000000000000d1a2733404d5a6673808d99a6aea298877a6d6154473a2e21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131d262f363c4041464646464646463d3c38332c231a0f05000000000000000000000000000000000000000000000000000000000000030c151e272f383f444e54596063686d7074767778797978787674716e6965605d55504a423b332b2219100700000000000000000000000000000000000000000000000000000000000613202d394653606c7985929faca79b8e8174685b4e4131261a0e020000000003101c28343f4a546875828e9ba8ac9f928579685e5246392d2013070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a252f3841484c4e535353535353534a48443d352c21160b0000000000000000000000000000000000000000000000000000000000000a151e273039414950585f626b70757a7d808284858686858483817e7b77726d67605c544d453d342b22190f050000000000000000000000000000000000000000000000000000000005121f2b3744505b657783909daaa99c90837669574d42362a1e12050000000006121f2c3844505c667783909daaa99d9083766a564c4135291d110500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202b36414b53595b6060606060606056554f473d33271c10040000000000000000000000000000000000000000000000000000000006111c263039424a535b606a6f767d82868a8d8f919292929291908e8b88847f7a726d665e574e463d342b21170b02000000000000000000000000000000000000000000000000000000030f1b27333f49536874818e9ba7ab9f928578695f53463a2d211407000000000713202d3a4653606d7986929faca79a8e8174675b4e413025190d0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824303c48535d64676c6c6c6c6c6c6c6360594f44382c201407000000000000000000000000000000000000000000000000000000040e17232e38424a545c656c727c82898f92999a9c9e9f9f9f9f9e9c9a9895908b857f786e6960584e463d33291d140a000000000000000000000000000000000000000000000000000000000b17222d3f4c5965727f8c98aaada297887b6e6155483b2e23180c000000000915222f3c4855626f7b8898a3aea9988b7e7265584b3f322518080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a2733404c59646f7479797979797979706b6055483c2f2316090000000000000000000000000000000000000000000000000000020c162028343f4a545c666d777f8790949b9fa3aba7a3a2a1a1a2a4a8a7a7a09d97928b837b6f6a60584e453b2f261b11060000000000000000000000000000000000000000000000000000000616232f3c4956626f7c8998a2aea9978b7e7164544b4034281c1004000004101d2935404b5565727e8b98aaada197887c6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2834414e5b677481868686868686867d7063564a3d3023170a000000000000000000000000000000000000000000000000000008131e28323a44505c666d78818c92999fa6a9a19e9a9795949596979b9fa2a9a9a29f9590857c6f6a60574d41382d22170b0100000000000000000000000000000000000000000000000000000713202d3a4653606d7985929faba79b8e8174665c5145382c1f160c06060c141f2c3845515d6775828e9ba8ab9e9285786c605346392d2013060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1b2734414e5a6774818d93939393938a7d7064574a3d3124170a00000000000000000000000000000000000000000000000000010d1924303a44505a606d78818e939fa3a9a29f97918d8a888788898b8e92979fa2aaa79f9792867c6f695e53493f33271d1207000000000000000000000000000000000000000000000000000006121f2b3844505c6675828f9caaab9e9285796d6053463d31281e171515171e28313a4753606d7985929facaa9b8e8175655b5044372b1f12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010e1a2734414d5a6774808d9a9f9f9f978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000005111d2935414c56616c74808d939ea5a7a097928b85807d7b7b7b7c7e81858c9298a0a7a9a29891857b6e655b5044392f24180c000000000000000000000000000000000000000000000000000003101c28343f4a5464717e8b98a3ada2978a7d7064594f433a30282322222227303a434f5964717e8a98a2aea2988a7d706453493f33271b0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2633404d596673808c99a6aca4978b7e7164584b3e3125180b000000000000000000000000000000000000000000000000000713202d3946525d68717e8a929da5a79f9590857f7974706f6e6e6f7175797f869195a0a7aaa1978f82776c60554b4035291d100400000000000000000000000000000000000000000000000000000b17232e3a4754606d7a86929faca99c9083766b60554b423a342e2f2e2d3339424b55616b7683909daaab9f9285796d6053473a2d22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5b2a5988b7f7265584c3f3225190c00000000000000000000000000000000000000000000000005121e2a36424d57616d7a85929ea4a99f9590837b726d66646261626364676d727b839095a0aaa99f948b7e71675d5145382c1f140900000000000000000000000000000000000000000000000000000613202c3945515d6775818e9ba6ab9f94897d70675d544c443f3c3b3b3c3f444b545d67707d89959faba4998d8174675c5145382c1b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000714212d3a46535e6974818d97a1ada19790837a6e69605c5455545556555c60696e7a839098a2aea69e9184796d6053473b31261a0e020000000000000000000000000000000000000000000000000004111d2935414c55626f7c88949faba69e9184796d665d56504a494848494950555d666d7984919ea7aa9f93877b6e61554b4034291c0a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916232f3c4956626f7c8995aab4a79a8e8174675b4e4134281b09000000000000000000000000000000000000000000000004101d2935404b55616e7b86929fa9a69e92857a6e685e57514b484848494b51575e686e7b86929fa9ada1968b7e7165574d42362a1e120500000000000000000000000000000000000000000000000000010d19242f3a47535f6a76828f99a3aca0968f82786d68605c5456555555535b60676d78818f96a0aca2988e8175695f5343392f23180c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3b4754616e7a8798a2aea89b8f8275685c4f4230251a0e020000000000000000000000000000000000000000000006131f2c3945515d6774818d99a3ab9f948a7e71685e564d45403c3b3b3c40454d565f69727f8b97a1ada99d908377695f53463a2d211407000000000000000000000000000000000000000000000000000008131e2b37434e58626e7c87929fa7a89e948f827a716d66646262616264656c7079818e939ea8a69f92867b6e61574d4231271d120700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202d394653606c7985929facaa9d9083776a574d42362a1e1105000000000000000000000000000000000000000000000714202d3a4753606d7985929faba89c8f82766c61564c433b342e2e2f2f343b444d57606d7985919eababa095887b6e6155483b2e2215080000000000000000000000000000000000000000000000000000010f1b26323c47535f6a73808d959fa8a69e948f847e7974716f6e6e6f7173787d848e939ea5a79f948c7f72695e53453c311f150b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121f2b3744505b657783909daaac9f928579695e52463a2d20140700000000000000000000000000000000000000000004101c2834404b5564717e8b98a2aca096897d70635a50443b31282321222329323c44515c6673808c99aab1a7988b7e7265584b3f322518080000000000000000000000000000000000000000000000000000000a15202b37434e58606d78839096a0a8a69e96918b85817e7c7b7b7c7e80848a91969ea5a7a0958f82776c60574d42332a1f0d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27333f49536874818e9ba7aea298877b6e6154473b2e21140800000000000000000000000000000000000000000006131f2c3845515c6775828f9caaaa9d9184776b6054483e32291f18151518202834404a54626f7b8898a2aea89b8e8175685b4e423025190d010000000000000000000000000000000000000000000000000000040f1a26313c44505c666e7b8491969ea5a9a19e97918e8b898888888a8d91969ea0a8a59e9590837a6d655b50453b3121180e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3f4c5865727f8b98aab4aa96897c706356493d302316080000000000000000000000000000000000000000000713202d3a4653606d7985929facab998c7f7366594f44362c20170d07070e18232e394653606c7985929fabaa9d9184776a564c41362a1d11050000000000000000000000000000000000000000000000000000000a152028343f4a545e696e7b848f939ea1a8a9a19e9a9795959495979a9ea0a8a8a19e938e837a6e685e53493f33291f0f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000616232f3c4956626f7c8998a3aea5988c7f7265594c3f3025190d0100000000000000000000000000000000000000000a1723303d4a5663707d8998a2aea399897c706356493d32231a0e05000007121f2b3844505b6676838f9ca9ac9f928579685e5246392d201307000000000000000000000000000000000000000000000000000000030c17232e38424d565e696e7a828a91969d9fa7a7a7a4a2a1a1a2a4a6a7a7a09d96918a81796e685e564c41382d21170d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929faca89b8e817568564c41362a1e110500000000000000000000000000000000000000000d192633404c5966737f8c99aaac9f92867a6d6053473a2d201407000000030f1c28333f4a546874818e9ba7aea298877a6d6154473a2e2114070000000000000000000000000000000000000000000000000000000006111c26303b444d575e686d757e848b9095979a9c9e9e9f9f9f9e9c9a9895908b847e756d675e564c443a2f261b0f0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2c3844515c667683909ca9aa9e918477685e5246392d2013070000000000000000000000000000000000000004101d2935404b556975828f9ca8aa9d918477675d5145392c201306000000000b17222d414d5a6774808d9aa7b4aa94887b6e6155483b2e22150800000000000000000000000000000000000000000000000000000000000a151e29323b454d565d606c71797e83878a8d8f9192929292918f8d8b87837e79716c605d554c443b32281d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404a5466737f8c99a9aca096877a6d6154473a2e21140a0000000000000000000000000000000000000006131f2c3845515d677884919eaba99d9083766a554b4035291d110400000000061a2633404d596673808c99a6aea295887b6f6255483c2f2215090000000000000000000000000000000000000000000000000000000000030c172029333b444c525a61676d71767a7e818284858686858483817e7b77716d67615a514b433b322920160b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e3c4956626f7c8997a2ada8978a7e7164574a3e31261b0f030000000000000000000000000000000000000714202d3a4753606d7a86939faca89c8f8275695c4f422f24180d01000000000d1a2733404d5a6673808d99a6afa295887c6f6255493c2f221609000000000000000000000000000000000000000000000000000000000000050e172129323a414550555c6064686e7174767778797978787674716e6965605d555045403a312920170e040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7985929eaba79b8e817468584e43372b1f12060000000000000000000000000000000000000915222f3c4855626f7b889aa4afa89b8e8275685b4f422d22170b00000000000e1b2834414e5b6774818e9aa7b4ab95887b6e6255483b2f22150800000000000000000000000000000000000000000000000000000000000000050f1720282f353e434b5153565e616467696b6b6c6c6c6b696765615e5753514b433e352f281f170e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c6674818e9baaab9e9184786a5f53473a2e21150a0000000000000000000000000000000000000a1724303d4a5763707d8a96acb6a89c8f827569544a3f33281c0f0300000004111d2935414c566875828e9ba8aea399877a6e6154473b2e2114080000000000000000000000000000000000000000000000000000000000000000050d161e242931394045474c5254575a5c5e5f5f5f5f5e5c5a5854524d474540393129241d160d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a5464707d8a98a2ada196887b6f6255483c31261a0f0000000000000000000000000000000000000b1825313e4b5864717e8b97a4b1a99d908376665b5044382b1f130a0603060a13202c3945525d687784919daaac9f9286796c605346392d201306000000000000000000000000000000000000000000000000000000000000000000040c13191f272f34383b4146474b4e4f515253535251504e4b4846423b38352f271f18130c04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3a4753606d7985929faca8998c7f7366584e43372b1c110600000000000000000000000000000000000c1926323f4c5965727f8c98a5b2ab9e9285796c6053463a30241b14121012141c26303a4754606d7a86939facaa9d918477655b5044372b1f12050000000000000000000000000000000000000000000000000000000000000000000001080d151d23292c3036393b3e414344454646454543413e3b3a36302c29241d150d0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d6774818e9ba8aa9d9184776a5f5347382e23170b00000000000000000000000000000000000d1a2733404d5a6673808d99a6b3ada297887c6f62564c41352d26201f1c1f20262e38424e5864707d8a9aa4afa89b8e81756853493f33271b0f03000000000000000000000000000000000000000000000000000000000000000000000000030b12181c1f252a2d2e3134363838393939383634322e2d2a251f1d18120b030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5563707d8996a1aca095887b6f62544a3f34281c1003000000000000000000000000000000000e1a2734414d5a6774808d9aa7b3b3a9998c8073685d52463f382f2d2b282b2d30383f4a545f6a76828f9cacb0a6988b7e7265584b3f2d22170b000000000000000000000000000000000000000000000000000000000000000000000000000001070c1014191e20212427292b2c2c2c2c2b29272521201e1a14100c07010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18242f394653606c7884919eaba7998c8073665c5044382b1f1409000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4b8ab9f92857a6d615b5049413c393834383a3d424a505c666e7c87939facab9f94877b6e6154483b2e211506000000000000000000000000000000000000000000000000000000000000000000000000000000000004080e111414181b1c1e1f20201f1e1d1b181514120e090400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121f2b3844505b6673808c99a3ab9e9184796d6053463b30251a0e010000000000000000000000000000000e1b2834414e5b6774818e9aa7b4b3ada2988d81746d605b534e4846443f4446484e545c606d7883909aa4afa79c8f8376695e52463a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000020507080b0e10111213131212100e0b080705020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54616e7b87929faca1968a7d7063574d42362a1d13070000000000000000000000000000000e1b2834414e5b6774818e9aa7b3a9a19e9e928b7f726c655f585553504a5053555860666d74808d959facaba0958a7d7164574d42362a1e12050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3846525e6975828f9ba7a89b8f8275695e52463a2f24180d0000000000000000000000000000000e1b2734414e5a6774818d9aa7ada19792919692877f776f6a6562605b545c6062656a6f78808d929ca7afa4999083786c6053463b30251a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c2a36424d5763707d89959fac9f92867b6e61554b4135291d120700000000000000000000000000000e1a2734414d5a6774808d9aa7ab9e9285849199928c827c76726e6c666b666d6e72767c828d929ca4aea69f93877c6f655b504437291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1a25303b4854606b7683909da8a3998d8073675d5145392e23180c00000000000000000000000000000d1a2734404d5a6773808d9aa6ab9e92857d89929f948f88827e7b79787778797b7f828990949da4aea69e938d80736b6053493f3327170d03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009141f2c38444f5964717e8a96a0ab9f92857a6d60544b4034281d1207000000000000000000000000000d192633404c5966737f8c99a6ab9f928578808d939f9c948f8b888685848586888b8f949c9fa6aca49d948f81786c60594f41382d22170500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002101b27323d4653606c7884919da8a2978b7f72665c5145392e23180c010000000000000000000000000c1825323f4b5865727e8b98a5ac9f92867977818c939a9f9c989993929192939a989c9fa6aba8a09d928d82796d665b50463d2f261b1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b161f2b3844505b66717e8b96a0a99e9184796d60554b4034281e13080000000000000000000000000b1824313e4b5764717e8a97a4aea399867a6d74808891969d9fa49f9e9e9e9fa4aca9a7a79f9d95918980786d675c544a3f342b1d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a54606d7884919da7a1968b7e72675c51453a2f24190d0300000000000000000000000a1623303d495663707c8996abb5ab94877b6e6e737d848a9095989b9d9e9f9f9f9e9c9a9895908a847d736d665c554b42382d22190b020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d3844505c66717e8a95a0a89e9184796d60564c4135291f140900000000000000000000000815222e3b4855616e7b8899a3afa295897c6f626b6f797e83888b8e909192929291908e8b87837e78706b605c544b43392f261c10070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28343f4a54606c7883909da6a1968c7f72685d52453b31251a0c03000000000000000000000713202d3a4653606d7986929faca4978a7d716460666d71777b7f8183858586858483817e7b76716d666059504a423930271d140a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17232e3844505b66707d89949fa89e92857a6d60574d42362a1e150a0000000000000000000006121f2c3844505c667784919eaaa5998c7f7266545c6064696e72747778797979787674716e6964605c544f443f3830271e150b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c28333f4a54616b76828f99a4a1978d8073695e53463d30261c110600000000000000000003101c28343f4a546875828f9ba8a89b8e817568565153575f6165686a6b6c6c6c6b696765615e5753504a423d342e261e150c0701000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424f59626f7c87939fa99f92867b6e61594f42382e23170c020000000000000000000c17232e404c5966737f8c99abaa9d908477685d52464d5355585b5d5e5f5f5f5e5d5b5854534d46443f3830282321201d18130c0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3d47535f6a74818e98a2a3988e82756b60544a3f34281f1409000000000000000000061724303d4a5763707d8a99a3ac9f93867a6d6054474246484c4e505252535251504e4b4846423c3b3937332d302d2c29241d160d040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d2b37434e58616d7a85929fa79e93897d70665c50443b30251a0d0300000000000000000714212d3a4754606d7a86929faca4998a7d7063544b403a3b3f4144454646464543413e3d4347494846443f3f3c3a39352f281f160c010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b1b26323c46525e68727f8c95a0a59d9083786d60574d42362a1f150b01000000000000000613202c3945515d677683909ca9ab9a8e8174665c5145382e323537383939393836313d464e5456555350494b494745413a31281d13070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202a36414c56606d7883909aa4a0958c7f72695e52463e31271d12070000000000000004111d2935414b5566737f8c99a7ab9e9285796d6053463e3128282a2b2c2c2c242f39434e58606261605b53585654514b433a2f24180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1925303a44515c666f7d88939fa79f92867b6e61594f43392f24180c02000000000000010d18242f3b4855616e7b88959faba1978a7e7164594f433a2f241d151f141c2935404b55606a6f6e6c65676563605d554b4135291d1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030709090c0c0c0c0c0c0c0c0c0c0c0c0c0c08131e2834404a54606b74818e97a1a2988e81756b61554b4035291e140a000000000000000714212d3a46535f697683909da8a99d9083766c61554b40352e27222222262d3845515d676f7c7b797674726f6d675d5145392c20130600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040b0f1315161919191919191919191919191919191918232e39424f59616d7a85929ea69e938a7d70675d51453c30261c110600000000000005121e2a36424d5764717e8b96a1ab9f958a7d70675d51454039302f2e2f2f38404b55606d7986888583817e7c796d6054473a2d211407000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f161b20222325252525252525252525252525252525252527303d46525e68717e8a949ea59e9184796d60584e42382e23170b020000000000020e1a26313b4653606d7984919ea7a79e9184796d605b514b423d3c3b3c3d424a515d67717e8b9892908e8b897e7164574b3e3124180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007111921272c2f30323232323232323232323232323232323232323235414c56616c75828f98a2a1968d80736a5f544a3f34281d140a00000000000009141f2c3844515c66727f8b95a0aca1968e81756e605c544f4a4948494a4e545b606d7984919e9f9d9a92857a6d6053473a2d20140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19232b32383b3c3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f44505a616e7b86929fa69f92877c6f665c50443c2f261b1106000000000004101c2834404a54606d7883919aa4a89e938c80746d6660595755555556585f666c75818e96a1aca3998e8174675d5145392c201306000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b16212b353d4448494c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c525e69727f8b949fa3999083786d60574d41382d22170b0000000000000c18232e3944505c66707d88939fa6a59c928c8079706b666462616263666a6f78808d939ea9a89f92877b6e62554b4035291d1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323d474f54565858585858585858585858585858585858585858585858585857606c77828f97a2a0958c7f72695f53493f33271b0f03000000000007121c28343f4a54606b73808d949fa7a49c928d837d7773706f6e6f7072767c828d929da5aaa1968d8174695f5343392f24180d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202c38444f596063656565656565656565656565656565656565656565656565656565656e7b85929fa79f92867b6e655b5044372b1f12050000000000000c17232e38424f59606d788290959fa7a49d95908984807d7c7b7c7d7f838890949da4aaa39891847a6d61574d4231281d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222f3b4854606b6f7272727272727272727272727272727272727272727272727272727272727e8b97a1a3989082776c605346392d20130600000000000006111c26303d44505c666d7a8390959da5a7a09d95918d8a888888898c90959c9fa6a9a19892867c6f685e52453c311f160c0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091623303c4956636f7c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f85919eaa9f948b7f7265584b3f3225180c000000000000000a151e28343f4a545d686d7a838e939ea0a8a8a09d999795949596999d9fa7aba49f9792867e706a60564c41332a1f0d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774808b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b9197a1ada69b8e8175685b4f4235281c0f00000000000000030c17232e38424c565e686d79818991969c9fa4aca6a3a2a1a2a3a5a8a9a29f99938e857c706c61584e443a3021180e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9898989898989898989898989898989898989898989898989898989898989ea1a9b3a89b8e8175685b4f4235281c0f000000000000000006111c26303a444c565e676d747d848a90939a9a9c9e9f9f9f9e9d9b9997928d87817a6f6a615a50463c32281e0f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5abadb3aca89b8e8275685b4f4235281c0f0000000000000000000a151e28323a444c555c606b70787e83878b8d909192929291908f8c8985817c746d68605850483e342b20160c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9a9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9b8e8275685b4f4235281c0f000000000000000000030c162029323a434b515960666d71767b7e8183848586858484827f7d79746f6a615e564e463e362c22190e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774808d9393939393939393939393939393939393939393939393939393939393939393939393938e8275685b4f4235281c0f00000000000000000000040d172029303940454f545c6064686e7174767878797878777573706d67625f58524c443d342c241a100700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a67748086868686868686868686868686868686868686868686868686868686868686868686868686868175685b4f4235281c0f0000000000000000000000050e171e272e343d424a5053565e616567696b6c6c6c6b6a686663605c55534e46413a322b221a11080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a26333f4c58646e747979797979797979797979797979797979797979797979797979797979797979797979797979756f65594d4034271b0e000000000000000000000000050c151d232830383f44464d5254585a5d5e5f5f5f5e5d5c595653514b47433c36302920191008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724303c47525c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c68655d53483d3125180c00000000000000000000000000030b12181e262e34383b4146474b4e505152535251514f4c4a4645403937322a251e170e07000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008141f2b36414a52585a60606060606060606060606060606060606060606060606060606060606060606060606060605b59534b41372c201408000000000000000000000000000000070c151c23282c3036393b3e414345454645454442403d3a38342e2b262019130d05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030e1a242f3841474c4e53535353535353535353535353535353535353535353535353535353535353535353535353534f4d4841392f251a0f0400000000000000000000000000000000030a11171c1f252a2d2e3234363839393938373533302d2c28231d1b150d0802000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131d262f363c3f41464646464646464646464646464646464646464646464646464646464646464646464646464642403d372f271e130900000000000000000000000000000000000000060c1014191e202125272a2b2c2c2c2b2a292623201f1c18120f0a0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d242b30333439393939393939393939393939393939393939393939393939393939393939393939393939393534312c251e150c0200000000000000000000000000000000000000000003080e111414181b1d1e1f201f1e1e1c19171313100c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a1f2426272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d282725201a130c03000000000000000000000000000000000000000000000000020507080b0e101212131212110f0d0a070604000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080e14171a1b20202020202020202020202020202020202020202020202020202020202020202020202020201c1b18140f090200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313131313131313131313131313131313131313131313131313131313131313130f0e0c08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 m_StreamData: serializedVersion: 2 offset: 0 diff --git a/Assets/Wavefunction/CustomEvents/GameRelated/GameEventListener_VendorData.cs b/Assets/Wavefunction/CustomEvents/GameRelated/GameEventListener_VendorData.cs index e580396d..32a5bd67 100644 --- a/Assets/Wavefunction/CustomEvents/GameRelated/GameEventListener_VendorData.cs +++ b/Assets/Wavefunction/CustomEvents/GameRelated/GameEventListener_VendorData.cs @@ -7,7 +7,7 @@ using UnityEngine.Events; public class GameEventListener_VendorData : MonoBehaviour { public GameEvent_VendorData Event; - public UnityEvent_VendorData Response; + public UnityEvent_VendorDataInstance Response; private void OnEnable() { @@ -19,13 +19,13 @@ public class GameEventListener_VendorData : MonoBehaviour Event.UnRegisterListener(this); } - public void OnEventRaised(VendorData vendorData) + public void OnEventRaised(VendorDataInstance vendorData) { Response.Invoke(vendorData); } } [System.Serializable] -public class UnityEvent_VendorData : UnityEvent +public class UnityEvent_VendorDataInstance : UnityEvent { } diff --git a/Assets/Wavefunction/CustomEvents/GameRelated/GameEvent_VendorData.cs b/Assets/Wavefunction/CustomEvents/GameRelated/GameEvent_VendorData.cs index e41e01be..2d1ce5e8 100644 --- a/Assets/Wavefunction/CustomEvents/GameRelated/GameEvent_VendorData.cs +++ b/Assets/Wavefunction/CustomEvents/GameRelated/GameEvent_VendorData.cs @@ -8,7 +8,7 @@ public class GameEvent_VendorData : ScriptableObject { private List listeners = new List(); - public void Raise(VendorData vendorData) + public void Raise(VendorDataInstance vendorData) { for (int i = listeners.Count - 1; i >= 0; i--) {