From cdbd31c750efca6f737a66d01822180bff5c4ee1 Mon Sep 17 00:00:00 2001 From: umutkutlu Date: Sun, 9 Jul 2023 13:32:38 +0300 Subject: [PATCH 1/4] Merge branch 'main' of github.com:trilitech/tezos-unity-sdk into feat/fa2 # Conflicts: # Samples~/Scripts/DemoExample/Core/ExampleManager.cs # Samples~/Scripts/DemoExample/Core/IExampleManager.cs # Samples~/Scripts/DemoExample/UI/RegisterPanel.cs # Samples~/Scripts/DemoExample/UIManager.cs # Samples~/Scripts/NftApiSample/DataManager.cs # Tests/Editor/EditmodeTests.cs --- CHANGELOG.md | 6 + Editor/IssueReportFormWindow.cs | 4 +- Runtime/View/AuthenticationManager.cs | 111 +++--- Runtime/View/QRCodeView.cs | 70 ++-- .../Scripts/DemoExample/CopyToClipboard.cs | 58 +-- .../Scripts/DemoExample/Core/IItemModel.cs | 76 ++-- .../Scripts/DemoExample/Core/IUserModel.cs | 12 +- Samples~/Scripts/DemoExample/Core/Item.cs | 42 +-- Samples~/Scripts/DemoExample/Core/User.cs | 29 +- .../Scripts/DemoExample/ExampleFactory.cs | 37 +- .../Scripts/DemoExample/InventoryManager.cs | 339 +++++++++--------- Samples~/Scripts/DemoExample/MarketManager.cs | 102 +++--- Samples~/Scripts/DemoExample/UI/Draggable.cs | 109 +++--- .../DemoExample/UI/DraggableItemVisual.cs | 117 +++--- .../DemoExample/UI/FlexibleGridLayout.cs | 136 +++---- .../Scripts/DemoExample/UI/ItemController.cs | 109 +++--- Samples~/Scripts/DemoExample/UI/ItemSlot.cs | 41 ++- .../Scripts/DemoExample/UI/ItemSnapPoint.cs | 100 +++--- Samples~/Scripts/DemoExample/UI/ItemView.cs | 162 +++++---- .../DemoExample/UI/MarketItemController.cs | 43 +-- .../Scripts/DemoExample/UI/PanelController.cs | 7 +- .../Scripts/DemoExample/UI/SnapController.cs | 149 ++++---- .../Scripts/DemoExample/UI/StatTextView.cs | 25 +- Samples~/Scripts/DemoExample/UI/StatsView.cs | 39 +- Samples~/Scripts/DemoExample/UI/TabButton.cs | 89 ++--- Samples~/Scripts/DemoExample/UI/TabGroup.cs | 152 ++++---- Samples~/Scripts/NftApiSample/UiManager.cs | 61 ++-- .../ScriptableObjects/ItemReseource.cs | 13 +- 28 files changed, 1161 insertions(+), 1077 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7f6d28a..16d31d9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [Bug](https://github.com/trilitech/tezos-unity-sdk/issues/102) with standalone IL2CPP build fails - [Bug](https://github.com/trilitech/tezos-unity-sdk/issues/103) with closing Beacon database connections before app exit +### Added +- Missing namespaces + +### Changed +- Issue Report Form menu item path changed (new path: `Tools/Tezos SDK for Unity/Report an Issue`) + ## [1.5.1] - 2023-06-27 ### Fixed diff --git a/Editor/IssueReportFormWindow.cs b/Editor/IssueReportFormWindow.cs index 19ff0496..b166b330 100644 --- a/Editor/IssueReportFormWindow.cs +++ b/Editor/IssueReportFormWindow.cs @@ -4,7 +4,7 @@ using Newtonsoft.Json.Linq; using UnityEngine.Networking; -namespace Tezos.Editor.Windows +namespace TezosSDK.Editor.Windows { public class IssueReportFormWindow : EditorWindow { @@ -19,7 +19,7 @@ public class IssueReportFormWindow : EditorWindow private string errorMessage = ""; private string successMessage = ""; - [MenuItem("Tezos SDK/Issue Report Form")] + [MenuItem("Tools/Tezos SDK for Unity/Report an Issue")] public static void ShowWindow() { GetWindow("Issue Report Form"); diff --git a/Runtime/View/AuthenticationManager.cs b/Runtime/View/AuthenticationManager.cs index 6e30f2bb..791abff8 100644 --- a/Runtime/View/AuthenticationManager.cs +++ b/Runtime/View/AuthenticationManager.cs @@ -2,83 +2,86 @@ using TezosSDK.Tezos.Wallet; using UnityEngine; -public class AuthenticationManager : MonoBehaviour +namespace TezosSDK.View { - private ITezos _tezos; - [SerializeField] private QRCodeView qrCodeView; - [SerializeField] private GameObject contentPanel; - [SerializeField] private GameObject deepLinkButton; - [SerializeField] private GameObject logoutButton; - [SerializeField] private GameObject qrCodePanel; + public class AuthenticationManager : MonoBehaviour + { + private ITezos _tezos; + [SerializeField] private QRCodeView qrCodeView; + [SerializeField] private GameObject contentPanel; + [SerializeField] private GameObject deepLinkButton; + [SerializeField] private GameObject logoutButton; + [SerializeField] private GameObject qrCodePanel; - private bool _isMobile; + private bool _isMobile; - void Start() - { + void Start() + { #if (UNITY_IOS || UNITY_ANDROID) _isMobile = true; #else - _isMobile = false; + _isMobile = false; #endif - _tezos = TezosSingleton.Instance; - - _tezos.Wallet.MessageReceiver.HandshakeReceived += OnHandshakeReceived; - _tezos.Wallet.MessageReceiver.AccountConnected += OnAccountConnected; - _tezos.Wallet.MessageReceiver.AccountDisconnected += OnAccountDisconnected; - } + _tezos = TezosSingleton.Instance; - void OnHandshakeReceived(string handshake) - { - EnableUI(isAuthenticated: false); - qrCodeView.SetQrCode(handshake); - } + _tezos.Wallet.MessageReceiver.HandshakeReceived += OnHandshakeReceived; + _tezos.Wallet.MessageReceiver.AccountConnected += OnAccountConnected; + _tezos.Wallet.MessageReceiver.AccountDisconnected += OnAccountDisconnected; + } - void OnAccountConnected(string result) - { - EnableUI(isAuthenticated: true); - Debug.Log("OnAccountConnected"); - } + void OnHandshakeReceived(string handshake) + { + EnableUI(isAuthenticated: false); + qrCodeView.SetQrCode(handshake); + } - void OnAccountDisconnected(string result) - { - Debug.Log("OnAccountDisconnected"); - } + void OnAccountConnected(string result) + { + EnableUI(isAuthenticated: true); + Debug.Log("OnAccountConnected"); + } - public void DisconnectWallet() - { - EnableUI(isAuthenticated: false); - _tezos.Wallet.Disconnect(); - } + void OnAccountDisconnected(string result) + { + Debug.Log("OnAccountDisconnected"); + } - public void ConnectByDeeplink() - { - _tezos.Wallet.Connect(WalletProviderType.beacon); - } + public void DisconnectWallet() + { + EnableUI(isAuthenticated: false); + _tezos.Wallet.Disconnect(); + } - void EnableUI(bool isAuthenticated) - { - if (isAuthenticated) + public void ConnectByDeeplink() { - deepLinkButton.SetActive(false); - qrCodePanel.SetActive(false); + _tezos.Wallet.Connect(WalletProviderType.beacon); } - else + + void EnableUI(bool isAuthenticated) { - if (_isMobile) + if (isAuthenticated) { - deepLinkButton.SetActive(true); + deepLinkButton.SetActive(false); qrCodePanel.SetActive(false); } else { - qrCodePanel.SetActive(true); - deepLinkButton.SetActive(false); + if (_isMobile) + { + deepLinkButton.SetActive(true); + qrCodePanel.SetActive(false); + } + else + { + qrCodePanel.SetActive(true); + deepLinkButton.SetActive(false); + } } - } - logoutButton.SetActive(isAuthenticated); + logoutButton.SetActive(isAuthenticated); - if (contentPanel == null) return; - contentPanel.SetActive(isAuthenticated); + if (contentPanel == null) return; + contentPanel.SetActive(isAuthenticated); + } } } \ No newline at end of file diff --git a/Runtime/View/QRCodeView.cs b/Runtime/View/QRCodeView.cs index 253d410b..afd5744c 100644 --- a/Runtime/View/QRCodeView.cs +++ b/Runtime/View/QRCodeView.cs @@ -3,51 +3,53 @@ using ZXing; using ZXing.QrCode; - -public class QRCodeView : MonoBehaviour +namespace TezosSDK.View { - [SerializeField] private RawImage _rawImage; - private Texture2D _texture; - - void Start() - { - if (_texture != null) return; - - _rawImage.texture = _texture = new Texture2D(256, 256); - _texture.filterMode = FilterMode.Point; - } - - public void SetQrCode(string handshake) + public class QRCodeView : MonoBehaviour { - var uri = "tezos://?type=tzip10&data=" + handshake; - EncodeTextToQrCode(uri); - } + [SerializeField] private RawImage _rawImage; + private Texture2D _texture; - public void EncodeTextToQrCode(string text) - { - if (_texture == null) + void Start() { + if (_texture != null) return; + _rawImage.texture = _texture = new Texture2D(256, 256); _texture.filterMode = FilterMode.Point; } - var colors = Encode(text, _texture.width, _texture.height); - _texture.SetPixels32(colors); - _texture.Apply(); - } + public void SetQrCode(string handshake) + { + var uri = "tezos://?type=tzip10&data=" + handshake; + EncodeTextToQrCode(uri); + } - private Color32[] Encode(string text, int width, int height) - { - var writer = new BarcodeWriter + public void EncodeTextToQrCode(string text) { - Format = BarcodeFormat.QR_CODE, - Options = new QrCodeEncodingOptions() + if (_texture == null) { - Width = width, - Height = height, - PureBarcode = true + _rawImage.texture = _texture = new Texture2D(256, 256); + _texture.filterMode = FilterMode.Point; } - }; - return writer.Write(text); + + var colors = Encode(text, _texture.width, _texture.height); + _texture.SetPixels32(colors); + _texture.Apply(); + } + + private Color32[] Encode(string text, int width, int height) + { + var writer = new BarcodeWriter + { + Format = BarcodeFormat.QR_CODE, + Options = new QrCodeEncodingOptions() + { + Width = width, + Height = height, + PureBarcode = true + } + }; + return writer.Write(text); + } } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/CopyToClipboard.cs b/Samples~/Scripts/DemoExample/CopyToClipboard.cs index 02f7b5ba..b0068443 100644 --- a/Samples~/Scripts/DemoExample/CopyToClipboard.cs +++ b/Samples~/Scripts/DemoExample/CopyToClipboard.cs @@ -1,44 +1,46 @@ using System.Collections; -using Unity.VisualScripting; using UnityEngine; using UnityEngine.EventSystems; using CoroutineRunner = TezosSDK.Helpers.CoroutineRunner; -public class CopyToClipboard : MonoBehaviour, IPointerClickHandler +namespace TezosSDK.Samples.DemoExample { - [SerializeField] TMPro.TextMeshProUGUI text; - [SerializeField] TMPro.TMP_InputField inputField; + public class CopyToClipboard : MonoBehaviour, IPointerClickHandler + { + [SerializeField] TMPro.TextMeshProUGUI text; + [SerializeField] TMPro.TMP_InputField inputField; - bool _blockCopy = false; + bool _blockCopy = false; - private void Start() - { - inputField.gameObject.SetActive(false); - } + private void Start() + { + inputField.gameObject.SetActive(false); + } + + public void OnPointerClick(PointerEventData eventData) + { + if (_blockCopy) + return; - public void OnPointerClick(PointerEventData eventData) - { - if (_blockCopy) - return; - #if UNITY_WEBGL inputField.gameObject.SetActive(true); inputField.text = text.text; text.gameObject.SetActive(false); #endif - - // copy text to the clipboard - GUIUtility.systemCopyBuffer = text.text; - CoroutineRunner.Instance.StartWrappedCoroutine(OnTextCopied()); - } - IEnumerator OnTextCopied() - { - _blockCopy = true; - string origin = text.text; - text.text = "Copied to clipboard."; - yield return new WaitForSeconds(1.5f); - text.text = origin; - _blockCopy = false; + // copy text to the clipboard + GUIUtility.systemCopyBuffer = text.text; + CoroutineRunner.Instance.StartWrappedCoroutine(OnTextCopied()); + } + + IEnumerator OnTextCopied() + { + _blockCopy = true; + string origin = text.text; + text.text = "Copied to clipboard."; + yield return new WaitForSeconds(1.5f); + text.text = origin; + _blockCopy = false; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/IItemModel.cs b/Samples~/Scripts/DemoExample/Core/IItemModel.cs index 934a46ca..33e2c7ee 100644 --- a/Samples~/Scripts/DemoExample/Core/IItemModel.cs +++ b/Samples~/Scripts/DemoExample/Core/IItemModel.cs @@ -1,42 +1,46 @@ - -public interface IItemModel -{ - public ItemType Type { get; } - public string ResourcePath { get; } - public string Name { get; } - public StatParams Stats { get; } - public int ID { get; } - public float Price { get; } - public string Owner { get; } -} - -public enum ItemType +namespace TezosSDK.Samples.DemoExample { - Head, - Torso, - Legs, - Feet, - Hand, - Accessory, - Consumable -} + public interface IItemModel + { + public ItemType Type { get; } + public string ResourcePath { get; } + public string Name { get; } + public StatParams Stats { get; } + public int ID { get; } + public float Price { get; } + public string Owner { get; } + } -public class StatParams -{ - public StatParams() { } - - public StatParams(float damage, float armor, float attackSpeed, float healthPoints, float manaPoints) + public enum ItemType { - Damage = damage; - Armor = armor; - AttackSpeed = attackSpeed; - HealthPoints = healthPoints; - ManaPoints = manaPoints; + Head, + Torso, + Legs, + Feet, + Hand, + Accessory, + Consumable } - public float Damage { get; set; } = 0; - public float Armor { get; set; } = 0; - public float AttackSpeed { get; set; } = 0; - public float HealthPoints { get; set; } = 0; - public float ManaPoints { get; set; } = 0; + public class StatParams + { + public StatParams() + { + } + + public StatParams(float damage, float armor, float attackSpeed, float healthPoints, float manaPoints) + { + Damage = damage; + Armor = armor; + AttackSpeed = attackSpeed; + HealthPoints = healthPoints; + ManaPoints = manaPoints; + } + + public float Damage { get; set; } = 0; + public float Armor { get; set; } = 0; + public float AttackSpeed { get; set; } = 0; + public float HealthPoints { get; set; } = 0; + public float ManaPoints { get; set; } = 0; + } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/IUserModel.cs b/Samples~/Scripts/DemoExample/Core/IUserModel.cs index e2458f9f..dd85a20f 100644 --- a/Samples~/Scripts/DemoExample/Core/IUserModel.cs +++ b/Samples~/Scripts/DemoExample/Core/IUserModel.cs @@ -1,6 +1,8 @@ - -public interface IUserModel +namespace TezosSDK.Samples.DemoExample { - public string Name { get; } - public string Identifier { get; } -} + public interface IUserModel + { + public string Name { get; } + public string Identifier { get; } + } +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/Item.cs b/Samples~/Scripts/DemoExample/Core/Item.cs index fa5680ae..7cc7820a 100644 --- a/Samples~/Scripts/DemoExample/Core/Item.cs +++ b/Samples~/Scripts/DemoExample/Core/Item.cs @@ -1,23 +1,25 @@ - -public class Item : IItemModel +namespace TezosSDK.Samples.DemoExample { - public Item(ItemType type, string resourcePath, string name, StatParams parameters, float price, int id, string owner) + public class Item : IItemModel { - Type = type; - ResourcePath = resourcePath; - Name = name; - Stats = parameters; - Price = price; - ID = id; - Owner = owner; - } + public Item(ItemType type, string resourcePath, string name, StatParams parameters, float price, int id, string owner) + { + Type = type; + ResourcePath = resourcePath; + Name = name; + Stats = parameters; + Price = price; + ID = id; + Owner = owner; + } - public ItemType Type { get; } - public string ResourcePath { get; } - public string Name { get; } - public StatParams Stats { get; } - - public float Price { get; } - public int ID { get; } - public string Owner { get; } -} + public ItemType Type { get; } + public string ResourcePath { get; } + public string Name { get; } + public StatParams Stats { get; } + + public float Price { get; } + public int ID { get; } + public string Owner { get; } + } +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/User.cs b/Samples~/Scripts/DemoExample/Core/User.cs index 916706a3..72d678d1 100644 --- a/Samples~/Scripts/DemoExample/Core/User.cs +++ b/Samples~/Scripts/DemoExample/Core/User.cs @@ -1,18 +1,21 @@ -public class User : IUserModel +namespace TezosSDK.Samples.DemoExample { - public User(string name, string id, string address) + public class User : IUserModel { - Name = name; - Identifier = id; - Address = address; - } - - public string Name { get; } - public string Identifier { get; } - public string Address { get; private set; } + public User(string name, string id, string address) + { + Name = name; + Identifier = id; + Address = address; + } - public void UpdateAddress(string address) - { - Address = address; + public string Name { get; } + public string Identifier { get; } + public string Address { get; private set; } + + public void UpdateAddress(string address) + { + Address = address; + } } } diff --git a/Samples~/Scripts/DemoExample/ExampleFactory.cs b/Samples~/Scripts/DemoExample/ExampleFactory.cs index a9e1760a..95d84d51 100644 --- a/Samples~/Scripts/DemoExample/ExampleFactory.cs +++ b/Samples~/Scripts/DemoExample/ExampleFactory.cs @@ -1,23 +1,26 @@ using UnityEngine; -public class ExampleFactory : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - public static ExampleFactory Instance; - private IExampleManager _exampleManager = null; - - private void Awake() + public class ExampleFactory : MonoBehaviour { - if (Instance == null) - Instance = this; - else if(Instance != this) - Destroy(this); - - _exampleManager = new ExampleManager(); - _exampleManager.Init(); - } + public static ExampleFactory Instance; + private IExampleManager _exampleManager = null; - public IExampleManager GetExampleManager() - { - return _exampleManager; + private void Awake() + { + if (Instance == null) + Instance = this; + else if (Instance != this) + Destroy(this); + + _exampleManager = new ExampleManager(); + _exampleManager.Init(); + } + + public IExampleManager GetExampleManager() + { + return _exampleManager; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs b/Samples~/Scripts/DemoExample/InventoryManager.cs index b47d44f8..805ff7c1 100644 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs +++ b/Samples~/Scripts/DemoExample/InventoryManager.cs @@ -3,214 +3,221 @@ using UnityEngine.Events; using Logger = TezosSDK.Helpers.Logger; - -[RequireComponent(typeof(SnapController))] -public class InventoryManager : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - public UnityEvent onItemMint; - public UnityEvent onInventoryRefresh; - - [SerializeField] private Draggable itemPrefab; - [SerializeField] private List inventorySlots; - [SerializeField] private List equippedSlots; - [SerializeField] private List draggables = new List(); - [SerializeField] private StatsView statsView; - [SerializeField] private ItemView itemView; - - private Dictionary _itemIDtoDraggable = new Dictionary(); - private SnapController _snapController; - private List _lastHeldItems = new List(); - - private const string PlayerPrefsInvKey = "_inv_"; - private const string PlayerPrefsEquipKey = "_eq_"; - - private void Start() + [RequireComponent(typeof(SnapController))] + public class InventoryManager : MonoBehaviour { - _snapController = GetComponent(); - } + public UnityEvent onItemMint; + public UnityEvent onInventoryRefresh; - private void OnApplicationQuit() - { - // no need for local storage, since data need to be coming from the blockchain - //SaveInventoryLocally(); - } + [SerializeField] private Draggable itemPrefab; + [SerializeField] private List inventorySlots; + [SerializeField] private List equippedSlots; + [SerializeField] private List draggables = new List(); + [SerializeField] private StatsView statsView; + [SerializeField] private ItemView itemView; - public void Init(List items) - { - //ClearInventory(); - UpdateItems(items); - UpdateSnapController(); - - // no need for local storage, since data need to be coming from the blockchain - //LoadLocalInventory(); - } + private Dictionary _itemIDtoDraggable = new Dictionary(); + private SnapController _snapController; + private List _lastHeldItems = new List(); - private void AddItem(IItemModel itemModel) - { - Draggable newItem = Instantiate(itemPrefab, this.transform); - ItemReseource itemRes = Resources.Load(itemModel.ResourcePath); - if (itemRes != null) - newItem.Sprite = itemRes.ItemSprite; - else - Logger.LogError("Could find resource file for " + itemModel.ResourcePath); - newItem.Item = itemModel; - newItem.OnClick = OnItemClicked; - draggables.Add(newItem); - ItemSnapPoint emptySlot = GetFirstEmptySlot(); - if (emptySlot != null) + private const string PlayerPrefsInvKey = "_inv_"; + private const string PlayerPrefsEquipKey = "_eq_"; + + private void Start() { - newItem.SetCurrentSlot(emptySlot); - _itemIDtoDraggable[itemModel.ID] = newItem; + _snapController = GetComponent(); } - else + + private void OnApplicationQuit() { - Logger.LogError("Trying to add an item but Inventory is full!"); - return; + // no need for local storage, since data need to be coming from the blockchain + //SaveInventoryLocally(); } - } - /// - /// Adds any missing items and removes any items that should be gone. - /// - public void UpdateItems(List items) - { - ClearInventory(); - UpdateStatsView(); - _lastHeldItems.Clear(); - foreach (IItemModel item in items) + public void Init(List items) { - _lastHeldItems.Add(item.ID); - if (!_itemIDtoDraggable.ContainsKey(item.ID)) - { - AddItem(item); - } + //ClearInventory(); + UpdateItems(items); + UpdateSnapController(); + + // no need for local storage, since data need to be coming from the blockchain + //LoadLocalInventory(); } - foreach (var itemToRemove in _itemIDtoDraggable) + private void AddItem(IItemModel itemModel) { - if (!_lastHeldItems.Contains(itemToRemove.Value.Item.ID)) + Draggable newItem = Instantiate(itemPrefab, this.transform); + ItemReseource itemRes = Resources.Load(itemModel.ResourcePath); + if (itemRes != null) + newItem.Sprite = itemRes.ItemSprite; + else + Logger.LogError("Could find resource file for " + itemModel.ResourcePath); + newItem.Item = itemModel; + newItem.OnClick = OnItemClicked; + draggables.Add(newItem); + ItemSnapPoint emptySlot = GetFirstEmptySlot(); + if (emptySlot != null) { - itemToRemove.Value.CurrentSlot.RemoveItemInSlot(); - //Uncertain if RemoveItemInSlot's event also removes the item from the dictionary or not. - //_itemIDtoDraggable.Remove(itemToRemove.Key); + newItem.SetCurrentSlot(emptySlot); + _itemIDtoDraggable[itemModel.ID] = newItem; + } + else + { + Logger.LogError("Trying to add an item but Inventory is full!"); + return; } } - } - private void ClearInventory() - { - foreach (var snapSlot in inventorySlots) + /// + /// Adds any missing items and removes any items that should be gone. + /// + public void UpdateItems(List items) { - snapSlot.RemoveItemInSlot(); - } - - foreach (var snapSlot in equippedSlots) - { - snapSlot.RemoveItemInSlot(); + ClearInventory(); + UpdateStatsView(); + _lastHeldItems.Clear(); + foreach (IItemModel item in items) + { + _lastHeldItems.Add(item.ID); + if (!_itemIDtoDraggable.ContainsKey(item.ID)) + { + AddItem(item); + } + } + + foreach (var itemToRemove in _itemIDtoDraggable) + { + if (!_lastHeldItems.Contains(itemToRemove.Value.Item.ID)) + { + itemToRemove.Value.CurrentSlot.RemoveItemInSlot(); + //Uncertain if RemoveItemInSlot's event also removes the item from the dictionary or not. + //_itemIDtoDraggable.Remove(itemToRemove.Key); + } + } } - - foreach (var draggable in draggables) + + private void ClearInventory() { - Destroy(draggable.gameObject); - } - - draggables.Clear(); - _itemIDtoDraggable.Clear(); - } + foreach (var snapSlot in inventorySlots) + { + snapSlot.RemoveItemInSlot(); + } - private void UpdateSnapController() - { - _snapController.Draggables = draggables; - _snapController.SnapPoints = inventorySlots; - foreach(var slot in equippedSlots) - _snapController.SnapPoints.Add(slot); - } + foreach (var snapSlot in equippedSlots) + { + snapSlot.RemoveItemInSlot(); + } - private ItemSnapPoint GetFirstEmptySlot() - { - foreach (var snapPoint in inventorySlots) - if (!snapPoint.HasItem) - return snapPoint; - return null; - } - - private void SaveInventoryLocally() - { - PlayerPrefs.DeleteAll(); - string playerID = ((ExampleManager)ExampleFactory.Instance.GetExampleManager()).CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) + foreach (var draggable in draggables) + { + Destroy(draggable.gameObject); + } + + draggables.Clear(); + _itemIDtoDraggable.Clear(); + } + + private void UpdateSnapController() { - if (inventorySlots[i].HasItem) - PlayerPrefs.SetInt(invSaveLoc + i, inventorySlots[i].CurrentItemInSlot.Item.ID); + _snapController.Draggables = draggables; + _snapController.SnapPoints = inventorySlots; + foreach (var slot in equippedSlots) + _snapController.SnapPoints.Add(slot); } - for (int i = 0; i < equippedSlots.Count; i++) + + private ItemSnapPoint GetFirstEmptySlot() { - if (equippedSlots[i].HasItem) - PlayerPrefs.SetInt(eqSaveLoc + i, equippedSlots[i].CurrentItemInSlot.Item.ID); + foreach (var snapPoint in inventorySlots) + if (!snapPoint.HasItem) + return snapPoint; + return null; } - Logger.LogDebug("Inventory saved locally."); - } - private void LoadLocalInventory() - { - ExampleManager db = (ExampleManager)ExampleFactory.Instance.GetExampleManager(); - string playerID = db.CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) + private void SaveInventoryLocally() { - if (PlayerPrefs.HasKey(invSaveLoc + i)) + PlayerPrefs.DeleteAll(); + string playerID = ((ExampleManager) ExampleFactory.Instance.GetExampleManager()).CurrentUser.Identifier; + string invSaveLoc = playerID + PlayerPrefsInvKey; + string eqSaveLoc = playerID + PlayerPrefsEquipKey; + for (int i = 0; i < inventorySlots.Count; i++) { - int itemID = PlayerPrefs.GetInt(invSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(inventorySlots[i]); + if (inventorySlots[i].HasItem) + PlayerPrefs.SetInt(invSaveLoc + i, inventorySlots[i].CurrentItemInSlot.Item.ID); } + + for (int i = 0; i < equippedSlots.Count; i++) + { + if (equippedSlots[i].HasItem) + PlayerPrefs.SetInt(eqSaveLoc + i, equippedSlots[i].CurrentItemInSlot.Item.ID); + } + + Logger.LogDebug("Inventory saved locally."); } - for (int i = 0; i < equippedSlots.Count; i++) + + private void LoadLocalInventory() { - if (PlayerPrefs.HasKey(eqSaveLoc + i)) + ExampleManager db = (ExampleManager) ExampleFactory.Instance.GetExampleManager(); + string playerID = db.CurrentUser.Identifier; + string invSaveLoc = playerID + PlayerPrefsInvKey; + string eqSaveLoc = playerID + PlayerPrefsEquipKey; + for (int i = 0; i < inventorySlots.Count; i++) + { + if (PlayerPrefs.HasKey(invSaveLoc + i)) + { + int itemID = PlayerPrefs.GetInt(invSaveLoc + i); + _itemIDtoDraggable[itemID].SetCurrentSlot(inventorySlots[i]); + } + } + + for (int i = 0; i < equippedSlots.Count; i++) { - int itemID = PlayerPrefs.GetInt(eqSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(equippedSlots[i]); + if (PlayerPrefs.HasKey(eqSaveLoc + i)) + { + int itemID = PlayerPrefs.GetInt(eqSaveLoc + i); + _itemIDtoDraggable[itemID].SetCurrentSlot(equippedSlots[i]); + } } + + Logger.LogDebug("Inventory loaded."); } - Logger.LogDebug("Inventory loaded."); - } - public void UpdateStatsView() - { - StatParams heroStats = new StatParams(); - - foreach (var slot in equippedSlots) + public void UpdateStatsView() { - if (!slot.HasItem) - continue; - StatParams sp = slot.CurrentItemInSlot.Item.Stats; - foreach (var prop in sp.GetType().GetProperties()) + StatParams heroStats = new StatParams(); + + foreach (var slot in equippedSlots) { - float value = (float)prop.GetValue(sp) + (float)prop.GetValue(heroStats); - prop.SetValue(heroStats, value); + if (!slot.HasItem) + continue; + StatParams sp = slot.CurrentItemInSlot.Item.Stats; + foreach (var prop in sp.GetType().GetProperties()) + { + float value = (float) prop.GetValue(sp) + (float) prop.GetValue(heroStats); + prop.SetValue(heroStats, value); + } } + + statsView.DisplayStats(heroStats); } - statsView.DisplayStats(heroStats); - } - public void OnMintButtonClicked() - { - onItemMint.Invoke(); - } + public void OnMintButtonClicked() + { + onItemMint.Invoke(); + } - public void OnRefreshButtonClicked() - { - onInventoryRefresh.Invoke(); - } + public void OnRefreshButtonClicked() + { + onInventoryRefresh.Invoke(); + } - public void OnItemClicked(Draggable item) - { - itemView.transform.parent.gameObject.SetActive(true); - itemView.gameObject.SetActive(true); - itemView.DisplayItem(item.Item, item.Sprite); - itemView.GetComponent().SetItem(item.Item); + public void OnItemClicked(Draggable item) + { + itemView.transform.parent.gameObject.SetActive(true); + itemView.gameObject.SetActive(true); + itemView.DisplayItem(item.Item, item.Sprite); + itemView.GetComponent().SetItem(item.Item); + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/MarketManager.cs b/Samples~/Scripts/DemoExample/MarketManager.cs index 75a40b69..3cf56519 100644 --- a/Samples~/Scripts/DemoExample/MarketManager.cs +++ b/Samples~/Scripts/DemoExample/MarketManager.cs @@ -2,66 +2,70 @@ using System.Security.Cryptography; using UnityEngine; -public class MarketManager : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private ItemView itemViewPrefab; - [SerializeField] private ItemView itemFullDisplay; - [SerializeField] private Transform contentParent; - - private List _marketItems = new List(); - private ItemView _currentSelectedItem; - - public void Init(List items) + public class MarketManager : MonoBehaviour { - ClearMarket(); - - foreach (var item in items) - AddItem(item); - } + [SerializeField] private ItemView itemViewPrefab; + [SerializeField] private ItemView itemFullDisplay; + [SerializeField] private Transform contentParent; - public void CheckSelection() - { - if (_currentSelectedItem == null) return; + private List _marketItems = new List(); + private ItemView _currentSelectedItem; - itemFullDisplay.DisplayItem(null, null); - } - - private void AddItem(IItemModel itemModel) - { - ItemView newItem = Instantiate(itemViewPrefab, contentParent); - newItem.DisplayItem(itemModel); - newItem.OnItemSelected = OnItemSelected; - _marketItems.Add(newItem); - } + public void Init(List items) + { + ClearMarket(); - private void ClearMarket() - { - _marketItems = new List(); - foreach (Transform child in contentParent) + foreach (var item in items) + AddItem(item); + } + + public void CheckSelection() + { + if (_currentSelectedItem == null) return; + + itemFullDisplay.DisplayItem(null, null); + } + + private void AddItem(IItemModel itemModel) { - Destroy(child.gameObject); + ItemView newItem = Instantiate(itemViewPrefab, contentParent); + newItem.DisplayItem(itemModel); + newItem.OnItemSelected = OnItemSelected; + _marketItems.Add(newItem); } - CheckSelection(); - } - private void OnItemSelected(ItemView selectedItem) - { - if (_currentSelectedItem != null) - _currentSelectedItem.Unselect(); + private void ClearMarket() + { + _marketItems = new List(); + foreach (Transform child in contentParent) + { + Destroy(child.gameObject); + } - if (_currentSelectedItem == selectedItem) + CheckSelection(); + } + + private void OnItemSelected(ItemView selectedItem) { - selectedItem.Unselect(); + if (_currentSelectedItem != null) + _currentSelectedItem.Unselect(); + + if (_currentSelectedItem == selectedItem) + { + selectedItem.Unselect(); + if (itemFullDisplay != null) + itemFullDisplay.ClearItem(); + _currentSelectedItem = null; + return; + } + + selectedItem.Select(); + _currentSelectedItem = selectedItem; if (itemFullDisplay != null) - itemFullDisplay.ClearItem(); - _currentSelectedItem = null; - return; + itemFullDisplay.DisplayItem(selectedItem.Item, selectedItem.CachedSprite); + itemFullDisplay.GetComponent().SetItem(selectedItem.Item); } - - selectedItem.Select(); - _currentSelectedItem = selectedItem; - if (itemFullDisplay != null) - itemFullDisplay.DisplayItem(selectedItem.Item, selectedItem.CachedSprite); - itemFullDisplay.GetComponent().SetItem(selectedItem.Item); } } diff --git a/Samples~/Scripts/DemoExample/UI/Draggable.cs b/Samples~/Scripts/DemoExample/UI/Draggable.cs index 79d1112e..4d81d026 100644 --- a/Samples~/Scripts/DemoExample/UI/Draggable.cs +++ b/Samples~/Scripts/DemoExample/UI/Draggable.cs @@ -3,68 +3,71 @@ using UnityEngine.EventSystems; using UnityEngine.UI; -public class Draggable : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IEndDragHandler, IDragHandler +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private ItemSnapPoint _currentSlot; - [SerializeField] private Image image; - - public IItemModel Item { get; set; } - public Action OnBeginDragging; - public Action OnEndDragging; - public Action OnClick; - public ItemSnapPoint CurrentSlot => _currentSlot; - - public Sprite Sprite + public class Draggable : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IEndDragHandler, IDragHandler { - get { return image.sprite; } - set { image.sprite = value; } - } + [SerializeField] private ItemSnapPoint _currentSlot; + [SerializeField] private Image image; - private bool _isDragging = false; + public IItemModel Item { get; set; } + public Action OnBeginDragging; + public Action OnEndDragging; + public Action OnClick; + public ItemSnapPoint CurrentSlot => _currentSlot; - private void Start() - { - if (_currentSlot != null) - ResetPosition(); - } + public Sprite Sprite + { + get { return image.sprite; } + set { image.sprite = value; } + } - public void OnPointerClick(PointerEventData eventData) - { - if(!_isDragging) - OnClick?.Invoke(this); - } + private bool _isDragging = false; - public void OnBeginDrag(PointerEventData eventData) - { - _isDragging = true; - OnBeginDragging?.Invoke(this); - } + private void Start() + { + if (_currentSlot != null) + ResetPosition(); + } - public void OnEndDrag(PointerEventData eventData) - { - _isDragging = false; - OnEndDragging?.Invoke(this); - } + public void OnPointerClick(PointerEventData eventData) + { + if (!_isDragging) + OnClick?.Invoke(this); + } - public void OnDrag(PointerEventData eventData) - { - transform.position = Input.mousePosition; - } + public void OnBeginDrag(PointerEventData eventData) + { + _isDragging = true; + OnBeginDragging?.Invoke(this); + } - public void SetCurrentSlot(ItemSnapPoint slot) - { - ItemSnapPoint prevSlot = _currentSlot; - _currentSlot = slot; - _currentSlot.SetItemInSlot(this); - transform.position = _currentSlot.transform.position; - if (prevSlot != null) - prevSlot.RemoveItemInSlot(); - } + public void OnEndDrag(PointerEventData eventData) + { + _isDragging = false; + OnEndDragging?.Invoke(this); + } - public void ResetPosition() - { - _currentSlot.SetItemInSlot(this); - if (_currentSlot != null) + public void OnDrag(PointerEventData eventData) + { + transform.position = Input.mousePosition; + } + + public void SetCurrentSlot(ItemSnapPoint slot) + { + ItemSnapPoint prevSlot = _currentSlot; + _currentSlot = slot; + _currentSlot.SetItemInSlot(this); transform.position = _currentSlot.transform.position; + if (prevSlot != null) + prevSlot.RemoveItemInSlot(); + } + + public void ResetPosition() + { + _currentSlot.SetItemInSlot(this); + if (_currentSlot != null) + transform.position = _currentSlot.transform.position; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/DraggableItemVisual.cs b/Samples~/Scripts/DemoExample/UI/DraggableItemVisual.cs index 996fdb8e..35fc7f0b 100644 --- a/Samples~/Scripts/DemoExample/UI/DraggableItemVisual.cs +++ b/Samples~/Scripts/DemoExample/UI/DraggableItemVisual.cs @@ -3,73 +3,76 @@ using UnityEngine; using UnityEngine.EventSystems; -[System.Obsolete] -public class DraggableItemVisual : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IEndDragHandler, IDragHandler +namespace TezosSDK.Samples.DemoExample { - private ItemSlot _curSlot; - - /// - /// Set the current slot - /// - /// The slot to be set to - public void SetSlot(ItemSlot slot) + [System.Obsolete] + public class DraggableItemVisual : MonoBehaviour, IPointerClickHandler, IBeginDragHandler, IEndDragHandler, IDragHandler { - _curSlot = slot; - } + private ItemSlot _curSlot; - //Sets the Item placement and size to be that of the slot - public void SetItemPlacement(ItemSlot slot) - { - transform.SetParent(slot.ItemSpace); - RectTransform rect = GetComponent(); - rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 0); - rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 0); - rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 0); - rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, 0); - } + /// + /// Set the current slot + /// + /// The slot to be set to + public void SetSlot(ItemSlot slot) + { + _curSlot = slot; + } - public void OnPointerClick(PointerEventData eventData) - { - - } + //Sets the Item placement and size to be that of the slot + public void SetItemPlacement(ItemSlot slot) + { + transform.SetParent(slot.ItemSpace); + RectTransform rect = GetComponent(); + rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, 0, 0); + rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0, 0); + rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, 0); + rect.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0, 0); + } - public void OnBeginDrag(PointerEventData eventData) - { - - } + public void OnPointerClick(PointerEventData eventData) + { - public void OnEndDrag(PointerEventData eventData) - { - //look through all things under draggable - RaycastHit[] hits; - RaycastHit hit; - ItemSlot slot = null; - var rayPosition = Input.mousePosition; - rayPosition.z -= 10; - hits = Physics.RaycastAll(rayPosition, transform.forward, 100.0f); - for (int i = 0; i < hits.Length; i++) + } + + public void OnBeginDrag(PointerEventData eventData) { - slot = null; - hit = hits[i]; - slot = hit.transform.GetComponent(); - if (slot == null) - { - continue; - } - //If the draggable is over a slot, check to see if it's open and if so, assign it to it - if (slot.ItemInSlot != null) + } + + public void OnEndDrag(PointerEventData eventData) + { + //look through all things under draggable + RaycastHit[] hits; + RaycastHit hit; + ItemSlot slot = null; + var rayPosition = Input.mousePosition; + rayPosition.z -= 10; + hits = Physics.RaycastAll(rayPosition, transform.forward, 100.0f); + for (int i = 0; i < hits.Length; i++) { - _curSlot.SetToSlot(this); - return; - } + slot = null; + hit = hits[i]; + slot = hit.transform.GetComponent(); + if (slot == null) + { + continue; + } + + //If the draggable is over a slot, check to see if it's open and if so, assign it to it + if (slot.ItemInSlot != null) + { + _curSlot.SetToSlot(this); + return; + } - slot.SetToSlot(this); + slot.SetToSlot(this); + } } - } - public void OnDrag(PointerEventData eventData) - { - transform.position = Input.mousePosition; + public void OnDrag(PointerEventData eventData) + { + transform.position = Input.mousePosition; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/FlexibleGridLayout.cs b/Samples~/Scripts/DemoExample/UI/FlexibleGridLayout.cs index d5d04ec2..51aa9e0b 100644 --- a/Samples~/Scripts/DemoExample/UI/FlexibleGridLayout.cs +++ b/Samples~/Scripts/DemoExample/UI/FlexibleGridLayout.cs @@ -1,88 +1,92 @@ using UnityEngine; using UnityEngine.UI; -public class FlexibleGridLayout : LayoutGroup +namespace TezosSDK.Samples.DemoExample { - public enum FitType - { - Uniform, - Width, - Height, - FixedRows, - FixedColumns - } - - [SerializeField] FitType _fitType = FitType.Uniform; - [SerializeField, Min(1)] private int _rows; - [SerializeField, Min(1)] private int _columns; - [SerializeField] private Vector2 _cellSize; - [SerializeField] private Vector2 _spacing; - - [SerializeField] private bool _fitX; - [SerializeField] private bool _fitY; - - /// - /// Calculates and updates the placement of grid elements based on parameters - /// - public override void CalculateLayoutInputHorizontal() + public class FlexibleGridLayout : LayoutGroup { - base.CalculateLayoutInputHorizontal(); - - if (_fitType == FitType.Uniform || _fitType == FitType.Width || _fitType == FitType.Height) + public enum FitType { - float sqrt = Mathf.Sqrt(transform.childCount); - _rows = Mathf.CeilToInt(sqrt); - _columns = Mathf.CeilToInt(sqrt); + Uniform, + Width, + Height, + FixedRows, + FixedColumns } - if (_fitType == FitType.Width || _fitType == FitType.FixedColumns) - { - _rows = Mathf.CeilToInt(transform.childCount / (float)_columns); - } - if (_fitType == FitType.Height || _fitType == FitType.FixedRows) + [SerializeField] FitType _fitType = FitType.Uniform; + [SerializeField, Min(1)] private int _rows; + [SerializeField, Min(1)] private int _columns; + [SerializeField] private Vector2 _cellSize; + [SerializeField] private Vector2 _spacing; + + [SerializeField] private bool _fitX; + [SerializeField] private bool _fitY; + + /// + /// Calculates and updates the placement of grid elements based on parameters + /// + public override void CalculateLayoutInputHorizontal() { - _columns = Mathf.CeilToInt(transform.childCount / (float)_rows); - } + base.CalculateLayoutInputHorizontal(); - float parentWidth = rectTransform.rect.width; - float parentHeight = rectTransform.rect.height; + if (_fitType == FitType.Uniform || _fitType == FitType.Width || _fitType == FitType.Height) + { + float sqrt = Mathf.Sqrt(transform.childCount); + _rows = Mathf.CeilToInt(sqrt); + _columns = Mathf.CeilToInt(sqrt); + } - float cellWidth = (parentWidth / (float)_columns) - ((_spacing.x/(float)_columns) * (_columns - 1)) - (padding.left / (float) _columns) - (padding.right / (float) _columns); - float cellHeight = (parentHeight / (float)_rows) - ((_spacing.y / (float)_rows) * (_rows - 1)) - (padding.top / (float)_rows) - (padding.bottom / (float)_rows); + if (_fitType == FitType.Width || _fitType == FitType.FixedColumns) + { + _rows = Mathf.CeilToInt(transform.childCount / (float) _columns); + } - _cellSize.x = _fitX ? cellWidth : _cellSize.x; - _cellSize.y = _fitY ? cellHeight : _cellSize.y; + if (_fitType == FitType.Height || _fitType == FitType.FixedRows) + { + _columns = Mathf.CeilToInt(transform.childCount / (float) _rows); + } - int columnCount = 0; - int rowCount = 0; + float parentWidth = rectTransform.rect.width; + float parentHeight = rectTransform.rect.height; - for (int i = 0; i < rectChildren.Count; i++) - { - rowCount = i / _columns; - columnCount = i % _columns; + float cellWidth = (parentWidth / (float) _columns) - ((_spacing.x / (float) _columns) * (_columns - 1)) - (padding.left / (float) _columns) - (padding.right / (float) _columns); + float cellHeight = (parentHeight / (float) _rows) - ((_spacing.y / (float) _rows) * (_rows - 1)) - (padding.top / (float) _rows) - (padding.bottom / (float) _rows); + + _cellSize.x = _fitX ? cellWidth : _cellSize.x; + _cellSize.y = _fitY ? cellHeight : _cellSize.y; + + int columnCount = 0; + int rowCount = 0; - var item = rectChildren[i]; + for (int i = 0; i < rectChildren.Count; i++) + { + rowCount = i / _columns; + columnCount = i % _columns; - var xPos = (_cellSize.x * columnCount) + (_spacing.x * columnCount) + padding.left; - var yPos = (_cellSize.y * rowCount) + (_spacing.y * rowCount) + padding.top; + var item = rectChildren[i]; - SetChildAlongAxis(item, 0, xPos, _cellSize.x); - SetChildAlongAxis(item, 1, yPos, _cellSize.y); + var xPos = (_cellSize.x * columnCount) + (_spacing.x * columnCount) + padding.left; + var yPos = (_cellSize.y * rowCount) + (_spacing.y * rowCount) + padding.top; + + SetChildAlongAxis(item, 0, xPos, _cellSize.x); + SetChildAlongAxis(item, 1, yPos, _cellSize.y); + } } - } - public override void CalculateLayoutInputVertical() - { - //Unused for now - } + public override void CalculateLayoutInputVertical() + { + //Unused for now + } - public override void SetLayoutHorizontal() - { - //Unused for now - } + public override void SetLayoutHorizontal() + { + //Unused for now + } - public override void SetLayoutVertical() - { - //Unused for now + public override void SetLayoutVertical() + { + //Unused for now + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/ItemController.cs b/Samples~/Scripts/DemoExample/UI/ItemController.cs index 6f8069a9..c77519b1 100644 --- a/Samples~/Scripts/DemoExample/UI/ItemController.cs +++ b/Samples~/Scripts/DemoExample/UI/ItemController.cs @@ -1,65 +1,66 @@ using System; -using System.Collections; -using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; -public class ItemController : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - private IItemModel item; + public class ItemController : MonoBehaviour + { + private IItemModel item; - [SerializeField] private TMPro.TMP_InputField transferAddressInput; - [SerializeField] private TMPro.TMP_InputField amountInput; - [SerializeField] private TMPro.TMP_InputField priceInput; - [SerializeField] private Button transferButton; - [SerializeField] private Button addToMarketButton; - [SerializeField] private Button removeFromMarketButton; + [SerializeField] private TMPro.TMP_InputField transferAddressInput; + [SerializeField] private TMPro.TMP_InputField amountInput; + [SerializeField] private TMPro.TMP_InputField priceInput; + [SerializeField] private Button transferButton; + [SerializeField] private Button addToMarketButton; + [SerializeField] private Button removeFromMarketButton; - private bool _hasMoreThanOneItem = false; - - public void SetItem(IItemModel newItem) - { - item = newItem; - - // is the item already on the market or not - ExampleFactory.Instance.GetExampleManager().IsItemOnMarket(item.ID, item.Owner, OnIsItemOnMarket); - - // check the amount of the item (using the price) - _hasMoreThanOneItem = item.Price > 1; - amountInput.gameObject.SetActive(_hasMoreThanOneItem); - - // reset input fields - transferAddressInput.text = ""; - amountInput.text = ""; - priceInput.text = ""; - } + private bool _hasMoreThanOneItem = false; - public void TransferItem() - { - string destAddress = transferAddressInput.text; - string amountString = amountInput.text; - int amount = 1; - if (_hasMoreThanOneItem) - amount = (amountString == String.Empty)? 1 : int.Parse(amountString); - ExampleFactory.Instance.GetExampleManager().TransferItem(item.ID, amount, destAddress); - } + public void SetItem(IItemModel newItem) + { + item = newItem; - public void AddItemToMarket() - { - int price = int.Parse(priceInput.text); - ExampleFactory.Instance.GetExampleManager().AddItemToMarket(item.ID, price); - } + // is the item already on the market or not + ExampleFactory.Instance.GetExampleManager().IsItemOnMarket(item.ID, item.Owner, OnIsItemOnMarket); - public void RemoveItemFromMarket() - { - ExampleFactory.Instance.GetExampleManager().RemoveItemFromMarket(item.ID); - } - - public void OnIsItemOnMarket(bool success) - { - addToMarketButton.gameObject.SetActive(!success); - removeFromMarketButton.gameObject.SetActive(success); - transferButton.gameObject.SetActive(!success); - priceInput.interactable = !success; + // check the amount of the item (using the price) + _hasMoreThanOneItem = item.Price > 1; + amountInput.gameObject.SetActive(_hasMoreThanOneItem); + + // reset input fields + transferAddressInput.text = ""; + amountInput.text = ""; + priceInput.text = ""; + } + + public void TransferItem() + { + string destAddress = transferAddressInput.text; + string amountString = amountInput.text; + int amount = 1; + if (_hasMoreThanOneItem) + amount = (amountString == String.Empty) ? 1 : int.Parse(amountString); + ExampleFactory.Instance.GetExampleManager().TransferItem(item.ID, amount, destAddress); + } + + public void AddItemToMarket() + { + int price = int.Parse(priceInput.text); + ExampleFactory.Instance.GetExampleManager().AddItemToMarket(item.ID, price); + } + + public void RemoveItemFromMarket() + { + ExampleFactory.Instance.GetExampleManager().RemoveItemFromMarket(item.ID); + } + + public void OnIsItemOnMarket(bool success) + { + addToMarketButton.gameObject.SetActive(!success); + removeFromMarketButton.gameObject.SetActive(success); + transferButton.gameObject.SetActive(!success); + priceInput.interactable = !success; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/ItemSlot.cs b/Samples~/Scripts/DemoExample/UI/ItemSlot.cs index 965c8ba0..a7100f99 100644 --- a/Samples~/Scripts/DemoExample/UI/ItemSlot.cs +++ b/Samples~/Scripts/DemoExample/UI/ItemSlot.cs @@ -1,31 +1,34 @@ using UnityEngine; using UnityEngine.UI; -[System.Obsolete] -[RequireComponent(typeof(Image))] -public class ItemSlot : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private Transform _itemSpace; + [System.Obsolete] + [RequireComponent(typeof(Image))] + public class ItemSlot : MonoBehaviour + { + [SerializeField] private Transform _itemSpace; - public Transform ItemSpace => _itemSpace; + public Transform ItemSpace => _itemSpace; - public DraggableItemVisual ItemInSlot => _itemInSlot; + public DraggableItemVisual ItemInSlot => _itemInSlot; - private DraggableItemVisual _itemInSlot; + private DraggableItemVisual _itemInSlot; - /// - /// assigns an item to slot and lets the item know what slot it's set to - /// - /// The item to be asigned to this slot - public void SetToSlot(DraggableItemVisual item) - { - if (_itemInSlot != item) + /// + /// assigns an item to slot and lets the item know what slot it's set to + /// + /// The item to be asigned to this slot + public void SetToSlot(DraggableItemVisual item) { - _itemInSlot = item; - _itemInSlot.SetSlot(this); - } + if (_itemInSlot != item) + { + _itemInSlot = item; + _itemInSlot.SetSlot(this); + } - item.SetItemPlacement(this); + item.SetItemPlacement(this); + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/ItemSnapPoint.cs b/Samples~/Scripts/DemoExample/UI/ItemSnapPoint.cs index b92d090a..60126ada 100644 --- a/Samples~/Scripts/DemoExample/UI/ItemSnapPoint.cs +++ b/Samples~/Scripts/DemoExample/UI/ItemSnapPoint.cs @@ -1,65 +1,65 @@ using UnityEngine; -using System; using System.Linq; using UnityEngine.Events; -using UnityEngine.EventSystems; using UnityEngine.UI; -[RequireComponent(typeof(Image))] -public class ItemSnapPoint : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private bool snappable = true; - [SerializeField] private bool allowAllItemTypes = true; - [SerializeField] private ItemType[] allowedTypes; + [RequireComponent(typeof(Image))] + public class ItemSnapPoint : MonoBehaviour + { + [SerializeField] private bool snappable = true; + [SerializeField] private bool allowAllItemTypes = true; + [SerializeField] private ItemType[] allowedTypes; - private Draggable _currentItemInSlot; - private Image _image; - private bool _highledEnabled = true; - private Color _originalColor; - private Color _highlightColor; + private Draggable _currentItemInSlot; + private Image _image; + private bool _highledEnabled = true; + private Color _originalColor; + private Color _highlightColor; - public bool AllowsAllItemTypes => allowAllItemTypes; - public bool HasItem => _currentItemInSlot != null; - public bool IsSnappable => snappable; - public Draggable CurrentItemInSlot => _currentItemInSlot; - - [Header("Events:")] - [SerializeField] public UnityEvent OnItemSet; - [SerializeField] public UnityEvent OnItemRemoved; + public bool AllowsAllItemTypes => allowAllItemTypes; + public bool HasItem => _currentItemInSlot != null; + public bool IsSnappable => snappable; + public Draggable CurrentItemInSlot => _currentItemInSlot; - private void Start() - { - _image = GetComponent(); - _originalColor = _image.color; - _highlightColor = Color.white; - } + [Header("Events:")] [SerializeField] public UnityEvent OnItemSet; + [SerializeField] public UnityEvent OnItemRemoved; - public void SetItemInSlot(Draggable item) - { - _currentItemInSlot = item; - OnItemSet?.Invoke(); - } + private void Start() + { + _image = GetComponent(); + _originalColor = _image.color; + _highlightColor = Color.white; + } - public void RemoveItemInSlot() - { - _currentItemInSlot = null; - OnItemRemoved?.Invoke(); - } + public void SetItemInSlot(Draggable item) + { + _currentItemInSlot = item; + OnItemSet?.Invoke(); + } - public void Highlight(bool highlight) - { - _image.color = (highlight) ? _highlightColor : _originalColor; - } + public void RemoveItemInSlot() + { + _currentItemInSlot = null; + OnItemRemoved?.Invoke(); + } - public void EnableHighlighting(bool enable) - { - _highledEnabled = enable; - if (!_highledEnabled) - _image.color = _originalColor; - } + public void Highlight(bool highlight) + { + _image.color = (highlight) ? _highlightColor : _originalColor; + } - public bool AcceptsItem(IItemModel item) - { - return allowedTypes.Contains(item.Type); + public void EnableHighlighting(bool enable) + { + _highledEnabled = enable; + if (!_highledEnabled) + _image.color = _originalColor; + } + + public bool AcceptsItem(IItemModel item) + { + return allowedTypes.Contains(item.Type); + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/ItemView.cs b/Samples~/Scripts/DemoExample/UI/ItemView.cs index 09809d03..af84b35f 100644 --- a/Samples~/Scripts/DemoExample/UI/ItemView.cs +++ b/Samples~/Scripts/DemoExample/UI/ItemView.cs @@ -4,99 +4,103 @@ using UnityEngine.EventSystems; using UnityEngine.UI; -public class ItemView : MonoBehaviour, IPointerClickHandler +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private Image backgroundImage; - [SerializeField] private Image itemImage; - [SerializeField] private TMPro.TextMeshProUGUI priceText; - [SerializeField] private TMPro.TextMeshProUGUI nameText; - [SerializeField] private TMPro.TextMeshProUGUI typeText; - [SerializeField] private StatsView statsView; - [SerializeField] private Color selectColor = Color.white; - [SerializeField] private Sprite defaultImage; + public class ItemView : MonoBehaviour, IPointerClickHandler + { + [SerializeField] private Image backgroundImage; + [SerializeField] private Image itemImage; + [SerializeField] private TMPro.TextMeshProUGUI priceText; + [SerializeField] private TMPro.TextMeshProUGUI nameText; + [SerializeField] private TMPro.TextMeshProUGUI typeText; + [SerializeField] private StatsView statsView; + [SerializeField] private Color selectColor = Color.white; + [SerializeField] private Sprite defaultImage; - private IItemModel _item; - private Color _originalBackgroundColor; - private Sprite _cachedSprite; - private Sprite _initSprite; + private IItemModel _item; + private Color _originalBackgroundColor; + private Sprite _cachedSprite; + private Sprite _initSprite; - public IItemModel Item => _item; - public Action OnItemSelected; - public Sprite CachedSprite => _cachedSprite; + public IItemModel Item => _item; + public Action OnItemSelected; + public Sprite CachedSprite => _cachedSprite; - private void Start() - { - _originalBackgroundColor = backgroundImage.color; - _initSprite = itemImage.sprite; - } - - public void DisplayItem(IItemModel item, Sprite cahcedSprite = null) - { - if (item == null) + private void Start() { - Debug.LogWarning("item in market currently null -test message-"); - - priceText.text = "Price"; - nameText.text = "Name"; - typeText.text = "[Type]"; - StatParams statParams = new StatParams(0, 0, 0, 0, 0); - statsView.DisplayStats(statParams); - itemImage.sprite = _initSprite; - return; + _originalBackgroundColor = backgroundImage.color; + _initSprite = itemImage.sprite; } - else - { - if (priceText != null) - priceText.text = item.Price.ToString(CultureInfo.InvariantCulture); - if (nameText != null) - nameText.text = item.Name; - if (typeText != null) - typeText.text = item.Type.ToString(); - if (statsView != null) - statsView.DisplayStats(item.Stats); - if (cahcedSprite != null) + public void DisplayItem(IItemModel item, Sprite cahcedSprite = null) + { + if (item == null) { - itemImage.sprite = cahcedSprite; - _cachedSprite = itemImage.sprite; + Debug.LogWarning("item in market currently null -test message-"); + + priceText.text = "Price"; + nameText.text = "Name"; + typeText.text = "[Type]"; + StatParams statParams = new StatParams(0, 0, 0, 0, 0); + statsView.DisplayStats(statParams); + itemImage.sprite = _initSprite; + return; } - else if (itemImage != null) + else { - ItemReseource itemRes = Resources.Load(item.ResourcePath); - itemImage.sprite = itemRes.ItemSprite; - _cachedSprite = itemImage.sprite; + + if (priceText != null) + priceText.text = item.Price.ToString(CultureInfo.InvariantCulture); + if (nameText != null) + nameText.text = item.Name; + if (typeText != null) + typeText.text = item.Type.ToString(); + if (statsView != null) + statsView.DisplayStats(item.Stats); + if (cahcedSprite != null) + { + itemImage.sprite = cahcedSprite; + _cachedSprite = itemImage.sprite; + } + else if (itemImage != null) + { + ItemReseource itemRes = Resources.Load(item.ResourcePath); + itemImage.sprite = itemRes.ItemSprite; + _cachedSprite = itemImage.sprite; + } } + + _item = item; } - _item = item; - } - public void OnPointerClick(PointerEventData eventData) - { - OnItemSelected?.Invoke(this); - } + public void OnPointerClick(PointerEventData eventData) + { + OnItemSelected?.Invoke(this); + } - public void Select() - { - backgroundImage.color = selectColor; - } + public void Select() + { + backgroundImage.color = selectColor; + } - public void Unselect() - { - backgroundImage.color = _originalBackgroundColor; - } + public void Unselect() + { + backgroundImage.color = _originalBackgroundColor; + } - public void ClearItem() - { - if (priceText != null) - priceText.text = string.Empty; - if (nameText != null) - nameText.text = string.Empty; - if (typeText != null) - typeText.text = string.Empty; - if (itemImage != null) - itemImage.sprite = defaultImage; - if (statsView != null) - statsView.Clear(); - _item = null; + public void ClearItem() + { + if (priceText != null) + priceText.text = string.Empty; + if (nameText != null) + nameText.text = string.Empty; + if (typeText != null) + typeText.text = string.Empty; + if (itemImage != null) + itemImage.sprite = defaultImage; + if (statsView != null) + statsView.Clear(); + _item = null; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/MarketItemController.cs b/Samples~/Scripts/DemoExample/UI/MarketItemController.cs index ee1ed8b4..34dd1918 100644 --- a/Samples~/Scripts/DemoExample/UI/MarketItemController.cs +++ b/Samples~/Scripts/DemoExample/UI/MarketItemController.cs @@ -3,32 +3,35 @@ using UnityEngine; using UnityEngine.UI; -public class MarketItemController : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - private IItemModel item; - - public void SetItem(IItemModel newItem) + public class MarketItemController : MonoBehaviour { - item = newItem; - } + private IItemModel item; - public void BuyItemFromMarket() - { - if(item != null) - ExampleFactory.Instance.GetExampleManager().BuyItem(item.Owner, item.ID); - else - Debug.LogError("No item selected!"); - } - - public void OnItemBoughtFromMarket(bool success) - { - if (success) + public void SetItem(IItemModel newItem) { - Debug.Log("Item removed from market!"); + item = newItem; } - else + + public void BuyItemFromMarket() + { + if (item != null) + ExampleFactory.Instance.GetExampleManager().BuyItem(item.Owner, item.ID); + else + Debug.LogError("No item selected!"); + } + + public void OnItemBoughtFromMarket(bool success) { - Debug.Log("Failed to remove item from market."); + if (success) + { + Debug.Log("Item removed from market!"); + } + else + { + Debug.Log("Failed to remove item from market."); + } } } } diff --git a/Samples~/Scripts/DemoExample/UI/PanelController.cs b/Samples~/Scripts/DemoExample/UI/PanelController.cs index 741b7350..4fe57dab 100644 --- a/Samples~/Scripts/DemoExample/UI/PanelController.cs +++ b/Samples~/Scripts/DemoExample/UI/PanelController.cs @@ -1,5 +1,8 @@ using UnityEngine; -public class PanelController : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { -} + public class PanelController : MonoBehaviour + { + } +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/SnapController.cs b/Samples~/Scripts/DemoExample/UI/SnapController.cs index 711043df..6863e10e 100644 --- a/Samples~/Scripts/DemoExample/UI/SnapController.cs +++ b/Samples~/Scripts/DemoExample/UI/SnapController.cs @@ -1,98 +1,101 @@ using System.Collections.Generic; using UnityEngine; -public class SnapController : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private List snapPoints; - [SerializeField] private List draggables; - [SerializeField] private float snapRange = 100f; + public class SnapController : MonoBehaviour + { + [SerializeField] private List snapPoints; + [SerializeField] private List draggables; + [SerializeField] private float snapRange = 100f; - private ItemSnapPoint _currentHighlighedSlot = null; - private Draggable _currentDraggable = null; - private bool _isDragging = false; + private ItemSnapPoint _currentHighlighedSlot = null; + private Draggable _currentDraggable = null; + private bool _isDragging = false; - private void Update() - { - if (_currentHighlighedSlot != null) - _currentHighlighedSlot.Highlight(false); - - if (_isDragging) + private void Update() { - _currentHighlighedSlot = GetNearestSlotFromMouse(); if (_currentHighlighedSlot != null) - _currentHighlighedSlot.Highlight(true); + _currentHighlighedSlot.Highlight(false); + + if (_isDragging) + { + _currentHighlighedSlot = GetNearestSlotFromMouse(); + if (_currentHighlighedSlot != null) + _currentHighlighedSlot.Highlight(true); + } } - } - public List SnapPoints - { - get => snapPoints; - set => snapPoints = value; - } - - public List Draggables - { - get => draggables; - set + public List SnapPoints + { + get => snapPoints; + set => snapPoints = value; + } + + public List Draggables { - draggables = value; - foreach (var draggable in draggables) + get => draggables; + set { - draggable.OnBeginDragging = OnItemDragBegin; - draggable.OnEndDragging = OnItemDragEnd; + draggables = value; + foreach (var draggable in draggables) + { + draggable.OnBeginDragging = OnItemDragBegin; + draggable.OnEndDragging = OnItemDragEnd; + } } } - } - - public void OnItemDragBegin(Draggable draggable) - { - _isDragging = true; - _currentDraggable = draggable; - } - public void OnItemDragEnd(Draggable draggable) - { - _isDragging = false; - _currentDraggable = null; - if (_currentHighlighedSlot != null) - draggable.SetCurrentSlot(_currentHighlighedSlot); - else - draggable.ResetPosition(); - } + public void OnItemDragBegin(Draggable draggable) + { + _isDragging = true; + _currentDraggable = draggable; + } - private void EnableSlotHighlighting(bool enable) - { - foreach (var snapPoint in snapPoints) + public void OnItemDragEnd(Draggable draggable) { - snapPoint.EnableHighlighting(enable); + _isDragging = false; + _currentDraggable = null; + if (_currentHighlighedSlot != null) + draggable.SetCurrentSlot(_currentHighlighedSlot); + else + draggable.ResetPosition(); } - } - private ItemSnapPoint GetNearestSlotFromMouse() - { - float closestDistance = -1; - ItemSnapPoint closestSnapPoint = null; - foreach (var snapPoint in snapPoints) + private void EnableSlotHighlighting(bool enable) { - // check if slot is snappable and empty - if ((!snapPoint.IsSnappable)||(snapPoint.HasItem)) - continue; - // check if slot accepts item type - if (!snapPoint.AllowsAllItemTypes) - if (!snapPoint.AcceptsItem(_currentDraggable.Item)) - continue; - // calculate distance from mouse to slot - float distance = Vector2.Distance(Input.mousePosition, snapPoint.transform.position); - if (closestSnapPoint == null || distance < closestDistance) + foreach (var snapPoint in snapPoints) { - closestDistance = distance; - closestSnapPoint = snapPoint; + snapPoint.EnableHighlighting(enable); } } - if (closestDistance <= snapRange) - return closestSnapPoint; - else - return null; + private ItemSnapPoint GetNearestSlotFromMouse() + { + float closestDistance = -1; + ItemSnapPoint closestSnapPoint = null; + foreach (var snapPoint in snapPoints) + { + // check if slot is snappable and empty + if ((!snapPoint.IsSnappable) || (snapPoint.HasItem)) + continue; + // check if slot accepts item type + if (!snapPoint.AllowsAllItemTypes) + if (!snapPoint.AcceptsItem(_currentDraggable.Item)) + continue; + // calculate distance from mouse to slot + float distance = Vector2.Distance(Input.mousePosition, snapPoint.transform.position); + if (closestSnapPoint == null || distance < closestDistance) + { + closestDistance = distance; + closestSnapPoint = snapPoint; + } + } + + if (closestDistance <= snapRange) + return closestSnapPoint; + else + return null; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/StatTextView.cs b/Samples~/Scripts/DemoExample/UI/StatTextView.cs index f833cbe3..3137d5f8 100644 --- a/Samples~/Scripts/DemoExample/UI/StatTextView.cs +++ b/Samples~/Scripts/DemoExample/UI/StatTextView.cs @@ -2,18 +2,21 @@ using System.Collections.Generic; using UnityEngine; -public class StatTextView : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private TMPro.TextMeshProUGUI statNameText; - [SerializeField] private TMPro.TextMeshProUGUI statValueText; - - public void SetStatName(string name) + public class StatTextView : MonoBehaviour { - statNameText.text = name; - } + [SerializeField] private TMPro.TextMeshProUGUI statNameText; + [SerializeField] private TMPro.TextMeshProUGUI statValueText; - public void SetStatValue(string value) - { - statValueText.text = value; + public void SetStatName(string name) + { + statNameText.text = name; + } + + public void SetStatValue(string value) + { + statValueText.text = value; + } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/StatsView.cs b/Samples~/Scripts/DemoExample/UI/StatsView.cs index f266cc1d..bf0d2095 100644 --- a/Samples~/Scripts/DemoExample/UI/StatsView.cs +++ b/Samples~/Scripts/DemoExample/UI/StatsView.cs @@ -2,30 +2,33 @@ using System.Text.RegularExpressions; using UnityEngine; -public class StatsView : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private StatTextView statTextPrefab; - - public void DisplayStats(StatParams stats) + public class StatsView : MonoBehaviour { - Clear(); - - PropertyInfo[] pis = stats.GetType().GetProperties(); - foreach (PropertyInfo pi in pis) + [SerializeField] private StatTextView statTextPrefab; + + public void DisplayStats(StatParams stats) { - StatTextView newStat = Instantiate(statTextPrefab, transform); - // convert name from camel case to sentence case - string sentName = Regex.Replace(pi.Name, @"\p{Lu}", m => " " + m.Value); - newStat.SetStatName(sentName); - newStat.SetStatValue(pi.GetValue(stats).ToString()); + Clear(); + + PropertyInfo[] pis = stats.GetType().GetProperties(); + foreach (PropertyInfo pi in pis) + { + StatTextView newStat = Instantiate(statTextPrefab, transform); + // convert name from camel case to sentence case + string sentName = Regex.Replace(pi.Name, @"\p{Lu}", m => " " + m.Value); + newStat.SetStatName(sentName); + newStat.SetStatValue(pi.GetValue(stats).ToString()); + } } - } - public void Clear() - { - foreach (Transform child in transform) + public void Clear() { - Destroy(child.gameObject); + foreach (Transform child in transform) + { + Destroy(child.gameObject); + } } } } diff --git a/Samples~/Scripts/DemoExample/UI/TabButton.cs b/Samples~/Scripts/DemoExample/UI/TabButton.cs index b7cf1811..bfe61336 100644 --- a/Samples~/Scripts/DemoExample/UI/TabButton.cs +++ b/Samples~/Scripts/DemoExample/UI/TabButton.cs @@ -3,62 +3,65 @@ using UnityEngine.EventSystems; using UnityEngine.Events; -[RequireComponent(typeof(Image))] -public class TabButton : MonoBehaviour, IPointerEnterHandler, IPointerClickHandler, IPointerExitHandler +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private TabGroup _tabGroup; - [SerializeField] private Image _background; - - public TabGroup TabGroup => _tabGroup; - public Image Background => _background; + [RequireComponent(typeof(Image))] + public class TabButton : MonoBehaviour, IPointerEnterHandler, IPointerClickHandler, IPointerExitHandler + { + [SerializeField] private TabGroup _tabGroup; + [SerializeField] private Image _background; - public UnityEvent OnTabSelected; - public UnityEvent OnTabDeselected; + public TabGroup TabGroup => _tabGroup; + public Image Background => _background; - public void OnPointerClick(PointerEventData eventData) - { - TabGroup.OnTabSelected(this); - } + public UnityEvent OnTabSelected; + public UnityEvent OnTabDeselected; - public void OnPointerEnter(PointerEventData eventData) - { - TabGroup.OnTabEnter(this); - } + public void OnPointerClick(PointerEventData eventData) + { + TabGroup.OnTabSelected(this); + } - public void OnPointerExit(PointerEventData eventData) - { - TabGroup.OnTabExit(this); - } + public void OnPointerEnter(PointerEventData eventData) + { + TabGroup.OnTabEnter(this); + } - void Awake() - { - if (_background == null) + public void OnPointerExit(PointerEventData eventData) { - _background = GetComponent(); + TabGroup.OnTabExit(this); } - _tabGroup.Subscribe(this); - } + void Awake() + { + if (_background == null) + { + _background = GetComponent(); + } - /// - /// To be called when the button is selected so that event callbacks can be used. - /// - public void Select() - { - if (OnTabSelected != null) + _tabGroup.Subscribe(this); + } + + /// + /// To be called when the button is selected so that event callbacks can be used. + /// + public void Select() { - OnTabSelected.Invoke(); + if (OnTabSelected != null) + { + OnTabSelected.Invoke(); + } } - } - /// - /// To be called when the button is deselected so that event callbacks can be used. - /// - public void Deselect() - { - if (OnTabDeselected != null) + /// + /// To be called when the button is deselected so that event callbacks can be used. + /// + public void Deselect() { - OnTabDeselected.Invoke(); + if (OnTabDeselected != null) + { + OnTabDeselected.Invoke(); + } } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/TabGroup.cs b/Samples~/Scripts/DemoExample/UI/TabGroup.cs index c0c556b1..1a866345 100644 --- a/Samples~/Scripts/DemoExample/UI/TabGroup.cs +++ b/Samples~/Scripts/DemoExample/UI/TabGroup.cs @@ -1,102 +1,106 @@ using System.Collections.Generic; using UnityEngine; -public class TabGroup : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private List _tabButtons; - [SerializeField] private Sprite _tabIdle; - [SerializeField] private Sprite _tabHover; - [SerializeField] private Sprite _tabActive; - [SerializeField] private List _pannelsToSwap; + public class TabGroup : MonoBehaviour + { + [SerializeField] private List _tabButtons; + [SerializeField] private Sprite _tabIdle; + [SerializeField] private Sprite _tabHover; + [SerializeField] private Sprite _tabActive; + [SerializeField] private List _pannelsToSwap; - public List TabButtons => _tabButtons; - public Sprite TabIdle => _tabIdle; - public Sprite TabHover => _tabHover; - public Sprite TabActive => _tabActive; + public List TabButtons => _tabButtons; + public Sprite TabIdle => _tabIdle; + public Sprite TabHover => _tabHover; + public Sprite TabActive => _tabActive; - private TabButton _selectedTab; + private TabButton _selectedTab; - private void Start() - { - if (_tabButtons.Count == 0) - { - return; - } + private void Start() + { + if (_tabButtons.Count == 0) + { + return; + } - OnTabSelected(_tabButtons[0]); + OnTabSelected(_tabButtons[0]); - } + } - /// - /// Subscribe a tab button to this group. - /// - /// The tab button that is subscribing to this group. - public void Subscribe(TabButton button) - { - if (TabButtons == null) + /// + /// Subscribe a tab button to this group. + /// + /// The tab button that is subscribing to this group. + public void Subscribe(TabButton button) { - _tabButtons.Add(button); + if (TabButtons == null) + { + _tabButtons.Add(button); + } } - } - /// - /// To be called when a tab button is hovered over. - /// - /// The tab button that has been used. - public void OnTabEnter(TabButton button) - { - ResetTabs(); - if (_selectedTab == null || button != _selectedTab) + /// + /// To be called when a tab button is hovered over. + /// + /// The tab button that has been used. + public void OnTabEnter(TabButton button) { - button.Background.sprite = TabHover; + ResetTabs(); + if (_selectedTab == null || button != _selectedTab) + { + button.Background.sprite = TabHover; + } } - } - /// - /// To be called when a tab button is no longer being hovered over. - /// - /// The tab button that has been exited from. - public void OnTabExit(TabButton button) - { - ResetTabs(); - } - - /// - /// To be called when a new tab is selected. - /// - /// The tab button that has been used. - public void OnTabSelected(TabButton button) - { - if (_selectedTab != null) + /// + /// To be called when a tab button is no longer being hovered over. + /// + /// The tab button that has been exited from. + public void OnTabExit(TabButton button) { - _selectedTab.Deselect(); + ResetTabs(); } - _selectedTab = button; - _selectedTab.Select(); + /// + /// To be called when a new tab is selected. + /// + /// The tab button that has been used. + public void OnTabSelected(TabButton button) + { + if (_selectedTab != null) + { + _selectedTab.Deselect(); + } + + _selectedTab = button; + _selectedTab.Select(); - ResetTabs(); - button.Background.sprite = TabActive; + ResetTabs(); + button.Background.sprite = TabActive; - int index = button.transform.GetSiblingIndex(); - for (int i = 0; i < _pannelsToSwap.Count; i++) - { - _pannelsToSwap[i].SetActive(i == index ? true : false); + int index = button.transform.GetSiblingIndex(); + for (int i = 0; i < _pannelsToSwap.Count; i++) + { + _pannelsToSwap[i].SetActive(i == index ? true : false); + } } - } - /// - /// Sets all tabs back to their initial state - /// - public void ResetTabs() - { - foreach (TabButton button in _tabButtons) + /// + /// Sets all tabs back to their initial state + /// + public void ResetTabs() { - if (_selectedTab != null && button == _selectedTab) + foreach (TabButton button in _tabButtons) { - continue; + if (_selectedTab != null && button == _selectedTab) + { + continue; + } + + button.Background.sprite = TabIdle; } - button.Background.sprite = TabIdle; } } -} +} \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/UiManager.cs b/Samples~/Scripts/NftApiSample/UiManager.cs index baf3c9e4..b14f808f 100644 --- a/Samples~/Scripts/NftApiSample/UiManager.cs +++ b/Samples~/Scripts/NftApiSample/UiManager.cs @@ -1,41 +1,44 @@ using UnityEngine; using UnityEngine.UI; -public class UiManager : MonoBehaviour +namespace TezosSDK.Samples.NFTApiSample { - [SerializeField] private DataManager dataManager; - [SerializeField] private InputField addressInputField; - [SerializeField] private InputField contractInputField; - [SerializeField] private InputField tokenIdInputField; - [SerializeField] private Text resultText; - - void Start() + public class UiManager : MonoBehaviour { - dataManager.DataReceived += OnDataReceived; + [SerializeField] private DataManager dataManager; + [SerializeField] private InputField addressInputField; + [SerializeField] private InputField contractInputField; + [SerializeField] private InputField tokenIdInputField; + [SerializeField] private Text resultText; - addressInputField.onEndEdit.AddListener(delegate { OnEndEditAddress(addressInputField); }); - contractInputField.onEndEdit.AddListener(delegate { OnEndEditContract(contractInputField); }); - tokenIdInputField.onEndEdit.AddListener(delegate { OnEndEditTokenId(tokenIdInputField); }); - } + void Start() + { + dataManager.DataReceived += OnDataReceived; - void OnDataReceived(string data) - { - resultText.text = string.Empty; - resultText.text = data; - } + addressInputField.onEndEdit.AddListener(delegate { OnEndEditAddress(addressInputField); }); + contractInputField.onEndEdit.AddListener(delegate { OnEndEditContract(contractInputField); }); + tokenIdInputField.onEndEdit.AddListener(delegate { OnEndEditTokenId(tokenIdInputField); }); + } - void OnEndEditAddress(InputField input) - { - dataManager.SetCheckAddress(input.text); - } + void OnDataReceived(string data) + { + resultText.text = string.Empty; + resultText.text = data; + } - void OnEndEditContract(InputField input) - { - dataManager.SetCheckContract(input.text); - } + void OnEndEditAddress(InputField input) + { + dataManager.SetCheckAddress(input.text); + } - void OnEndEditTokenId(InputField input) - { - dataManager.SetCheckTokenId(input.text); + void OnEndEditContract(InputField input) + { + dataManager.SetCheckContract(input.text); + } + + void OnEndEditTokenId(InputField input) + { + dataManager.SetCheckTokenId(input.text); + } } } \ No newline at end of file diff --git a/Samples~/Scripts/ScriptableObjects/ItemReseource.cs b/Samples~/Scripts/ScriptableObjects/ItemReseource.cs index b52d5de3..a72d0327 100644 --- a/Samples~/Scripts/ScriptableObjects/ItemReseource.cs +++ b/Samples~/Scripts/ScriptableObjects/ItemReseource.cs @@ -2,9 +2,12 @@ using System.Collections.Generic; using UnityEngine; -[CreateAssetMenu(fileName = "ItemResources", menuName = "ScriptableObjects/ItemResources", order = 1)] -public class ItemReseource : ScriptableObject +namespace TezosSDK.Samples { - public string Name; - public Sprite ItemSprite; -} + [CreateAssetMenu(fileName = "ItemResources", menuName = "ScriptableObjects/ItemResources", order = 1)] + public class ItemReseource : ScriptableObject + { + public string Name; + public Sprite ItemSprite; + } +} \ No newline at end of file From e4768523cc97052742968d93661f337d4d5fd450 Mon Sep 17 00:00:00 2001 From: umutkutlu Date: Sun, 9 Jul 2023 13:34:06 +0300 Subject: [PATCH 2/4] conflicts fixed (missing namespaces added) --- .../DemoExample/Core/ExampleManager.cs | 738 +++++++++--------- .../DemoExample/Core/IExampleManager.cs | 259 +++--- .../DemoExample/InventoryManager.cs.BASE | 188 ----- .../DemoExample/InventoryManager.cs.BASE.meta | 7 - .../DemoExample/InventoryManager.cs.LOCAL | 213 ----- .../InventoryManager.cs.LOCAL.meta | 7 - .../DemoExample/InventoryManager.cs.REMOTE | 188 ----- .../InventoryManager.cs.REMOTE.meta | 7 - .../UI/InitiateContractController.cs | 67 +- .../Scripts/DemoExample/UI/RegisterPanel.cs | 166 ++-- Samples~/Scripts/DemoExample/UIManager.cs | 499 ++++++------ Samples~/Scripts/NftApiSample/DataManager.cs | 237 +++--- 12 files changed, 991 insertions(+), 1585 deletions(-) delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.BASE delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.BASE.meta delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL.meta delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE delete mode 100644 Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE.meta diff --git a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs index 5dd056e6..9e9bfdf2 100644 --- a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs +++ b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs @@ -14,468 +14,468 @@ using Logger = TezosSDK.Helpers.Logger; using Random = System.Random; -public class ExampleManager : IExampleManager +namespace TezosSDK.Samples.DemoExample { - private string _networkRPC; + public class ExampleManager : IExampleManager + { + private string _networkRPC; - private const string - contractAddress = "KT1WguzxyLmuKbJhz3jNuoRzzaUCncfp6PFE"; //"KT1DMWAeaP6wxKWPFDLGDkB7xUg563852AjD"; + private const string + contractAddress = "KT1WguzxyLmuKbJhz3jNuoRzzaUCncfp6PFE"; //"KT1DMWAeaP6wxKWPFDLGDkB7xUg563852AjD"; - private const int softCurrencyID = 0; + private const int softCurrencyID = 0; - public ITezos Tezos { get; private set; } - public User CurrentUser { get; private set; } + public ITezos Tezos { get; private set; } + public User CurrentUser { get; private set; } - public ExampleManager() - { - CurrentUser = null; - } - - public void Init(Action callback = null) - { - Tezos = TezosSingleton.Instance; - _networkRPC = TezosConfig.Instance.RpcBaseUrl; - } + public ExampleManager() + { + CurrentUser = null; + } - public void Unpair() - { - Tezos.Wallet.Disconnect(); - CurrentUser = null; - } + public void Init(Action callback = null) + { + Tezos = TezosSingleton.Instance; + _networkRPC = TezosConfig.Instance.RpcBaseUrl; + } - public void FetchInventoryItems(Action> callback) - { - var activeWalletAddress = Tezos.Wallet.GetActiveAddress(); // Address to the current active account + public void Unpair() + { + Tezos.Wallet.Disconnect(); + CurrentUser = null; + } - const string entrypoint = "view_items_of"; - var input = new { @string = activeWalletAddress }; + public void FetchInventoryItems(Action> callback) + { + var activeWalletAddress = Tezos.Wallet.GetActiveAddress(); // Address to the current active account - CoroutineRunner.Instance.StartWrappedCoroutine( - Tezos.API.ReadView( - contractAddress: contractAddress, - entrypoint: entrypoint, - input: JsonSerializer.Serialize(input, JsonOptions.DefaultOptions), - callback: result => - { - Logger.LogDebug("READING INVENTORY DATA"); - - // deserialize the json data to inventory items - CoroutineRunner.Instance.StartWrappedCoroutine( - NetezosExtensions.HumanizeValue( - val: result, - rpcUri: _networkRPC, - destination: contractAddress, - humanizeEntrypoint: "humanizeInventory", - onComplete: (ContractInventoryViewResult[] inventory) => - OnInventoryFetched(inventory, callback)) - ); - })); - } + const string entrypoint = "view_items_of"; + var input = new {@string = activeWalletAddress}; - private void OnInventoryFetched(ContractInventoryViewResult[] inventory, Action> callback) - { - var dummyItemList = new List(); - var owner = Tezos.Wallet.GetActiveAddress(); + CoroutineRunner.Instance.StartWrappedCoroutine( + Tezos.API.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: JsonSerializer.Serialize(input, JsonOptions.DefaultOptions), + callback: result => + { + Logger.LogDebug("READING INVENTORY DATA"); + + // deserialize the json data to inventory items + CoroutineRunner.Instance.StartWrappedCoroutine( + NetezosExtensions.HumanizeValue( + val: result, + rpcUri: _networkRPC, + destination: contractAddress, + humanizeEntrypoint: "humanizeInventory", + onComplete: (ContractInventoryViewResult[] inventory) => + OnInventoryFetched(inventory, callback)) + ); + })); + } - if (inventory != null) + private void OnInventoryFetched(ContractInventoryViewResult[] inventory, Action> callback) { - foreach (var item in inventory) + var dummyItemList = new List(); + var owner = Tezos.Wallet.GetActiveAddress(); + + if (inventory != null) { - var id = Convert.ToInt32(item.id); - var itemType = id == 0 ? 0 : Convert.ToInt32(item.item.itemType) % 4 + 1; - var amount = id == 0 ? Convert.ToInt32(item.amount) : 1; - - var stats = new StatParams( - Convert.ToInt32(item.item.damage), - Convert.ToInt32(item.item.armor), - Convert.ToInt32(item.item.attackSpeed), - Convert.ToInt32(item.item.healthPoints), - Convert.ToInt32(item.item.manaPoints) - ); - - dummyItemList.Add(new Item( - (ItemType)itemType, - "Items/TestItem " + itemType, - "Item " + id, - stats, - amount, - id, - owner)); + foreach (var item in inventory) + { + var id = Convert.ToInt32(item.id); + var itemType = id == 0 ? 0 : Convert.ToInt32(item.item.itemType) % 4 + 1; + var amount = id == 0 ? Convert.ToInt32(item.amount) : 1; + + var stats = new StatParams( + Convert.ToInt32(item.item.damage), + Convert.ToInt32(item.item.armor), + Convert.ToInt32(item.item.attackSpeed), + Convert.ToInt32(item.item.healthPoints), + Convert.ToInt32(item.item.manaPoints) + ); + + dummyItemList.Add(new Item( + (ItemType) itemType, + "Items/TestItem " + itemType, + "Item " + id, + stats, + amount, + id, + owner)); + } } + + callback?.Invoke(dummyItemList); } - callback?.Invoke(dummyItemList); - } + public class ContractItem + { + public string damage { get; set; } + public string armor { get; set; } + public string attackSpeed { get; set; } + public string healthPoints { get; set; } + public string manaPoints { get; set; } + public string itemType { get; set; } + } - public class ContractItem - { - public string damage { get; set; } - public string armor { get; set; } - public string attackSpeed { get; set; } - public string healthPoints { get; set; } - public string manaPoints { get; set; } - public string itemType { get; set; } - } + public class ContractInventoryViewResult + { + public string id { get; set; } + public string amount { get; set; } + public ContractItem item { get; set; } + } - public class ContractInventoryViewResult - { - public string id { get; set; } - public string amount { get; set; } - public ContractItem item { get; set; } - } + public class ContractMarketplaceViewResult + { + public string id { get; set; } + public string owner { get; set; } + public string currency { get; set; } + public string price { get; set; } + public ContractItem item { get; set; } + } - public class ContractMarketplaceViewResult - { - public string id { get; set; } - public string owner { get; set; } - public string currency { get; set; } - public string price { get; set; } - public ContractItem item { get; set; } - } + public void FetchMarketItems(Action> callback) + { + const string entrypoint = "view_items_on_market"; - public void FetchMarketItems(Action> callback) - { - const string entrypoint = "view_items_on_market"; + // Prepping parameters for Netezos and for Native is different. + // Double serialization converts double quotes (") symbol into 'u0002' string + // var input = "{\"prim\": \"Unit\"}"; + var input = new MichelinePrim + { + Prim = PrimType.Unit + }.ToJson(); + + CoroutineRunner.Instance.StartWrappedCoroutine( + Tezos.API.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: input, + callback: result => + { + // deserialize the json data to market items + CoroutineRunner.Instance.StartWrappedCoroutine( + NetezosExtensions.HumanizeValue( + val: result, + rpcUri: _networkRPC, + destination: contractAddress, + humanizeEntrypoint: "humanizeMarketplace", + onComplete: (ContractMarketplaceViewResult[] market) => + OnMarketplaceFetched(market, callback)) + ); + })); + } - // Prepping parameters for Netezos and for Native is different. - // Double serialization converts double quotes (") symbol into 'u0002' string - // var input = "{\"prim\": \"Unit\"}"; - var input = new MichelinePrim + private void OnMarketplaceFetched(ContractMarketplaceViewResult[] market, Action> callback) { - Prim = PrimType.Unit - }.ToJson(); - - CoroutineRunner.Instance.StartWrappedCoroutine( - Tezos.API.ReadView( - contractAddress: contractAddress, - entrypoint: entrypoint, - input: input, - callback: result => + var dummyItemList = new List(); + + if (market != null) + { + foreach (var item in market) { - // deserialize the json data to market items - CoroutineRunner.Instance.StartWrappedCoroutine( - NetezosExtensions.HumanizeValue( - val: result, - rpcUri: _networkRPC, - destination: contractAddress, - humanizeEntrypoint: "humanizeMarketplace", - onComplete: (ContractMarketplaceViewResult[] market) => - OnMarketplaceFetched(market, callback)) + var id = Convert.ToInt32(item.id); + var itemType = id == 0 ? 0 : Convert.ToInt32(item.item.itemType) % 4 + 1; + var currency = Convert.ToInt32(item.currency); + var price = Convert.ToInt32(item.price); + var owner = item.owner; + + var stats = new StatParams( + Convert.ToInt32(item.item.damage), + Convert.ToInt32(item.item.armor), + Convert.ToInt32(item.item.attackSpeed), + Convert.ToInt32(item.item.healthPoints), + Convert.ToInt32(item.item.manaPoints) ); - })); - } - - private void OnMarketplaceFetched(ContractMarketplaceViewResult[] market, Action> callback) - { - var dummyItemList = new List(); - if (market != null) - { - foreach (var item in market) - { - var id = Convert.ToInt32(item.id); - var itemType = id == 0 ? 0 : Convert.ToInt32(item.item.itemType) % 4 + 1; - var currency = Convert.ToInt32(item.currency); - var price = Convert.ToInt32(item.price); - var owner = item.owner; - - var stats = new StatParams( - Convert.ToInt32(item.item.damage), - Convert.ToInt32(item.item.armor), - Convert.ToInt32(item.item.attackSpeed), - Convert.ToInt32(item.item.healthPoints), - Convert.ToInt32(item.item.manaPoints) - ); - - dummyItemList.Add(new Item( - (ItemType)itemType, - "Items/TestItem " + itemType, - "Item " + id, - stats, - price, - id, - owner)); + dummyItemList.Add(new Item( + (ItemType) itemType, + "Items/TestItem " + itemType, + "Item " + id, + stats, + price, + id, + owner)); + } } - } - - callback?.Invoke(dummyItemList); - } - public void BuyItem(string owner, int itemID) - { - const string entryPoint = "buy"; + callback?.Invoke(dummyItemList); + } - var parameter = new MichelinePrim + public void BuyItem(string owner, int itemID) { - Prim = PrimType.Pair, - Args = new List + const string entryPoint = "buy"; + + var parameter = new MichelinePrim { - new MichelineString(owner), - new MichelineInt(itemID) - } - }.ToJson(); + Prim = PrimType.Pair, + Args = new List + { + new MichelineString(owner), + new MichelineInt(itemID) + } + }.ToJson(); - Logger.LogDebug(contractAddress + " " + entryPoint + parameter); - Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); + Logger.LogDebug(contractAddress + " " + entryPoint + parameter); + Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } + } - public void MintItem() - { - var rnd = new Random(); - var randomInt = rnd.Next(1, int.MaxValue); - var randomAmount = rnd.Next(1, 1024); + public void MintItem() + { + var rnd = new Random(); + var randomInt = rnd.Next(1, int.MaxValue); + var randomAmount = rnd.Next(1, 1024); - var uploader = UploaderFactory.GetOnchainUploader(); - var activeAccount = Tezos.Wallet.GetActiveAddress(); + var uploader = UploaderFactory.GetOnchainUploader(); + var activeAccount = Tezos.Wallet.GetActiveAddress(); - CoroutineRunner - .Instance - .StartWrappedCoroutine(uploader.UploadFile(ImageUploaded)); + CoroutineRunner + .Instance + .StartWrappedCoroutine(uploader.UploadFile(ImageUploaded)); - void ImageUploaded(string imageAddress) - { - var metadata = new TokenMetadata + void ImageUploaded(string imageAddress) { - Name = $"testName_{randomInt}", - Description = $"testDescription_{randomInt}", - Symbol = $"TST_{randomInt}", - Decimals = "0", - DisplayUri = imageAddress, - ArtifactUri = imageAddress, - ThumbnailUri = imageAddress - }; - - Tezos - .TokenContract - .Mint(token => { Logger.LogDebug($"Minted token with ID: {token.TokenId}"); }, - metadata, - destination: activeAccount, - amount: randomAmount); - } + var metadata = new TokenMetadata + { + Name = $"testName_{randomInt}", + Description = $"testDescription_{randomInt}", + Symbol = $"TST_{randomInt}", + Decimals = "0", + DisplayUri = imageAddress, + ArtifactUri = imageAddress, + ThumbnailUri = imageAddress + }; + + Tezos + .TokenContract + .Mint(token => { Logger.LogDebug($"Minted token with ID: {token.TokenId}"); }, + metadata, + destination: activeAccount, + amount: randomAmount); + } #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } - - public User GetCurrentUser() - { - return CurrentUser; - } + } - public void GetBalance(Action callback) - { - var routine = Tezos.GetCurrentWalletBalance(callback); - CoroutineRunner.Instance.StartWrappedCoroutine(routine); - } + public User GetCurrentUser() + { + return CurrentUser; + } - public void GetSoftBalance(Action callback) - { - GetSoftBalanceRoutine(callback); - } + public void GetBalance(Action callback) + { + var routine = Tezos.GetCurrentWalletBalance(callback); + CoroutineRunner.Instance.StartWrappedCoroutine(routine); + } - private void GetSoftBalanceRoutine(Action callback) - { - var caller = Tezos.Wallet.GetActiveAddress(); + public void GetSoftBalance(Action callback) + { + GetSoftBalanceRoutine(callback); + } - var input = new MichelinePrim + private void GetSoftBalanceRoutine(Action callback) { - Prim = PrimType.Pair, - Args = new List + var caller = Tezos.Wallet.GetActiveAddress(); + + var input = new MichelinePrim { - new MichelineString(caller), - new MichelineInt(softCurrencyID) - } - }.ToJson(); - - CoroutineRunner.Instance.StartWrappedCoroutine( - Tezos.API.ReadView( - contractAddress: contractAddress, - entrypoint: "get_balance", - input: input, - callback: result => + Prim = PrimType.Pair, + Args = new List { - var intProp = result.GetProperty("int"); - var intValue = Convert.ToInt32(intProp.ToString()); - callback(intValue); - })); - } + new MichelineString(caller), + new MichelineInt(softCurrencyID) + } + }.ToJson(); + + CoroutineRunner.Instance.StartWrappedCoroutine( + Tezos.API.ReadView( + contractAddress: contractAddress, + entrypoint: "get_balance", + input: input, + callback: result => + { + var intProp = result.GetProperty("int"); + var intValue = Convert.ToInt32(intProp.ToString()); + callback(intValue); + })); + } - public void TransferItem(int itemID, int amount, string address) - { - Logger.LogDebug( - $"Transfering item {itemID} from {Tezos.Wallet.GetActiveAddress()} to Address: {address}"); + public void TransferItem(int itemID, int amount, string address) + { + Logger.LogDebug( + $"Transfering item {itemID} from {Tezos.Wallet.GetActiveAddress()} to Address: {address}"); - var sender = Tezos.Wallet.GetActiveAddress(); - const string entrypoint = "transfer"; - var input = "[ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + sender + - "\" }, [ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + address + - "\" }, { \"prim\": \"Pair\", \"args\": [ { \"int\": \"" + itemID + "\" }, { \"int\": \"" + amount + - "\" } ] } ] } ] ] } ]"; + var sender = Tezos.Wallet.GetActiveAddress(); + const string entrypoint = "transfer"; + var input = "[ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + sender + + "\" }, [ { \"prim\": \"Pair\", \"args\": [ { \"string\": \"" + address + + "\" }, { \"prim\": \"Pair\", \"args\": [ { \"int\": \"" + itemID + "\" }, { \"int\": \"" + amount + + "\" } ] } ] } ] ] } ]"; - Tezos.Wallet.CallContract(contractAddress, entrypoint, input, 0); + Tezos.Wallet.CallContract(contractAddress, entrypoint, input, 0); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } + } - public void AddItemToMarket(int itemID, int price) - { - Debug.Log("Adding Item " + itemID + " to Market with the price of " + price); + public void AddItemToMarket(int itemID, int price) + { + Debug.Log("Adding Item " + itemID + " to Market with the price of " + price); - const string entryPoint = "addToMarket"; + const string entryPoint = "addToMarket"; - var parameter = new MichelinePrim - { - Prim = PrimType.Pair, - Args = new List + var parameter = new MichelinePrim { - new MichelinePrim + Prim = PrimType.Pair, + Args = new List { - Prim = PrimType.Pair, - Args = new List + new MichelinePrim { - new MichelineInt(0), // (currency ID = 0) represents coins - new MichelineInt(price), - } - }, - new MichelineInt(itemID), - } - }.ToJson(); - - Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); + Prim = PrimType.Pair, + Args = new List + { + new MichelineInt(0), // (currency ID = 0) represents coins + new MichelineInt(price), + } + }, + new MichelineInt(itemID), + } + }.ToJson(); + + Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } + } - public void RemoveItemFromMarket(int itemID) - { - Debug.Log("Removing Item " + itemID + " from market."); + public void RemoveItemFromMarket(int itemID) + { + Debug.Log("Removing Item " + itemID + " from market."); - const string entryPoint = "removeFromMarket"; + const string entryPoint = "removeFromMarket"; - var sender = Tezos.Wallet.GetActiveAddress(); - var parameter = new MichelinePrim - { - Prim = PrimType.Pair, - Args = new List + var sender = Tezos.Wallet.GetActiveAddress(); + var parameter = new MichelinePrim { - new MichelineString(sender), - new MichelineInt(itemID) - } - }.ToJson(); + Prim = PrimType.Pair, + Args = new List + { + new MichelineString(sender), + new MichelineInt(itemID) + } + }.ToJson(); - Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); + Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } + } - public void DeployContract(Action deployedContractAddress) - { - Tezos - .TokenContract - .Deploy(deployedContractAddress); - } - - public void ChangeContract(string activeContractAddress) - { - PlayerPrefs.SetString("CurrentContract:" + Tezos.Wallet.GetActiveAddress(), activeContractAddress); - Tezos.TokenContract.Address = activeContractAddress; - } + public void DeployContract(Action deployedContractAddress) + { + Tezos + .TokenContract + .Deploy(deployedContractAddress); + } - public void UploadToIpfs() - { - var uploader = UploaderFactory.GetPinataUploader(); + public void ChangeContract(string activeContractAddress) + { + PlayerPrefs.SetString("CurrentContract:" + Tezos.Wallet.GetActiveAddress(), activeContractAddress); + Tezos.TokenContract.Address = activeContractAddress; + } - CoroutineRunner - .Instance - .StartWrappedCoroutine(uploader.UploadFile(ipfsResponse => - { - Logger.LogDebug($"Link to uploaded file: https://ipfs.io/ipfs/{ipfsResponse}"); - })); - } + public void UploadToIpfs() + { + var uploader = UploaderFactory.GetPinataUploader(); - public void GetCoins() - { - const string entryPoint = "login"; - const string parameter = "{\"prim\": \"Unit\"}"; + CoroutineRunner + .Instance + .StartWrappedCoroutine(uploader.UploadFile(ipfsResponse => { Logger.LogDebug($"Link to uploaded file: https://ipfs.io/ipfs/{ipfsResponse}"); })); + } + + public void GetCoins() + { + const string entryPoint = "login"; + const string parameter = "{\"prim\": \"Unit\"}"; - Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); + Tezos.Wallet.CallContract(contractAddress, entryPoint, parameter, 0); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } - - public void IsItemOnMarket(int itemID, string owner, Action callback) - { - const string entrypoint = "is_item_on_market"; + } - var input = new MichelinePrim + public void IsItemOnMarket(int itemID, string owner, Action callback) { - Prim = PrimType.Pair, - Args = new List + const string entrypoint = "is_item_on_market"; + + var input = new MichelinePrim { - new MichelineString(owner), - new MichelineInt(itemID) - } - }.ToJson(); - - CoroutineRunner.Instance.StartWrappedCoroutine( - Tezos.API.ReadView( - contractAddress: contractAddress, - entrypoint: entrypoint, - input: input, - callback: result => + Prim = PrimType.Pair, + Args = new List { - var boolString = result.GetProperty("prim"); - var boolVal = boolString.GetString() == "True"; - callback?.Invoke(boolVal); - })); - } + new MichelineString(owner), + new MichelineInt(itemID) + } + }.ToJson(); + + CoroutineRunner.Instance.StartWrappedCoroutine( + Tezos.API.ReadView( + contractAddress: contractAddress, + entrypoint: entrypoint, + input: input, + callback: result => + { + var boolString = result.GetProperty("prim"); + var boolVal = boolString.GetString() == "True"; + callback?.Invoke(boolVal); + })); + } - public void RequestSignPayload(SignPayloadType signingType, string payload) - { - Tezos.Wallet.RequestSignPayload(signingType, payload); + public void RequestSignPayload(SignPayloadType signingType, string payload) + { + Tezos.Wallet.RequestSignPayload(signingType, payload); #if UNITY_IOS || UNITY_ANDROID - Application.OpenURL("tezos://"); + Application.OpenURL("tezos://"); #endif - } + } - public bool VerifyPayload(SignPayloadType signingType, string payload) - { - return Tezos.Wallet.VerifySignedPayload(signingType, payload); - } + public bool VerifyPayload(SignPayloadType signingType, string payload) + { + return Tezos.Wallet.VerifySignedPayload(signingType, payload); + } - public string GetActiveAccountAddress() - { - return Tezos.Wallet.GetActiveAddress(); - } + public string GetActiveAccountAddress() + { + return Tezos.Wallet.GetActiveAddress(); + } - public void Login(WalletProviderType walletProvider) - { - Tezos.Wallet.Connect(walletProvider); - } + public void Login(WalletProviderType walletProvider) + { + Tezos.Wallet.Connect(walletProvider); + } - public WalletMessageReceiver GetWalletMessageReceiver() - { - return Tezos.Wallet.MessageReceiver; - } + public WalletMessageReceiver GetWalletMessageReceiver() + { + return Tezos.Wallet.MessageReceiver; + } - public void GetOriginatedContracts(Action> callback) - { - var routine = Tezos.GetOriginatedContracts(callback); - CoroutineRunner.Instance.StartWrappedCoroutine(routine); + public void GetOriginatedContracts(Action> callback) + { + var routine = Tezos.GetOriginatedContracts(callback); + CoroutineRunner.Instance.StartWrappedCoroutine(routine); + } } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/IExampleManager.cs b/Samples~/Scripts/DemoExample/Core/IExampleManager.cs index cfccd2c3..0583596b 100644 --- a/Samples~/Scripts/DemoExample/Core/IExampleManager.cs +++ b/Samples~/Scripts/DemoExample/Core/IExampleManager.cs @@ -6,133 +6,136 @@ using TezosSDK.Tezos.API.Models; using TezosSDK.Tezos.Wallet; -public interface IExampleManager +namespace TezosSDK.Samples.DemoExample { - ITezos Tezos { get; } - public void Init(Action callback = null); - public void Unpair(); - - public void GetCoins(); - - /// - /// Returns the currently active user. - /// - /// The Currently active user - public User GetCurrentUser(); - - /// - /// Retrieves items that should be displayed in the inventory - /// - /// - /// callback function that takes a list of IItemModels that should be displayed in Inventory - /// - public void FetchInventoryItems(Action> callback); - - /// - /// Retrieves items that should be displayed in the market - /// - /// - /// callback function that takes a list of IItemModels that should be displayed in Market - /// - public void FetchMarketItems(Action> callback); - - /// - /// Buys an item - /// - /// Owner of the item being sold - /// ID of the item that will be bought - /// callback takes a bool (true if the transaction is completed successfully) - public void BuyItem(string owner, int itemID); - - /// - /// Mints an item - /// - public void MintItem(); - - /// - /// Get account balance - /// - /// callback that takes the retrieved balance (int) - public void GetBalance(Action callback); - - /// - /// Get soft currency balance - /// - /// callback that takes the retrieved balance (int) - public void GetSoftBalance(Action callback); - - /// - /// Returns the address of the current active wallet - /// - /// - public string GetActiveAccountAddress(); - - public void Login(WalletProviderType walletProvider); - - /// - /// Transfers an item to an account address - /// - /// ID of the item that will be transfered - /// amount of the item to be transfered - /// address of the user that will receive the item - /// callback takes a bool (true if the transfer is completed successfully) - public void TransferItem(int itemID, int amount, string address); - - /// - /// Transfers an item from the inventory to the market - /// - /// ID of the item that will be added to the market - /// price of the item on the market - /// callback takes a bool (true if the process is completed successfully) - public void AddItemToMarket(int itemID, int price); - - /// - /// Transfers an item from the market to the inventory - /// - /// ID of the item that will be transfered - /// callback takes a bool (true if the process is completed successfully) - public void RemoveItemFromMarket(int itemID); - - /// - /// Return the Tezos wallet MessageReceiver for using callbacks - /// - public WalletMessageReceiver GetWalletMessageReceiver(); - - /// - /// Checks if item is on the marketplace in the blockchain - /// - /// - /// - /// - public void IsItemOnMarket(int itemID, string owner, Action callback); - - /// - /// Sends a request to sign a payload - /// - /// - /// - void RequestSignPayload(SignPayloadType signingType, string payload); - - bool VerifyPayload(SignPayloadType signingType, string payload); - - /// - /// Deploy FA2 contract - /// - void DeployContract(Action deployedContractAddress); - - /// - /// Switch FA2 contract - /// - void ChangeContract(string activeContractAddress); - - /// - /// Select and upload file to IPFS. - /// - void UploadToIpfs(); - - /// - /// Return originated contracts by account for using callbacks - /// - /// callback that takes the retrieved contracts(IEnumerable) - void GetOriginatedContracts(Action> callback); + public interface IExampleManager + { + ITezos Tezos { get; } + public void Init(Action callback = null); + public void Unpair(); + + public void GetCoins(); + + /// + /// Returns the currently active user. + /// + /// The Currently active user + public User GetCurrentUser(); + + /// + /// Retrieves items that should be displayed in the inventory + /// + /// + /// callback function that takes a list of IItemModels that should be displayed in Inventory + /// + public void FetchInventoryItems(Action> callback); + + /// + /// Retrieves items that should be displayed in the market + /// + /// + /// callback function that takes a list of IItemModels that should be displayed in Market + /// + public void FetchMarketItems(Action> callback); + + /// + /// Buys an item + /// + /// Owner of the item being sold + /// ID of the item that will be bought + /// callback takes a bool (true if the transaction is completed successfully) + public void BuyItem(string owner, int itemID); + + /// + /// Mints an item + /// + public void MintItem(); + + /// + /// Get account balance + /// + /// callback that takes the retrieved balance (int) + public void GetBalance(Action callback); + + /// + /// Get soft currency balance + /// + /// callback that takes the retrieved balance (int) + public void GetSoftBalance(Action callback); + + /// + /// Returns the address of the current active wallet + /// + /// + public string GetActiveAccountAddress(); + + public void Login(WalletProviderType walletProvider); + + /// + /// Transfers an item to an account address + /// + /// ID of the item that will be transfered + /// amount of the item to be transfered + /// address of the user that will receive the item + /// callback takes a bool (true if the transfer is completed successfully) + public void TransferItem(int itemID, int amount, string address); + + /// + /// Transfers an item from the inventory to the market + /// + /// ID of the item that will be added to the market + /// price of the item on the market + /// callback takes a bool (true if the process is completed successfully) + public void AddItemToMarket(int itemID, int price); + + /// + /// Transfers an item from the market to the inventory + /// + /// ID of the item that will be transfered + /// callback takes a bool (true if the process is completed successfully) + public void RemoveItemFromMarket(int itemID); + + /// + /// Return the Tezos wallet MessageReceiver for using callbacks + /// + public WalletMessageReceiver GetWalletMessageReceiver(); + + /// + /// Checks if item is on the marketplace in the blockchain + /// + /// + /// + /// + public void IsItemOnMarket(int itemID, string owner, Action callback); + + /// + /// Sends a request to sign a payload + /// + /// + /// + void RequestSignPayload(SignPayloadType signingType, string payload); + + bool VerifyPayload(SignPayloadType signingType, string payload); + + /// + /// Deploy FA2 contract + /// + void DeployContract(Action deployedContractAddress); + + /// + /// Switch FA2 contract + /// + void ChangeContract(string activeContractAddress); + + /// + /// Select and upload file to IPFS. + /// + void UploadToIpfs(); + + /// + /// Return originated contracts by account for using callbacks + /// + /// callback that takes the retrieved contracts(IEnumerable) + void GetOriginatedContracts(Action> callback); + } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE b/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE deleted file mode 100644 index 6cd8d20f..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE +++ /dev/null @@ -1,188 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Events; -using UnityEngine.UI; - -[RequireComponent(typeof(SnapController))] -public class InventoryManager : MonoBehaviour -{ - public UnityEvent onItemMint; - public UnityEvent onInventoryRefresh; - - [SerializeField] private Draggable itemPrefab; - [SerializeField] private List inventorySlots; - [SerializeField] private List equippedSlots; - [SerializeField] private List draggables = new List(); - [SerializeField] private StatsView statsView; - [SerializeField] private ItemView itemView; - - private Dictionary _itemIDtoDraggable = new Dictionary(); - private SnapController _snapController; - - private const string PlayerPrefsInvKey = "_inv_"; - private const string PlayerPrefsEquipKey = "_eq_"; - - private void Start() - { - _snapController = GetComponent(); - } - - private void OnApplicationQuit() - { - // no need for local storage, since data need to be coming from the blockchain - //SaveInventoryLocally(); - } - - public void Init(List items) - { - ClearInventory(); - foreach (var item in items) - { - AddItem(item); - } - UpdateSnapController(); - - // no need for local storage, since data need to be coming from the blockchain - //LoadLocalInventory(); - } - - private void AddItem(IItemModel itemModel) - { - Draggable newItem = Instantiate(itemPrefab, this.transform); - ItemReseource itemRes = Resources.Load(itemModel.ResourcePath); - if (itemRes != null) - newItem.Sprite = itemRes.ItemSprite; - else - Debug.LogError("Could find resource file for " + itemModel.ResourcePath); - newItem.Item = itemModel; - newItem.OnClick = OnItemClicked; - draggables.Add(newItem); - ItemSnapPoint emptySlot = GetFirstEmptySlot(); - if (emptySlot != null) - { - newItem.SetCurrentSlot(emptySlot); - _itemIDtoDraggable[itemModel.ID] = newItem; - } - else - { - Debug.LogError("Trying to add an item but Inventory is full!"); - return; - } - } - - private void ClearInventory() - { - foreach (var snapSlot in inventorySlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var snapSlot in equippedSlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var draggable in draggables) - { - Destroy(draggable.gameObject); - } - - draggables.Clear(); - } - - private void UpdateSnapController() - { - _snapController.Draggables = draggables; - _snapController.SnapPoints = inventorySlots; - foreach(var slot in equippedSlots) - _snapController.SnapPoints.Add(slot); - } - - private ItemSnapPoint GetFirstEmptySlot() - { - foreach (var snapPoint in inventorySlots) - if (!snapPoint.HasItem) - return snapPoint; - return null; - } - - private void SaveInventoryLocally() - { - PlayerPrefs.DeleteAll(); - string playerID = ((Database)DatabaseFactory.Instance.GetDatabase()).CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (inventorySlots[i].HasItem) - PlayerPrefs.SetInt(invSaveLoc + i, inventorySlots[i].CurrentItemInSlot.Item.ID); - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (equippedSlots[i].HasItem) - PlayerPrefs.SetInt(eqSaveLoc + i, equippedSlots[i].CurrentItemInSlot.Item.ID); - } - Debug.Log("Inventory saved locally."); - } - - private void LoadLocalInventory() - { - Database db = (Database)DatabaseFactory.Instance.GetDatabase(); - string playerID = db.CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (PlayerPrefs.HasKey(invSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(invSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(inventorySlots[i]); - } - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (PlayerPrefs.HasKey(eqSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(eqSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(equippedSlots[i]); - } - } - Debug.Log("Inventory loaded."); - } - - public void UpdateStatsView() - { - StatParams heroStats = new StatParams(); - - foreach (var slot in equippedSlots) - { - if (!slot.HasItem) - continue; - StatParams sp = slot.CurrentItemInSlot.Item.Stats; - foreach (var prop in sp.GetType().GetProperties()) - { - float value = (float)prop.GetValue(sp) + (float)prop.GetValue(heroStats); - prop.SetValue(heroStats, value); - } - } - statsView.DisplayStats(heroStats); - } - - public void OnMintButtonClicked() - { - onItemMint.Invoke(); - } - - public void OnRefreshButtonClicked() - { - onInventoryRefresh.Invoke(); - } - - public void OnItemClicked(Draggable item) - { - itemView.transform.parent.gameObject.SetActive(true); - itemView.gameObject.SetActive(true); - itemView.DisplayItem(item.Item, item.Sprite); - itemView.GetComponent().SetItem(item.Item); - } -} diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE.meta b/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE.meta deleted file mode 100644 index 025a1029..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.BASE.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: caa6901c57401e343bf1d8208646978a -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL b/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL deleted file mode 100644 index 9efd8cb4..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL +++ /dev/null @@ -1,213 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Events; -using UnityEngine.UI; - -[RequireComponent(typeof(SnapController))] -public class InventoryManager : MonoBehaviour -{ - public UnityEvent onItemMint; - public UnityEvent onInventoryRefresh; - - [SerializeField] private Draggable itemPrefab; - [SerializeField] private List inventorySlots; - [SerializeField] private List equippedSlots; - [SerializeField] private List draggables = new List(); - [SerializeField] private StatsView statsView; - [SerializeField] private ItemView itemView; - - private Dictionary _itemIDtoDraggable = new Dictionary(); - private SnapController _snapController; - private List _lastHeldItems = new List(); - - private const string PlayerPrefsInvKey = "_inv_"; - private const string PlayerPrefsEquipKey = "_eq_"; - - private void Start() - { - _snapController = GetComponent(); - } - - private void OnApplicationQuit() - { - // no need for local storage, since data need to be coming from the blockchain - //SaveInventoryLocally(); - } - - public void Init(List items) - { - //ClearInventory(); - UpdateItems(items); - UpdateSnapController(); - - // no need for local storage, since data need to be coming from the blockchain - //LoadLocalInventory(); - } - - private void AddItem(IItemModel itemModel) - { - Draggable newItem = Instantiate(itemPrefab, this.transform); - ItemReseource itemRes = Resources.Load(itemModel.ResourcePath); - if (itemRes != null) - newItem.Sprite = itemRes.ItemSprite; - else - Debug.LogError("Could find resource file for " + itemModel.ResourcePath); - newItem.Item = itemModel; - newItem.OnClick = OnItemClicked; - draggables.Add(newItem); - ItemSnapPoint emptySlot = GetFirstEmptySlot(); - if (emptySlot != null) - { - newItem.SetCurrentSlot(emptySlot); - _itemIDtoDraggable[itemModel.ID] = newItem; - } - else - { - Debug.LogError("Trying to add an item but Inventory is full!"); - return; - } - } - - /// - /// Adds any missing items and removes any items that should be gone. - /// - public void UpdateItems(List items) - { - UpdateStatsView(); - _lastHeldItems.Clear(); - foreach (IItemModel item in items) - { - _lastHeldItems.Add(item.ID); - if (!_itemIDtoDraggable.ContainsKey(item.ID)) - { - AddItem(item); - } - } - - foreach (var itemToRemove in _itemIDtoDraggable) - { - if (!_lastHeldItems.Contains(itemToRemove.Value.Item.ID)) - { - itemToRemove.Value.CurrentSlot.RemoveItemInSlot(); - //Uncertain if RemoveItemInSlot's event also removes the item from the dictionary or not. - //_itemIDtoDraggable.Remove(itemToRemove.Key); - } - } - } - - private void ClearInventory() - { - foreach (var snapSlot in inventorySlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var snapSlot in equippedSlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var draggable in draggables) - { - Destroy(draggable.gameObject); - } - - draggables.Clear(); - } - - private void UpdateSnapController() - { - _snapController.Draggables = draggables; - _snapController.SnapPoints = inventorySlots; - foreach(var slot in equippedSlots) - _snapController.SnapPoints.Add(slot); - } - - private ItemSnapPoint GetFirstEmptySlot() - { - foreach (var snapPoint in inventorySlots) - if (!snapPoint.HasItem) - return snapPoint; - return null; - } - - private void SaveInventoryLocally() - { - PlayerPrefs.DeleteAll(); - string playerID = ((Database)DatabaseFactory.Instance.GetDatabase()).CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (inventorySlots[i].HasItem) - PlayerPrefs.SetInt(invSaveLoc + i, inventorySlots[i].CurrentItemInSlot.Item.ID); - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (equippedSlots[i].HasItem) - PlayerPrefs.SetInt(eqSaveLoc + i, equippedSlots[i].CurrentItemInSlot.Item.ID); - } - Debug.Log("Inventory saved locally."); - } - - private void LoadLocalInventory() - { - Database db = (Database)DatabaseFactory.Instance.GetDatabase(); - string playerID = db.CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (PlayerPrefs.HasKey(invSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(invSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(inventorySlots[i]); - } - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (PlayerPrefs.HasKey(eqSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(eqSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(equippedSlots[i]); - } - } - Debug.Log("Inventory loaded."); - } - - public void UpdateStatsView() - { - StatParams heroStats = new StatParams(); - - foreach (var slot in equippedSlots) - { - if (!slot.HasItem) - continue; - StatParams sp = slot.CurrentItemInSlot.Item.Stats; - foreach (var prop in sp.GetType().GetProperties()) - { - float value = (float)prop.GetValue(sp) + (float)prop.GetValue(heroStats); - prop.SetValue(heroStats, value); - } - } - statsView.DisplayStats(heroStats); - } - - public void OnMintButtonClicked() - { - onItemMint.Invoke(); - } - - public void OnRefreshButtonClicked() - { - onInventoryRefresh.Invoke(); - } - - public void OnItemClicked(Draggable item) - { - itemView.transform.parent.gameObject.SetActive(true); - itemView.gameObject.SetActive(true); - itemView.DisplayItem(item.Item, item.Sprite); - itemView.GetComponent().SetItem(item.Item); - } -} diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL.meta b/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL.meta deleted file mode 100644 index c649fdd7..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.LOCAL.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: 01a090d996234574f9e8878e3bf6f995 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE b/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE deleted file mode 100644 index db3cc3c1..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE +++ /dev/null @@ -1,188 +0,0 @@ -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Events; -using UnityEngine.UI; - -[RequireComponent(typeof(SnapController))] -public class InventoryManager : MonoBehaviour -{ - public UnityEvent onItemMint; - public UnityEvent onInventoryRefresh; - - [SerializeField] private Draggable itemPrefab; - [SerializeField] private List inventorySlots; - [SerializeField] private List equippedSlots; - [SerializeField] private List draggables = new List(); - [SerializeField] private StatsView statsView; - [SerializeField] private ItemView itemView; - - private Dictionary _itemIDtoDraggable = new Dictionary(); - private SnapController _snapController; - - private const string PlayerPrefsInvKey = "_inv_"; - private const string PlayerPrefsEquipKey = "_eq_"; - - private void Start() - { - _snapController = GetComponent(); - } - - private void OnApplicationQuit() - { - // no need for local storage, since data need to be coming from the blockchain - //SaveInventoryLocally(); - } - - public void Init(List items) - { - ClearInventory(); - foreach (var item in items) - { - AddItem(item); - } - UpdateSnapController(); - - // no need for local storage, since data need to be coming from the blockchain - //LoadLocalInventory(); - } - - private void AddItem(IItemModel itemModel) - { - Draggable newItem = Instantiate(itemPrefab, this.transform); - ItemReseource itemRes = Resources.Load(itemModel.ResourcePath); - if (itemRes != null) - newItem.Sprite = itemRes.ItemSprite; - else - Debug.LogError("Could find resource file for " + itemModel.ResourcePath); - newItem.Item = itemModel; - newItem.OnClick = OnItemClicked; - draggables.Add(newItem); - ItemSnapPoint emptySlot = GetFirstEmptySlot(); - if (emptySlot != null) - { - newItem.SetCurrentSlot(emptySlot); - _itemIDtoDraggable[itemModel.ID] = newItem; - } - else - { - Debug.LogError("Trying to add an item but Inventory is full!"); - return; - } - } - - private void ClearInventory() - { - foreach (var snapSlot in inventorySlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var snapSlot in equippedSlots) - { - snapSlot.RemoveItemInSlot(); - } - - foreach (var draggable in draggables) - { - Destroy(draggable.gameObject); - } - - draggables.Clear(); - } - - private void UpdateSnapController() - { - _snapController.Draggables = draggables; - _snapController.SnapPoints = inventorySlots; - foreach(var slot in equippedSlots) - _snapController.SnapPoints.Add(slot); - } - - private ItemSnapPoint GetFirstEmptySlot() - { - foreach (var snapPoint in inventorySlots) - if (!snapPoint.HasItem) - return snapPoint; - return null; - } - - private void SaveInventoryLocally() - { - PlayerPrefs.DeleteAll(); - string playerID = ((ExampleManager)ExampleFactory.Instance.GetExampleManager()).CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (inventorySlots[i].HasItem) - PlayerPrefs.SetInt(invSaveLoc + i, inventorySlots[i].CurrentItemInSlot.Item.ID); - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (equippedSlots[i].HasItem) - PlayerPrefs.SetInt(eqSaveLoc + i, equippedSlots[i].CurrentItemInSlot.Item.ID); - } - Debug.Log("Inventory saved locally."); - } - - private void LoadLocalInventory() - { - ExampleManager db = (ExampleManager)ExampleFactory.Instance.GetExampleManager(); - string playerID = db.CurrentUser.Identifier; - string invSaveLoc = playerID + PlayerPrefsInvKey; - string eqSaveLoc = playerID + PlayerPrefsEquipKey; - for (int i = 0; i < inventorySlots.Count; i++) - { - if (PlayerPrefs.HasKey(invSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(invSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(inventorySlots[i]); - } - } - for (int i = 0; i < equippedSlots.Count; i++) - { - if (PlayerPrefs.HasKey(eqSaveLoc + i)) - { - int itemID = PlayerPrefs.GetInt(eqSaveLoc + i); - _itemIDtoDraggable[itemID].SetCurrentSlot(equippedSlots[i]); - } - } - Debug.Log("Inventory loaded."); - } - - public void UpdateStatsView() - { - StatParams heroStats = new StatParams(); - - foreach (var slot in equippedSlots) - { - if (!slot.HasItem) - continue; - StatParams sp = slot.CurrentItemInSlot.Item.Stats; - foreach (var prop in sp.GetType().GetProperties()) - { - float value = (float)prop.GetValue(sp) + (float)prop.GetValue(heroStats); - prop.SetValue(heroStats, value); - } - } - statsView.DisplayStats(heroStats); - } - - public void OnMintButtonClicked() - { - onItemMint.Invoke(); - } - - public void OnRefreshButtonClicked() - { - onInventoryRefresh.Invoke(); - } - - public void OnItemClicked(Draggable item) - { - itemView.transform.parent.gameObject.SetActive(true); - itemView.gameObject.SetActive(true); - itemView.DisplayItem(item.Item, item.Sprite); - itemView.GetComponent().SetItem(item.Item); - } -} diff --git a/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE.meta b/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE.meta deleted file mode 100644 index 6032e433..00000000 --- a/Samples~/Scripts/DemoExample/InventoryManager.cs.REMOTE.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: ffad75ac0c594634b82475db91308dd7 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Samples~/Scripts/DemoExample/UI/InitiateContractController.cs b/Samples~/Scripts/DemoExample/UI/InitiateContractController.cs index 073b5b8c..f49a98fa 100644 --- a/Samples~/Scripts/DemoExample/UI/InitiateContractController.cs +++ b/Samples~/Scripts/DemoExample/UI/InitiateContractController.cs @@ -4,43 +4,46 @@ using UnityEngine; using UnityEngine.UI; -public class InitiateContractController : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [SerializeField] private ToggleGroup contractsToggleGroup; - [SerializeField] private GameObject itemPrefab; - [SerializeField] private UIManager uiManager; - - public void DrawContractToggles(IEnumerable contracts, string walletAddress) + public class InitiateContractController : MonoBehaviour { - foreach (Transform child in contractsToggleGroup.transform) - Destroy(child.gameObject); - - var activeContractAddress = - PlayerPrefs.GetString("CurrentContract:" + walletAddress); - - foreach (var c in contracts) + [SerializeField] private ToggleGroup contractsToggleGroup; + [SerializeField] private GameObject itemPrefab; + [SerializeField] private UIManager uiManager; + + public void DrawContractToggles(IEnumerable contracts, string walletAddress) { - GameObject newItem = Instantiate(itemPrefab, contractsToggleGroup.transform); - Toggle toggle = newItem.GetComponent(); - toggle.group = contractsToggleGroup; - toggle.isOn = activeContractAddress == c.Address; - newItem.gameObject.GetComponentInChildren().text = c.Address; + foreach (Transform child in contractsToggleGroup.transform) + Destroy(child.gameObject); + + var activeContractAddress = + PlayerPrefs.GetString("CurrentContract:" + walletAddress); + + foreach (var c in contracts) + { + GameObject newItem = Instantiate(itemPrefab, contractsToggleGroup.transform); + Toggle toggle = newItem.GetComponent(); + toggle.group = contractsToggleGroup; + toggle.isOn = activeContractAddress == c.Address; + newItem.gameObject.GetComponentInChildren().text = c.Address; + } } - } - public void InitiateContract() - { - var contractAddress = GetSelectedToggle() - .gameObject - .GetComponentInChildren() - .text; - - uiManager.InitContract(contractAddress); - } + public void InitiateContract() + { + var contractAddress = GetSelectedToggle() + .gameObject + .GetComponentInChildren() + .text; - public Toggle GetSelectedToggle() - { - var toggles=contractsToggleGroup.GetComponentsInChildren(); - return toggles.FirstOrDefault(t => t.isOn); + uiManager.InitContract(contractAddress); + } + + public Toggle GetSelectedToggle() + { + var toggles = contractsToggleGroup.GetComponentsInChildren(); + return toggles.FirstOrDefault(t => t.isOn); + } } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UI/RegisterPanel.cs b/Samples~/Scripts/DemoExample/UI/RegisterPanel.cs index 63cc5254..86cdf005 100644 --- a/Samples~/Scripts/DemoExample/UI/RegisterPanel.cs +++ b/Samples~/Scripts/DemoExample/UI/RegisterPanel.cs @@ -1,110 +1,114 @@ using System.Collections; using Beacon.Sdk.Beacon.Sign; using TezosSDK.Tezos.Wallet; +using TezosSDK.View; using UnityEngine; using UnityEngine.UI; -public class RegisterPanel : PanelController +namespace TezosSDK.Samples.DemoExample { - [SerializeField, Header("Components")] private Button _deepLinkPair; - [SerializeField, Header("Components")] private Button _socialLoginButton; - [SerializeField] private RawImage _qrImage; - [SerializeField] private QRCodeView _qrCodeView; - [SerializeField, Header("Manager")] private UIManager _uiManager; + public class RegisterPanel : PanelController + { + [SerializeField, Header("Components")] private Button _deepLinkPair; + [SerializeField, Header("Components")] private Button _socialLoginButton; + [SerializeField] private RawImage _qrImage; + [SerializeField] private QRCodeView _qrCodeView; + [SerializeField, Header("Manager")] private UIManager _uiManager; - private IExampleManager _exampleManager; - private const string PayloadToSign = "Tezos Signed Message: mydap.com 2021-01-14T15:16:04Z Hello world!"; + private IExampleManager _exampleManager; + private const string PayloadToSign = "Tezos Signed Message: mydap.com 2021-01-14T15:16:04Z Hello world!"; - private IEnumerator Start() - { - // skip a frame before start accessing Database - yield return null; + private IEnumerator Start() + { + // skip a frame before start accessing Database + yield return null; - _exampleManager = ExampleFactory.Instance.GetExampleManager(); - _exampleManager.GetWalletMessageReceiver().HandshakeReceived += (handshake) => _qrCodeView.SetQrCode(handshake); + _exampleManager = ExampleFactory.Instance.GetExampleManager(); + _exampleManager.GetWalletMessageReceiver().HandshakeReceived += (handshake) => _qrCodeView.SetQrCode(handshake); - SetButtonState(_deepLinkPair, false, false); - SetButtonState(_socialLoginButton, false, false); - _qrImage.gameObject.SetActive(false); + SetButtonState(_deepLinkPair, false, false); + SetButtonState(_socialLoginButton, false, false); + _qrImage.gameObject.SetActive(false); #if UNITY_STANDALONE || UNITY_EDITOR - // make QR code available for Standalone - _qrImage.gameObject.SetActive(true); + // make QR code available for Standalone + _qrImage.gameObject.SetActive(true); #elif (UNITY_IOS || UNITY_ANDROID) SetButtonState(_deepLinkPair, true, true); #elif UNITY_WEBGL SetButtonState(_deepLinkPair, true, true); SetButtonState(_socialLoginButton, true, true); #endif - } + } - /// - /// For use on Deep Link connection button to pair to an on device wallet. - /// - public void DeepLinkPair() - { - _exampleManager.Login(WalletProviderType.beacon); - } + /// + /// For use on Deep Link connection button to pair to an on device wallet. + /// + public void DeepLinkPair() + { + _exampleManager.Login(WalletProviderType.beacon); + } - /// - /// Login with social networks. - /// - public void SocialLoginHandler() - { - _exampleManager.Login(WalletProviderType.kukai); - } + /// + /// Login with social networks. + /// + public void SocialLoginHandler() + { + _exampleManager.Login(WalletProviderType.kukai); + } - /// - /// To unpair from wallets. - /// - public void UnPair() - { - _exampleManager.Unpair(); - } + /// + /// To unpair from wallets. + /// + public void UnPair() + { + _exampleManager.Unpair(); + } - /// - /// Allows to set the button's state in a single line. - /// - /// The button in question. - /// The state of activity of it's GameObject. - /// If the button can be interactable or not. - private void SetButtonState(Button button, bool active, bool interactable) - { - button.gameObject.SetActive(active); - button.interactable = interactable; - } + /// + /// Allows to set the button's state in a single line. + /// + /// The button in question. + /// The state of activity of it's GameObject. + /// If the button can be interactable or not. + private void SetButtonState(Button button, bool active, bool interactable) + { + button.gameObject.SetActive(active); + button.interactable = interactable; + } - public void SignPayloadTest() - { - ExampleFactory - .Instance - .GetExampleManager() - .RequestSignPayload(SignPayloadType.micheline, PayloadToSign); - } + public void SignPayloadTest() + { + ExampleFactory + .Instance + .GetExampleManager() + .RequestSignPayload(SignPayloadType.micheline, PayloadToSign); + } - public void VerifySignatureTest() - { - var verified = ExampleFactory - .Instance.GetExampleManager() - .VerifyPayload(SignPayloadType.micheline, PayloadToSign); - Debug.Log("Verification success: " + verified); - } + public void VerifySignatureTest() + { + var verified = ExampleFactory + .Instance.GetExampleManager() + .VerifyPayload(SignPayloadType.micheline, PayloadToSign); + Debug.Log("Verification success: " + verified); + } - public void DeployContract() - { - _exampleManager.DeployContract(_ => + public void DeployContract() { - _uiManager.UpdateContractAddress(); - _uiManager.UpdateContracts(); - }); - } - - public void ChangeContract() - { - _uiManager.ChangeContract(); - } + _exampleManager.DeployContract(_ => + { + _uiManager.UpdateContractAddress(); + _uiManager.UpdateContracts(); + }); + } - public void UploadToIpfs() - { - _exampleManager.UploadToIpfs(); + public void ChangeContract() + { + _uiManager.ChangeContract(); + } + + public void UploadToIpfs() + { + _exampleManager.UploadToIpfs(); + } } } \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/UIManager.cs b/Samples~/Scripts/DemoExample/UIManager.cs index e09ba3a8..c96d0cb7 100644 --- a/Samples~/Scripts/DemoExample/UIManager.cs +++ b/Samples~/Scripts/DemoExample/UIManager.cs @@ -6,308 +6,311 @@ using TezosSDK.Helpers; using UnityEngine; -public class UIManager : MonoBehaviour +namespace TezosSDK.Samples.DemoExample { - [Header("References:")] [SerializeField] - private GameObject loginPanel; - - [SerializeField] private GameObject welcomePanel; - [SerializeField] private TMPro.TextMeshProUGUI welcomeText; - [SerializeField] private TabButton inventoryButton; - [SerializeField] private TabButton marketButton; - [SerializeField] private InventoryManager inventory; - [SerializeField] private MarketManager market; - [SerializeField] private GameObject loadingPanel; - [SerializeField] private GameObject deployPanel; - [SerializeField] private TMPro.TextMeshProUGUI accountText; - [SerializeField] private TMPro.TextMeshProUGUI contractAddressText; - [SerializeField] private TMPro.TextMeshProUGUI balanceText; - [SerializeField] private TMPro.TextMeshProUGUI softBalanceText; - [SerializeField] private GameObject popupPanel; - [SerializeField] private GameObject initContractPanel; - - private IExampleManager _manager; - - private void Start() + public class UIManager : MonoBehaviour { - _manager = ExampleFactory.Instance.GetExampleManager(); - InitializeCallbacks(); + [Header("References:")] [SerializeField] + private GameObject loginPanel; + + [SerializeField] private GameObject welcomePanel; + [SerializeField] private TMPro.TextMeshProUGUI welcomeText; + [SerializeField] private TabButton inventoryButton; + [SerializeField] private TabButton marketButton; + [SerializeField] private InventoryManager inventory; + [SerializeField] private MarketManager market; + [SerializeField] private GameObject loadingPanel; + [SerializeField] private GameObject deployPanel; + [SerializeField] private TMPro.TextMeshProUGUI accountText; + [SerializeField] private TMPro.TextMeshProUGUI contractAddressText; + [SerializeField] private TMPro.TextMeshProUGUI balanceText; + [SerializeField] private TMPro.TextMeshProUGUI softBalanceText; + [SerializeField] private GameObject popupPanel; + [SerializeField] private GameObject initContractPanel; + + private IExampleManager _manager; + + private void Start() + { + _manager = ExampleFactory.Instance.GetExampleManager(); + InitializeCallbacks(); - inventoryButton.OnTabSelected.AddListener(AccessInventory); - marketButton.OnTabSelected.AddListener(AccessMarket); - inventory.onInventoryRefresh.AddListener(AccessInventory); - inventory.onItemMint.AddListener(MintItem); - } + inventoryButton.OnTabSelected.AddListener(AccessInventory); + marketButton.OnTabSelected.AddListener(AccessMarket); + inventory.onInventoryRefresh.AddListener(AccessInventory); + inventory.onItemMint.AddListener(MintItem); + } - private void InitializeCallbacks() - { - _manager.GetWalletMessageReceiver().AccountConnected += OnAccountConnected; - _manager.GetWalletMessageReceiver().AccountConnectionFailed += OnAccountConnectionFailed; - _manager.GetWalletMessageReceiver().AccountDisconnected += OnAccountDisconnected; - _manager.GetWalletMessageReceiver().ContractCallCompleted += OnContractCallCompleted; - _manager.GetWalletMessageReceiver().ContractCallFailed += OnContractCallFailed; - _manager.GetWalletMessageReceiver().ContractCallInjected += OnContractCallInjected; - _manager.GetWalletMessageReceiver().PayloadSigned += OnPayloadSigned; - } + private void InitializeCallbacks() + { + _manager.GetWalletMessageReceiver().AccountConnected += OnAccountConnected; + _manager.GetWalletMessageReceiver().AccountConnectionFailed += OnAccountConnectionFailed; + _manager.GetWalletMessageReceiver().AccountDisconnected += OnAccountDisconnected; + _manager.GetWalletMessageReceiver().ContractCallCompleted += OnContractCallCompleted; + _manager.GetWalletMessageReceiver().ContractCallFailed += OnContractCallFailed; + _manager.GetWalletMessageReceiver().ContractCallInjected += OnContractCallInjected; + _manager.GetWalletMessageReceiver().PayloadSigned += OnPayloadSigned; + } - private void AccessInventory() - { - loadingPanel.SetActive(true); + private void AccessInventory() + { + loadingPanel.SetActive(true); - _manager.FetchInventoryItems(PopulateInventory); + _manager.FetchInventoryItems(PopulateInventory); - DisplayWalletData(); - } + DisplayWalletData(); + } - private void AccessMarket() - { - loadingPanel.SetActive(true); + private void AccessMarket() + { + loadingPanel.SetActive(true); - _manager.FetchMarketItems(PopulateMarket); + _manager.FetchMarketItems(PopulateMarket); - DisplayWalletData(); - } + DisplayWalletData(); + } - private void MintItem() - { - _manager.MintItem(); - } + private void MintItem() + { + _manager.MintItem(); + } - public void GetCoins() - { - _manager.GetCoins(); - } + public void GetCoins() + { + _manager.GetCoins(); + } - public void OnSignIn(bool success) - { - _manager.GetOriginatedContracts(contracts => + public void OnSignIn(bool success) { - if (contracts != null && contracts.Any()) + _manager.GetOriginatedContracts(contracts => { - if (string.IsNullOrEmpty(_manager.Tezos.TokenContract.Address)) - initContractPanel.SetActive(true); + if (contracts != null && contracts.Any()) + { + if (string.IsNullOrEmpty(_manager.Tezos.TokenContract.Address)) + initContractPanel.SetActive(true); - initContractPanel.GetComponent() - .DrawContractToggles(contracts, _manager.Tezos.Wallet.GetActiveAddress()); - } + initContractPanel.GetComponent() + .DrawContractToggles(contracts, _manager.Tezos.Wallet.GetActiveAddress()); + } - AllowUIAccess(success); - }); - - //TODO: GetActiveAccount() in the BeaconConnector SHOULD be returning stuff from the paired account. - //Something in there might be usable to populate the User info I removed if we still want this. - welcomeText.text = success ? "Welcome!" : "Pairing failed or timed out"; - DisplayWalletData(); - } + AllowUIAccess(success); + }); - public void AllowUIAccess(bool allow) - { - loginPanel.SetActive(!allow); - welcomePanel.SetActive(allow); - inventoryButton.gameObject.SetActive(allow); - marketButton.gameObject.SetActive(allow); - } + //TODO: GetActiveAccount() in the BeaconConnector SHOULD be returning stuff from the paired account. + //Something in there might be usable to populate the User info I removed if we still want this. + welcomeText.text = success ? "Welcome!" : "Pairing failed or timed out"; + DisplayWalletData(); + } - private void PopulateInventory(List items) - { - Action action = () => + public void AllowUIAccess(bool allow) { - inventory.Init(items); - loadingPanel.SetActive(false); - }; - CoroutineRunner.Instance.StartWrappedCoroutine(DoActionNextFrame(action)); - } + loginPanel.SetActive(!allow); + welcomePanel.SetActive(allow); + inventoryButton.gameObject.SetActive(allow); + marketButton.gameObject.SetActive(allow); + } - private void PopulateMarket(List items) - { - Action action = () => + private void PopulateInventory(List items) { - market.Init(items); - loadingPanel.SetActive(false); - }; - CoroutineRunner.Instance.StartWrappedCoroutine(DoActionNextFrame(action)); - } - - private IEnumerator DoActionNextFrame(Action action) - { - yield return new WaitForEndOfFrame(); - action?.Invoke(); - } - - public void ResetWalletData() - { - SetAccountText(string.Empty); - SetBalanceText(0); - SetSoftBalanceText(0); - SetContract(string.Empty); - } + Action action = () => + { + inventory.Init(items); + loadingPanel.SetActive(false); + }; + CoroutineRunner.Instance.StartWrappedCoroutine(DoActionNextFrame(action)); + } - private void DisplayWalletData() - { - var address = _manager.GetActiveAccountAddress(); - SetAccountText(address); - UpdateContractAddress(); - _manager.GetBalance(SetBalanceText); - _manager.GetSoftBalance(SetSoftBalanceText); - } + private void PopulateMarket(List items) + { + Action action = () => + { + market.Init(items); + loadingPanel.SetActive(false); + }; + CoroutineRunner.Instance.StartWrappedCoroutine(DoActionNextFrame(action)); + } - private void SetBalanceText(ulong balance) - { - // balance is in mutez (one millionth of tezos) - var floatBalance = balance * 0.000001; - balanceText.text = (floatBalance).ToString(); - } + private IEnumerator DoActionNextFrame(Action action) + { + yield return new WaitForEndOfFrame(); + action?.Invoke(); + } - private void SetSoftBalanceText(int balance) - { - // balance is in mutez (one millionth of tezos) - softBalanceText.text = balance.ToString(); - } + public void ResetWalletData() + { + SetAccountText(string.Empty); + SetBalanceText(0); + SetSoftBalanceText(0); + SetContract(string.Empty); + } - private void SetAccountText(string account) - { - accountText.text = account; - } + private void DisplayWalletData() + { + var address = _manager.GetActiveAccountAddress(); + SetAccountText(address); + UpdateContractAddress(); + _manager.GetBalance(SetBalanceText); + _manager.GetSoftBalance(SetSoftBalanceText); + } - private void SetContract(string contractAddress) - { - contractAddressText.text = contractAddress; - } + private void SetBalanceText(ulong balance) + { + // balance is in mutez (one millionth of tezos) + var floatBalance = balance * 0.000001; + balanceText.text = (floatBalance).ToString(); + } - public void UpdateContracts() - { - _manager.GetOriginatedContracts(contracts => + private void SetSoftBalanceText(int balance) { - if (contracts == null || contracts.Count() <= 0) return; + // balance is in mutez (one millionth of tezos) + softBalanceText.text = balance.ToString(); + } - initContractPanel.GetComponent() - .DrawContractToggles(contracts, _manager.Tezos.Wallet.GetActiveAddress()); - }); - } + private void SetAccountText(string account) + { + accountText.text = account; + } - private void DisplayPopup(string message) - { - UnityMainThreadDispatcher.Enqueue((msg) => + private void SetContract(string contractAddress) { - popupPanel.SetActive(true); - popupPanel.GetComponentInChildren().text = msg; - }, message); - } + contractAddressText.text = contractAddress; + } - public void ShowDeployPanel() - { - deployPanel.SetActive(true); - } + public void UpdateContracts() + { + _manager.GetOriginatedContracts(contracts => + { + if (contracts == null || contracts.Count() <= 0) return; - #region Tezos Callbacks + initContractPanel.GetComponent() + .DrawContractToggles(contracts, _manager.Tezos.Wallet.GetActiveAddress()); + }); + } - private void OnAccountConnected(string account) - { - Debug.Log(account); - if (!string.IsNullOrEmpty(account)) - OnSignIn(true); - } + private void DisplayPopup(string message) + { + UnityMainThreadDispatcher.Enqueue((msg) => + { + popupPanel.SetActive(true); + popupPanel.GetComponentInChildren().text = msg; + }, message); + } - private void OnAccountConnectionFailed(string response) - { - DisplayPopup("Wallet connection failed!\n \n" + - "Response: \n" + response); - } + public void ShowDeployPanel() + { + deployPanel.SetActive(true); + } - private void OnAccountDisconnected(string account) - { - AllowUIAccess(false); - ResetWalletData(); - } + #region Tezos Callbacks - [Serializable] - private struct Transaction - { - public string transactionHash; - } + private void OnAccountConnected(string account) + { + Debug.Log(account); + if (!string.IsNullOrEmpty(account)) + OnSignIn(true); + } - private void OnContractCallCompleted(string response) - { - string transactionHash = - JsonSerializer.Deserialize(response).GetProperty("transactionHash").ToString(); - DisplayPopup("Transaction completed!\n \n" + - "Transaction hash:\n" + transactionHash + - "\n \nResponse:\n" + response); - } + private void OnAccountConnectionFailed(string response) + { + DisplayPopup("Wallet connection failed!\n \n" + + "Response: \n" + response); + } - public void UpdateContractAddress() - { - var currentContractAddressText = _manager - .Tezos - .TokenContract - .Address; + private void OnAccountDisconnected(string account) + { + AllowUIAccess(false); + ResetWalletData(); + } - if (contractAddressText.text != currentContractAddressText) + [Serializable] + private struct Transaction { - SetContract(currentContractAddressText); + public string transactionHash; } - } - public void InitContract(string address) - { - // todo: switch inventory items - _manager.ChangeContract(address); - UpdateContractAddress(); - } + private void OnContractCallCompleted(string response) + { + string transactionHash = + JsonSerializer.Deserialize(response).GetProperty("transactionHash").ToString(); + DisplayPopup("Transaction completed!\n \n" + + "Transaction hash:\n" + transactionHash + + "\n \nResponse:\n" + response); + } - public void ChangeContract() - { - _manager.GetOriginatedContracts(contracts => + public void UpdateContractAddress() { - if (contracts != null && contracts.Any()) + var currentContractAddressText = _manager + .Tezos + .TokenContract + .Address; + + if (contractAddressText.text != currentContractAddressText) { - if (string.IsNullOrEmpty(_manager.Tezos.TokenContract.Address)) return; - - initContractPanel.SetActive(true); + SetContract(currentContractAddressText); } - else + } + + public void InitContract(string address) + { + // todo: switch inventory items + _manager.ChangeContract(address); + UpdateContractAddress(); + } + + public void ChangeContract() + { + _manager.GetOriginatedContracts(contracts => { - DisplayPopup("You do not have deployed contracts yet!"); - } - }); - } + if (contracts != null && contracts.Any()) + { + if (string.IsNullOrEmpty(_manager.Tezos.TokenContract.Address)) return; - private void OnContractCallFailed(string response) - { - DisplayPopup("Transaction failed!\n \n" + - "Response:\n" + response); - } + initContractPanel.SetActive(true); + } + else + { + DisplayPopup("You do not have deployed contracts yet!"); + } + }); + } - private void OnContractCallInjected(string result) - { - string successString = JsonSerializer.Deserialize(result).GetProperty("success").ToString(); - string transactionHash = - JsonSerializer.Deserialize(result).GetProperty("transactionHash").ToString(); - - bool success = successString != null && bool.Parse(successString); - if (success) + private void OnContractCallFailed(string response) { - _manager.FetchMarketItems(PopulateMarket); - _manager.FetchInventoryItems(PopulateInventory); - market.CheckSelection(); - DisplayWalletData(); + DisplayPopup("Transaction failed!\n \n" + + "Response:\n" + response); } - - DisplayPopup("Call injected!\n \n" + - "Response:\n" + success + - "\n \nTransaction Hash:\n" + transactionHash); - } - private void OnPayloadSigned(string result) - { - var signature = JsonSerializer - .Deserialize(result) - .GetProperty("signature") - .ToString(); + private void OnContractCallInjected(string result) + { + string successString = JsonSerializer.Deserialize(result).GetProperty("success").ToString(); + string transactionHash = + JsonSerializer.Deserialize(result).GetProperty("transactionHash").ToString(); - DisplayPopup($"Signed!\n \n" + - $"Signature: {signature}"); - } + bool success = successString != null && bool.Parse(successString); + if (success) + { + _manager.FetchMarketItems(PopulateMarket); + _manager.FetchInventoryItems(PopulateInventory); + market.CheckSelection(); + DisplayWalletData(); + } - #endregion + DisplayPopup("Call injected!\n \n" + + "Response:\n" + success + + "\n \nTransaction Hash:\n" + transactionHash); + } + + private void OnPayloadSigned(string result) + { + var signature = JsonSerializer + .Deserialize(result) + .GetProperty("signature") + .ToString(); + + DisplayPopup($"Signed!\n \n" + + $"Signature: {signature}"); + } + + #endregion + } } \ No newline at end of file diff --git a/Samples~/Scripts/NftApiSample/DataManager.cs b/Samples~/Scripts/NftApiSample/DataManager.cs index aca917ed..62ed7b1d 100644 --- a/Samples~/Scripts/NftApiSample/DataManager.cs +++ b/Samples~/Scripts/NftApiSample/DataManager.cs @@ -7,147 +7,150 @@ using TezosSDK.Tezos.API.Models.Tokens; using UnityEngine; -public class DataManager : MonoBehaviour +namespace TezosSDK.Samples.NFTApiSample { - private ITezos _tezos; - - private string _connectedAddress; - private string _checkContract; - private string _checkAddress; - private string _checkTokenId; + public class DataManager : MonoBehaviour + { + private ITezos _tezos; - public Action DataReceived; + private string _connectedAddress; + private string _checkContract; + private string _checkAddress; + private string _checkTokenId; - private const int MaxTokens = 20; + public Action DataReceived; - void Start() - { - _tezos = TezosSingleton.Instance; - _tezos - .Wallet - .MessageReceiver - .AccountConnected += OnAccountConnected; - } + private const int MaxTokens = 20; - void OnAccountConnected(string result) - { - var json = JsonSerializer.Deserialize(result); - var account = json.GetProperty("account"); - _connectedAddress = account.GetProperty("address").GetString(); - } + void Start() + { + _tezos = TezosSingleton.Instance; + _tezos + .Wallet + .MessageReceiver + .AccountConnected += OnAccountConnected; + } - public void GetTokensForOwners() - { - var walletAddress = string.IsNullOrEmpty(_checkAddress) - ? _connectedAddress - : _checkAddress; + void OnAccountConnected(string result) + { + var json = JsonSerializer.Deserialize(result); + var account = json.GetProperty("account"); + _connectedAddress = account.GetProperty("address").GetString(); + } - CoroutineRunner.Instance.StartCoroutine( - _tezos.API.GetTokensForOwner((tbs) => - { - if (tbs == null) - { - DataReceived.Invoke($"Incorrect address - {walletAddress}"); - Debug.Log($"Incorrect address - {walletAddress}"); - return; - } + public void GetTokensForOwners() + { + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; - List tokens = new List(tbs); - if (tokens.Count > 0) + CoroutineRunner.Instance.StartCoroutine( + _tezos.API.GetTokensForOwner((tbs) => { - var result = ""; - foreach (var tb in tokens) + if (tbs == null) { - result += - $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}" + - "\r\n" + "\r\n"; - Debug.Log( - $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}"); + DataReceived.Invoke($"Incorrect address - {walletAddress}"); + Debug.Log($"Incorrect address - {walletAddress}"); + return; } - DataReceived.Invoke(result); - } - else - { - DataReceived.Invoke($"{walletAddress} has no tokens"); - Debug.Log($"{walletAddress} has no tokens"); - } - }, - owner: walletAddress, - withMetadata: false, - maxItems: MaxTokens, - orderBy: new TokensForOwnerOrder.Default(0))); - } - - public void IsHolderOfContract() - { - var walletAddress = string.IsNullOrEmpty(_checkAddress) - ? _connectedAddress - : _checkAddress; + List tokens = new List(tbs); + if (tokens.Count > 0) + { + var result = ""; + foreach (var tb in tokens) + { + result += + $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}" + + "\r\n" + "\r\n"; + Debug.Log( + $"{walletAddress} has {tb.Balance} tokens on contract {tb.TokenContract.Address}"); + } + + DataReceived.Invoke(result); + } + else + { + DataReceived.Invoke($"{walletAddress} has no tokens"); + Debug.Log($"{walletAddress} has no tokens"); + } + }, + owner: walletAddress, + withMetadata: false, + maxItems: MaxTokens, + orderBy: new TokensForOwnerOrder.Default(0))); + } - if (string.IsNullOrEmpty(_checkContract)) + public void IsHolderOfContract() { - DataReceived.Invoke("Enter contract address"); - Debug.Log("Enter contract address"); - return; - } + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; - CoroutineRunner.Instance.StartCoroutine(_tezos.API.IsHolderOfContract((flag) => + if (string.IsNullOrEmpty(_checkContract)) { - var message = flag - ? $"{walletAddress} is HOLDER of contract {_checkContract}" - : $"{walletAddress} is NOT HOLDER of contract {_checkContract}"; - - DataReceived.Invoke(message); - Debug.Log(message); - }, - wallet: walletAddress, - contractAddress: _checkContract)); - } + DataReceived.Invoke("Enter contract address"); + Debug.Log("Enter contract address"); + return; + } - public void IsHolderOfToken() - { - var walletAddress = string.IsNullOrEmpty(_checkAddress) - ? _connectedAddress - : _checkAddress; + CoroutineRunner.Instance.StartCoroutine(_tezos.API.IsHolderOfContract((flag) => + { + var message = flag + ? $"{walletAddress} is HOLDER of contract {_checkContract}" + : $"{walletAddress} is NOT HOLDER of contract {_checkContract}"; - var tokenId = string.IsNullOrEmpty(_checkTokenId) - ? 0 - : Convert.ToUInt32(_checkTokenId); + DataReceived.Invoke(message); + Debug.Log(message); + }, + wallet: walletAddress, + contractAddress: _checkContract)); + } - if (string.IsNullOrEmpty(_checkContract)) + public void IsHolderOfToken() { - DataReceived.Invoke("Enter contract address"); - Debug.Log("Enter contract address"); - return; - } + var walletAddress = string.IsNullOrEmpty(_checkAddress) + ? _connectedAddress + : _checkAddress; - CoroutineRunner.Instance.StartCoroutine(_tezos.API.IsHolderOfToken((flag) => + var tokenId = string.IsNullOrEmpty(_checkTokenId) + ? 0 + : Convert.ToUInt32(_checkTokenId); + + if (string.IsNullOrEmpty(_checkContract)) { - var message = flag - ? $"{walletAddress} is HOLDER of token" - : $"{walletAddress} is NOT HOLDER of token"; - - DataReceived.Invoke(message); - Debug.Log(message); - }, - wallet: walletAddress, - contractAddress: _checkContract, - tokenId: tokenId)); - } + DataReceived.Invoke("Enter contract address"); + Debug.Log("Enter contract address"); + return; + } - public void SetCheckAddress(string address) - { - _checkAddress = address; - } + CoroutineRunner.Instance.StartCoroutine(_tezos.API.IsHolderOfToken((flag) => + { + var message = flag + ? $"{walletAddress} is HOLDER of token" + : $"{walletAddress} is NOT HOLDER of token"; - public void SetCheckTokenId(string tokenId) - { - _checkTokenId = tokenId; - } + DataReceived.Invoke(message); + Debug.Log(message); + }, + wallet: walletAddress, + contractAddress: _checkContract, + tokenId: tokenId)); + } - public void SetCheckContract(string contract) - { - _checkContract = contract; + public void SetCheckAddress(string address) + { + _checkAddress = address; + } + + public void SetCheckTokenId(string tokenId) + { + _checkTokenId = tokenId; + } + + public void SetCheckContract(string contract) + { + _checkContract = contract; + } } } \ No newline at end of file From 3ddf4f3b881e9d5445fbb8194ab214563f406e64 Mon Sep 17 00:00:00 2001 From: mismirnov Date: Tue, 11 Jul 2023 14:25:10 +0300 Subject: [PATCH 3/4] Fix contract activation after deploy; --- Runtime/Scripts/Tezos/API/Models/TokenContract.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Runtime/Scripts/Tezos/API/Models/TokenContract.cs b/Runtime/Scripts/Tezos/API/Models/TokenContract.cs index 9b67a921..7a98685a 100644 --- a/Runtime/Scripts/Tezos/API/Models/TokenContract.cs +++ b/Runtime/Scripts/Tezos/API/Models/TokenContract.cs @@ -206,7 +206,7 @@ private void DeployCompleted(string response) var lastUsedContract = tokenContracts.Last(); Address = lastUsedContract.Address; - PlayerPrefs.SetString("CurrentContract", lastUsedContract.Address); + PlayerPrefs.SetString("CurrentContract:" + creator, lastUsedContract.Address); OnDeployCompleted.Invoke(lastUsedContract.Address); }, creator, From 64cfaa193a8f5a5ec8a9efed7e23744265f9d017 Mon Sep 17 00:00:00 2001 From: Konstantin Karuna Date: Tue, 11 Jul 2023 14:56:20 +0300 Subject: [PATCH 4/4] Implemented Onchain and IPFS uploaders; --- .../{IpfsUploader.meta => FileUploaders.meta} | 0 Runtime/Scripts/FileUploaders/BaseUploader.cs | 35 ++++++++ .../BaseUploader.cs.meta | 0 Runtime/Scripts/FileUploaders/IPFS.meta | 3 + .../IPFS/EditorPinataUploader.cs} | 13 +-- .../IPFS/EditorPinataUploader.cs.meta} | 0 .../IPFS}/IpfsResponse.cs | 0 .../IPFS}/IpfsResponse.cs.meta | 0 .../FileUploaders/IPFS/PinataCredentials.cs | 14 ++++ .../IPFS/PinataCredentials.cs.meta | 3 + .../IPFS/WebPinataUploader.cs} | 41 +++++----- .../IPFS/WebPinataUploader.cs.meta} | 0 .../FileUploaders/JSFileUploader.jslib | 29 +++++++ .../JSFileUploader.jslib.meta | 0 Runtime/Scripts/FileUploaders/OnChain.meta | 3 + .../OnChain/EditorBase64Uploader.cs | 38 +++++++++ .../OnChain/EditorBase64Uploader.cs.meta | 3 + .../OnChain/WebBase64Uploader.cs | 69 ++++++++++++++++ .../OnChain/WebBase64Uploader.cs.meta | 3 + .../Scripts/FileUploaders/UploaderFactory.cs | 44 ++++++++++ .../UploaderFactory.cs.meta | 0 Runtime/Scripts/IpfsUploader/BaseUploader.cs | 19 ----- Runtime/Scripts/IpfsUploader/IFileUploader.cs | 20 ----- .../IpfsUploader/IFileUploader.cs.meta | 3 - .../Scripts/IpfsUploader/JSFileUploader.jslib | 19 ----- .../Scripts/IpfsUploader/UploaderFactory.cs | 26 ------ .../DemoExample/Core/ExampleManager.cs | 5 +- .../output/StreamingAssets/webgl-frontend.js | 2 +- .../StreamingAssets/webgl-frontend.js.meta | 2 +- WebGLFrontend/src/FileUploaders.meta | 8 ++ .../src/FileUploaders/Base64Uploader.ts | 33 ++++++++ .../src/FileUploaders/Base64Uploader.ts.meta | 7 ++ .../src/FileUploaders/BaseFileUploader.ts | 53 ++++++++++++ .../FileUploaders/BaseFileUploader.ts.meta | 7 ++ .../src/FileUploaders/IpfsUploader.ts | 44 ++++++++++ .../IpfsUploader.ts.meta | 2 +- WebGLFrontend/src/FileUploaders/Types.ts | 37 +++++++++ .../Types.ts.meta | 2 +- .../src/IpfsUploader/IpfsUploader.ts | 80 ------------------- WebGLFrontend/src/IpfsUploader/Types.ts | 23 ------ WebGLFrontend/src/index.ts | 41 +++++++--- 41 files changed, 499 insertions(+), 232 deletions(-) rename Runtime/Scripts/{IpfsUploader.meta => FileUploaders.meta} (100%) create mode 100644 Runtime/Scripts/FileUploaders/BaseUploader.cs rename Runtime/Scripts/{IpfsUploader => FileUploaders}/BaseUploader.cs.meta (100%) create mode 100644 Runtime/Scripts/FileUploaders/IPFS.meta rename Runtime/Scripts/{IpfsUploader/EditorUploader.cs => FileUploaders/IPFS/EditorPinataUploader.cs} (79%) rename Runtime/Scripts/{IpfsUploader/EditorUploader.cs.meta => FileUploaders/IPFS/EditorPinataUploader.cs.meta} (100%) rename Runtime/Scripts/{IpfsUploader => FileUploaders/IPFS}/IpfsResponse.cs (100%) rename Runtime/Scripts/{IpfsUploader => FileUploaders/IPFS}/IpfsResponse.cs.meta (100%) create mode 100644 Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs create mode 100644 Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs.meta rename Runtime/Scripts/{IpfsUploader/WebUploader.cs => FileUploaders/IPFS/WebPinataUploader.cs} (57%) rename Runtime/Scripts/{IpfsUploader/WebUploader.cs.meta => FileUploaders/IPFS/WebPinataUploader.cs.meta} (100%) create mode 100644 Runtime/Scripts/FileUploaders/JSFileUploader.jslib rename Runtime/Scripts/{IpfsUploader => FileUploaders}/JSFileUploader.jslib.meta (100%) create mode 100644 Runtime/Scripts/FileUploaders/OnChain.meta create mode 100644 Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs create mode 100644 Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs.meta create mode 100644 Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs create mode 100644 Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs.meta create mode 100644 Runtime/Scripts/FileUploaders/UploaderFactory.cs rename Runtime/Scripts/{IpfsUploader => FileUploaders}/UploaderFactory.cs.meta (100%) delete mode 100644 Runtime/Scripts/IpfsUploader/BaseUploader.cs delete mode 100644 Runtime/Scripts/IpfsUploader/IFileUploader.cs delete mode 100644 Runtime/Scripts/IpfsUploader/IFileUploader.cs.meta delete mode 100644 Runtime/Scripts/IpfsUploader/JSFileUploader.jslib delete mode 100644 Runtime/Scripts/IpfsUploader/UploaderFactory.cs create mode 100644 WebGLFrontend/src/FileUploaders.meta create mode 100644 WebGLFrontend/src/FileUploaders/Base64Uploader.ts create mode 100644 WebGLFrontend/src/FileUploaders/Base64Uploader.ts.meta create mode 100644 WebGLFrontend/src/FileUploaders/BaseFileUploader.ts create mode 100644 WebGLFrontend/src/FileUploaders/BaseFileUploader.ts.meta create mode 100644 WebGLFrontend/src/FileUploaders/IpfsUploader.ts rename WebGLFrontend/src/{IpfsUploader => FileUploaders}/IpfsUploader.ts.meta (74%) create mode 100644 WebGLFrontend/src/FileUploaders/Types.ts rename WebGLFrontend/src/{IpfsUploader => FileUploaders}/Types.ts.meta (74%) delete mode 100644 WebGLFrontend/src/IpfsUploader/IpfsUploader.ts delete mode 100644 WebGLFrontend/src/IpfsUploader/Types.ts diff --git a/Runtime/Scripts/IpfsUploader.meta b/Runtime/Scripts/FileUploaders.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader.meta rename to Runtime/Scripts/FileUploaders.meta diff --git a/Runtime/Scripts/FileUploaders/BaseUploader.cs b/Runtime/Scripts/FileUploaders/BaseUploader.cs new file mode 100644 index 00000000..6af506c3 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/BaseUploader.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections; +using TezosSDK.Scripts.FileUploaders.IPFS; +using UnityEngine; + +namespace TezosSDK.Scripts.FileUploaders +{ + public abstract class BaseUploader : MonoBehaviour + { + public string SupportedFileExtensions { get; } = ".jpg, .jpeg, .png"; + + private void Start() + { + DontDestroyOnLoad(gameObject); + } + } + + public interface IPinataUploader : IBaseUploader + { + PinataCredentials PinataCredentials { get; set; } + } + + public interface IBaseUploader + { + string SupportedFileExtensions { get; } + + /// + /// Upload file that user will select through native menu file picker. + /// + /// + /// Executes after asset uploaded with data address. + /// + IEnumerator UploadFile(Action callback); + } +} \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/BaseUploader.cs.meta b/Runtime/Scripts/FileUploaders/BaseUploader.cs.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/BaseUploader.cs.meta rename to Runtime/Scripts/FileUploaders/BaseUploader.cs.meta diff --git a/Runtime/Scripts/FileUploaders/IPFS.meta b/Runtime/Scripts/FileUploaders/IPFS.meta new file mode 100644 index 00000000..3a658763 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/IPFS.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 445ccc12e9dd423d8b8e2b6f7982edd0 +timeCreated: 1689070204 \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/EditorUploader.cs b/Runtime/Scripts/FileUploaders/IPFS/EditorPinataUploader.cs similarity index 79% rename from Runtime/Scripts/IpfsUploader/EditorUploader.cs rename to Runtime/Scripts/FileUploaders/IPFS/EditorPinataUploader.cs index 919c30f6..f029193f 100644 --- a/Runtime/Scripts/IpfsUploader/EditorUploader.cs +++ b/Runtime/Scripts/FileUploaders/IPFS/EditorPinataUploader.cs @@ -3,15 +3,18 @@ using System.Collections; using System.IO; using System.Text.Json; +using TezosSDK.Scripts.IpfsUploader; using UnityEditor; using UnityEngine; using UnityEngine.Networking; using Logger = TezosSDK.Helpers.Logger; -namespace TezosSDK.Scripts.IpfsUploader +namespace TezosSDK.Scripts.FileUploaders.IPFS { - public class EditorUploader : BaseUploader, IFileUploader + public class EditorPinataUploader : BaseUploader, IPinataUploader { + public PinataCredentials PinataCredentials { get; set; } + public IEnumerator UploadFile(Action callback) { yield return null; @@ -28,8 +31,8 @@ public IEnumerator UploadFile(Action callback) var form = new WWWForm(); form.AddBinaryData("file", File.ReadAllBytes(path), filename); - var request = UnityWebRequest.Post(ApiUrl, form); - request.SetRequestHeader("Authorization", $"Bearer {ApiKey}"); + var request = UnityWebRequest.Post(PinataCredentials.ApiUrl, form); + request.SetRequestHeader("Authorization", $"Bearer {PinataCredentials.ApiKey}"); yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.Success) @@ -44,4 +47,4 @@ public IEnumerator UploadFile(Action callback) } } } -#endif +#endif \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/EditorUploader.cs.meta b/Runtime/Scripts/FileUploaders/IPFS/EditorPinataUploader.cs.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/EditorUploader.cs.meta rename to Runtime/Scripts/FileUploaders/IPFS/EditorPinataUploader.cs.meta diff --git a/Runtime/Scripts/IpfsUploader/IpfsResponse.cs b/Runtime/Scripts/FileUploaders/IPFS/IpfsResponse.cs similarity index 100% rename from Runtime/Scripts/IpfsUploader/IpfsResponse.cs rename to Runtime/Scripts/FileUploaders/IPFS/IpfsResponse.cs diff --git a/Runtime/Scripts/IpfsUploader/IpfsResponse.cs.meta b/Runtime/Scripts/FileUploaders/IPFS/IpfsResponse.cs.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/IpfsResponse.cs.meta rename to Runtime/Scripts/FileUploaders/IPFS/IpfsResponse.cs.meta diff --git a/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs b/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs new file mode 100644 index 00000000..05dec7e4 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs @@ -0,0 +1,14 @@ +namespace TezosSDK.Scripts.FileUploaders.IPFS +{ + public class PinataCredentials + { + public string ApiUrl { get; } + public string ApiKey { get; } + + public PinataCredentials(string apiKey) + { + ApiUrl = "https://api.pinata.cloud/pinning/pinFileToIPFS"; + ApiKey = apiKey; + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs.meta b/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs.meta new file mode 100644 index 00000000..2fc13ce8 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/IPFS/PinataCredentials.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3389866533b8442b8b2a98abbccbe9d2 +timeCreated: 1689072357 \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/WebUploader.cs b/Runtime/Scripts/FileUploaders/IPFS/WebPinataUploader.cs similarity index 57% rename from Runtime/Scripts/IpfsUploader/WebUploader.cs rename to Runtime/Scripts/FileUploaders/IPFS/WebPinataUploader.cs index d2e6b55e..c9c217f2 100644 --- a/Runtime/Scripts/IpfsUploader/WebUploader.cs +++ b/Runtime/Scripts/FileUploaders/IPFS/WebPinataUploader.cs @@ -2,44 +2,49 @@ using System.Collections; using System.Runtime.InteropServices; using System.Text.Json; +using TezosSDK.Scripts.IpfsUploader; using UnityEngine; -namespace TezosSDK.Scripts.IpfsUploader +namespace TezosSDK.Scripts.FileUploaders.IPFS { - public class WebUploader : BaseUploader, IFileUploader + public class WebPinataUploader : BaseUploader, IPinataUploader { + public PinataCredentials PinataCredentials { get; set; } + public void FileRequestCallback(string path) { - WebUploaderHelper.SetResult(path); + WebPinataUploaderHelper.SetResult(path); } public IEnumerator UploadFile(Action callback) { yield return null; - WebUploaderHelper.RequestFile(callback, SupportedFileExtensions); + WebPinataUploaderHelper.RequestFile(callback, SupportedFileExtensions); } } - - public static class WebUploaderHelper + + public static class WebPinataUploaderHelper { private static Action _responseCallback; - public static WebUploader InitWebFileLoader() + public static IPinataUploader GetUploader(string apiKey) { - const string callbackObjectName = nameof(WebUploader); - const string callbackMethodName = nameof(WebUploader.FileRequestCallback); + const string callbackObjectName = nameof(WebPinataUploader); + const string callbackMethodName = nameof(WebPinataUploader.FileRequestCallback); - var webUploaderGameObject = GameObject.Find(nameof(WebUploader)); + var webUploaderGameObject = GameObject.Find(nameof(WebPinataUploader)); var webFileUploader = webUploaderGameObject != null - ? webUploaderGameObject.GetComponent() - : new GameObject(nameof(WebUploader)).AddComponent(); + ? webUploaderGameObject.GetComponent() + : new GameObject(nameof(WebPinataUploader)).AddComponent(); - JsInitFileLoader( + webFileUploader.PinataCredentials = new PinataCredentials(apiKey); + + JsInitPinataUploader( callbackObjectName, callbackMethodName, - webFileUploader.ApiUrl, - webFileUploader.ApiKey); - + webFileUploader.PinataCredentials.ApiUrl, + webFileUploader.PinataCredentials.ApiKey); + return webFileUploader; } @@ -48,7 +53,7 @@ public static void RequestFile(Action callback, string extensions) JsRequestUserFile(extensions); _responseCallback = callback; } - + public static void SetResult(string response) { var ipfsResponse = JsonSerializer.Deserialize(response); @@ -62,7 +67,7 @@ private static void Dispose() } [DllImport("__Internal")] - private static extern void JsInitFileLoader( + private static extern void JsInitPinataUploader( string objectName, string methodName, string apiUrl, diff --git a/Runtime/Scripts/IpfsUploader/WebUploader.cs.meta b/Runtime/Scripts/FileUploaders/IPFS/WebPinataUploader.cs.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/WebUploader.cs.meta rename to Runtime/Scripts/FileUploaders/IPFS/WebPinataUploader.cs.meta diff --git a/Runtime/Scripts/FileUploaders/JSFileUploader.jslib b/Runtime/Scripts/FileUploaders/JSFileUploader.jslib new file mode 100644 index 00000000..10f1f70c --- /dev/null +++ b/Runtime/Scripts/FileUploaders/JSFileUploader.jslib @@ -0,0 +1,29 @@ +mergeInto(LibraryManager.library, { + JsInitPinataUploader: function ( + callbackObjectName, + callbackMethodName, + apiUrl, + apiKey + ) { + InitIpfsUploader({ + CallbackObjectName: UTF8ToString(callbackObjectName), + CallbackMethodName: UTF8ToString(callbackMethodName), + ApiUrl: UTF8ToString(apiUrl), + ApiKey: UTF8ToString(apiKey), + }); + }, + + JsInitBase64Uploader: function ( + callbackObjectName, + callbackMethodName + ) { + InitBase64Uploader({ + CallbackObjectName: UTF8ToString(callbackObjectName), + CallbackMethodName: UTF8ToString(callbackMethodName) + }); + }, + + JsRequestUserFile: function (extensions) { + FileUploader.RequestUserFile(UTF8ToString(extensions)); + }, +}); diff --git a/Runtime/Scripts/IpfsUploader/JSFileUploader.jslib.meta b/Runtime/Scripts/FileUploaders/JSFileUploader.jslib.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/JSFileUploader.jslib.meta rename to Runtime/Scripts/FileUploaders/JSFileUploader.jslib.meta diff --git a/Runtime/Scripts/FileUploaders/OnChain.meta b/Runtime/Scripts/FileUploaders/OnChain.meta new file mode 100644 index 00000000..0951d924 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/OnChain.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: ebb393e09ed84decbccccebd39d89150 +timeCreated: 1689070286 \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs b/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs new file mode 100644 index 00000000..e5d30bfb --- /dev/null +++ b/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs @@ -0,0 +1,38 @@ +#if UNITY_EDITOR +using System; +using System.Collections; +using System.IO; +using UnityEditor; + + +namespace TezosSDK.Scripts.FileUploaders.OnChain +{ + public class EditorBase64Uploader : BaseUploader, IBaseUploader + { + public IEnumerator UploadFile(Action callback) + { + yield return null; + var imagePath = EditorUtility.OpenFilePanel( + "Select image", + string.Empty, + SupportedFileExtensions + .Replace(".", string.Empty) + .Replace(" ", string.Empty) + ); + callback.Invoke(ConvertImageToBase64(imagePath)); + } + + private static string ConvertImageToBase64(string imagePath) + { + var fileExtension = Path + .GetExtension(imagePath) + .Replace(".", string.Empty) + .ToLower(); + + var imageBytes = File.ReadAllBytes(imagePath); + var base64String = Convert.ToBase64String(imageBytes); + return $"data:image/{fileExtension};base64,{base64String}"; + } + } +} +#endif \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs.meta b/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs.meta new file mode 100644 index 00000000..a0efa722 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/OnChain/EditorBase64Uploader.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: fe6f3e19fb2d4ca180f192fd9cda707a +timeCreated: 1689074582 \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs b/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs new file mode 100644 index 00000000..352f222e --- /dev/null +++ b/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections; +using System.Runtime.InteropServices; +using Logger = TezosSDK.Helpers.Logger; +using UnityEngine; + +namespace TezosSDK.Scripts.FileUploaders.OnChain +{ + public class WebBase64Uploader : BaseUploader, IBaseUploader + { + public void FileRequestCallback(string path) + { + WebBase64UploaderHelper.SetResult(path); + } + + public IEnumerator UploadFile(Action callback) + { + yield return null; + WebBase64UploaderHelper.RequestFile(callback, SupportedFileExtensions); + } + } + + public static class WebBase64UploaderHelper + { + private static Action _responseCallback; + + public static IBaseUploader GetUploader() + { + const string callbackObjectName = nameof(WebBase64Uploader); + const string callbackMethodName = nameof(WebBase64Uploader.FileRequestCallback); + + var webUploaderGameObject = GameObject.Find(nameof(WebBase64Uploader)); + var uploader = webUploaderGameObject != null + ? webUploaderGameObject.GetComponent() + : new GameObject(nameof(WebBase64Uploader)).AddComponent(); + + JsInitBase64Uploader( + callbackObjectName, + callbackMethodName); + + return uploader; + } + + public static void RequestFile(Action callback, string extensions) + { + JsRequestUserFile(extensions); + _responseCallback = callback; + } + + public static void SetResult(string response) + { + _responseCallback.Invoke(response); + Dispose(); + } + + private static void Dispose() + { + _responseCallback = null; + } + + [DllImport("__Internal")] + private static extern void JsInitBase64Uploader( + string objectName, + string methodName); + + [DllImport("__Internal")] + private static extern void JsRequestUserFile(string extensions); + } +} \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs.meta b/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs.meta new file mode 100644 index 00000000..4bc46b23 --- /dev/null +++ b/Runtime/Scripts/FileUploaders/OnChain/WebBase64Uploader.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a14ed464701b49869019b4dda68e076b +timeCreated: 1689070331 \ No newline at end of file diff --git a/Runtime/Scripts/FileUploaders/UploaderFactory.cs b/Runtime/Scripts/FileUploaders/UploaderFactory.cs new file mode 100644 index 00000000..f872bc3e --- /dev/null +++ b/Runtime/Scripts/FileUploaders/UploaderFactory.cs @@ -0,0 +1,44 @@ +using TezosSDK.Scripts.FileUploaders.IPFS; +using TezosSDK.Scripts.FileUploaders.OnChain; +using UnityEngine; + +namespace TezosSDK.Scripts.FileUploaders +{ + public static class UploaderFactory + { + /// + /// Cross-platform image uploader to IPFS network via Pinata service. + /// + /// API key from https://app.pinata.cloud/developers/api-keys + public static IBaseUploader GetPinataUploader(string apiKey) + { + IPinataUploader uploader = null; + +#if UNITY_WEBGL && !UNITY_EDITOR + uploader = WebPinataUploaderHelper.GetUploader(apiKey); +#elif UNITY_EDITOR + var editorUploaderGameObject = GameObject.Find(nameof(EditorPinataUploader)); + uploader = editorUploaderGameObject != null + ? editorUploaderGameObject.GetComponent() + : new GameObject(nameof(EditorPinataUploader)).AddComponent(); + uploader.PinataCredentials = new PinataCredentials(apiKey); +#endif + return uploader; + } + + public static IBaseUploader GetOnchainUploader() + { + IBaseUploader uploader = null; + +#if UNITY_WEBGL && !UNITY_EDITOR + uploader = WebBase64UploaderHelper.GetUploader(); +#elif UNITY_EDITOR + var editorUploaderGameObject = GameObject.Find(nameof(EditorBase64Uploader)); + uploader = editorUploaderGameObject != null + ? editorUploaderGameObject.GetComponent() + : new GameObject(nameof(EditorBase64Uploader)).AddComponent(); +#endif + return uploader; + } + } +} \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/UploaderFactory.cs.meta b/Runtime/Scripts/FileUploaders/UploaderFactory.cs.meta similarity index 100% rename from Runtime/Scripts/IpfsUploader/UploaderFactory.cs.meta rename to Runtime/Scripts/FileUploaders/UploaderFactory.cs.meta diff --git a/Runtime/Scripts/IpfsUploader/BaseUploader.cs b/Runtime/Scripts/IpfsUploader/BaseUploader.cs deleted file mode 100644 index ce1a13a3..00000000 --- a/Runtime/Scripts/IpfsUploader/BaseUploader.cs +++ /dev/null @@ -1,19 +0,0 @@ -using UnityEngine; - -namespace TezosSDK.Scripts.IpfsUploader -{ - public abstract class BaseUploader : MonoBehaviour - { - public string ApiUrl { get; } = "https://api.pinata.cloud/pinning/pinFileToIPFS"; - - public string ApiKey { get; } = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySW5mb3JtYXRpb24iOnsiaWQiOiIzYWY5Nzk2YS1jNWZkLTRjMTMtYmE4Zi0wMzlmOWQ4MTE5OTIiLCJlbWFpbCI6ImpvaG55c2FsdmVzZW5AZ21haWwuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsInBpbl9wb2xpY3kiOnsicmVnaW9ucyI6W3siaWQiOiJGUkExIiwiZGVzaXJlZFJlcGxpY2F0aW9uQ291bnQiOjF9LHsiaWQiOiJOWUMxIiwiZGVzaXJlZFJlcGxpY2F0aW9uQ291bnQiOjF9XSwidmVyc2lvbiI6MX0sIm1mYV9lbmFibGVkIjpmYWxzZSwic3RhdHVzIjoiQUNUSVZFIn0sImF1dGhlbnRpY2F0aW9uVHlwZSI6InNjb3BlZEtleSIsInNjb3BlZEtleUtleSI6ImM5MmEzNDE2NGNkNDA2MDA5NGQ2Iiwic2NvcGVkS2V5U2VjcmV0IjoiZDY5N2QyYWU1MWExNTE3YTBkMDE0OGJiMmJkNTFjYTJmNGU5YmU2Y2Q1YjdiNWI5NDZmMzAzZjNiMDBmOTYwMCIsImlhdCI6MTY4ODE0NzYzNX0.U15IRa4ifJLvKwQ5GPC4nYf835Bo157L3f3-TYItNto"; - - public string SupportedFileExtensions { get; } = ".jpg, .jpeg, .png"; - - private void Start() - { - DontDestroyOnLoad(gameObject); - } - } -} \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/IFileUploader.cs b/Runtime/Scripts/IpfsUploader/IFileUploader.cs deleted file mode 100644 index 5bf0ce21..00000000 --- a/Runtime/Scripts/IpfsUploader/IFileUploader.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections; - -namespace TezosSDK.Scripts.IpfsUploader -{ - public interface IFileUploader - { - string ApiUrl { get; } - string ApiKey { get; } - string SupportedFileExtensions { get; } - - /// - /// Upload file that user will select through native menu file picker. - /// - /// - /// Executes after asset uploaded with data address. - /// - IEnumerator UploadFile(Action callback); - } -} \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/IFileUploader.cs.meta b/Runtime/Scripts/IpfsUploader/IFileUploader.cs.meta deleted file mode 100644 index a9bccee4..00000000 --- a/Runtime/Scripts/IpfsUploader/IFileUploader.cs.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 818ece402fb04f4fbc102e924020a973 -timeCreated: 1688223336 \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/JSFileUploader.jslib b/Runtime/Scripts/IpfsUploader/JSFileUploader.jslib deleted file mode 100644 index f3d30930..00000000 --- a/Runtime/Scripts/IpfsUploader/JSFileUploader.jslib +++ /dev/null @@ -1,19 +0,0 @@ -mergeInto(LibraryManager.library, { - JsInitFileLoader: function ( - callbackObjectName, - callbackMethodName, - apiUrl, - apiKey - ) { - InitFileUploader({ - CallbackObjectName: UTF8ToString(callbackObjectName), - CallbackMethodName: UTF8ToString(callbackMethodName), - ApiUrl: UTF8ToString(apiUrl), - ApiKey: UTF8ToString(apiKey) - }); - }, - - JsRequestUserFile: function (extensions) { - FileUploader.RequestUserFile(UTF8ToString(extensions)); - }, -}); \ No newline at end of file diff --git a/Runtime/Scripts/IpfsUploader/UploaderFactory.cs b/Runtime/Scripts/IpfsUploader/UploaderFactory.cs deleted file mode 100644 index 610ecb29..00000000 --- a/Runtime/Scripts/IpfsUploader/UploaderFactory.cs +++ /dev/null @@ -1,26 +0,0 @@ -using UnityEngine; - -namespace TezosSDK.Scripts.IpfsUploader -{ - public static class UploaderFactory - { - public static IFileUploader GetPinataUploader() - { - IFileUploader uploader = null; -#if UNITY_WEBGL && !UNITY_EDITOR - uploader = WebUploaderHelper.InitWebFileLoader(); -#elif UNITY_EDITOR - var editorUploaderGameObject = GameObject.Find(nameof(EditorUploader)); - uploader = editorUploaderGameObject != null - ? editorUploaderGameObject.GetComponent() - : new GameObject(nameof(EditorUploader)).AddComponent(); -#endif - return uploader; - } - - public static IFileUploader GetOnchainUploader() - { - return new EditorUploader(); - } - } -} \ No newline at end of file diff --git a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs index 5dd056e6..43d80a6e 100644 --- a/Samples~/Scripts/DemoExample/Core/ExampleManager.cs +++ b/Samples~/Scripts/DemoExample/Core/ExampleManager.cs @@ -5,6 +5,7 @@ using Netezos.Encoding; using TezosSDK.Beacon; using TezosSDK.Helpers; +using TezosSDK.Scripts.FileUploaders; using TezosSDK.Scripts.IpfsUploader; using TezosSDK.Tezos; using TezosSDK.Tezos.API.Models; @@ -395,13 +396,13 @@ public void ChangeContract(string activeContractAddress) public void UploadToIpfs() { - var uploader = UploaderFactory.GetPinataUploader(); + var uploader = UploaderFactory.GetOnchainUploader(); CoroutineRunner .Instance .StartWrappedCoroutine(uploader.UploadFile(ipfsResponse => { - Logger.LogDebug($"Link to uploaded file: https://ipfs.io/ipfs/{ipfsResponse}"); + Logger.LogDebug($"Link to uploaded file: {ipfsResponse}"); })); } diff --git a/WebGLFrontend/output/StreamingAssets/webgl-frontend.js b/WebGLFrontend/output/StreamingAssets/webgl-frontend.js index 9871c9a8..0e3ae602 100644 --- a/WebGLFrontend/output/StreamingAssets/webgl-frontend.js +++ b/WebGLFrontend/output/StreamingAssets/webgl-frontend.js @@ -1,2 +1,2 @@ /*! For license information please see webgl-frontend.js.LICENSE.txt */ -(()=>{var e={8099:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(7117);function i(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>8,t[n+1]=e>>>0,t}function o(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t}function s(e,t){return void 0===t&&(t=0),e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function a(e,t){return void 0===t&&(t=0),(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function c(e,t){return void 0===t&&(t=0),e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]}function l(e,t){return void 0===t&&(t=0),(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0}function h(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>24,t[n+1]=e>>>16,t[n+2]=e>>>8,t[n+3]=e>>>0,t}function u(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t[n+2]=e>>>16,t[n+3]=e>>>24,t}function d(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),h(e/4294967296>>>0,t,n),h(e>>>0,t,n+4),t}function f(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),u(e>>>0,t,n),u(e/4294967296>>>0,t,n+4),t}t.readInt16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])<<16>>16},t.readUint16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])>>>0},t.readInt16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])<<16>>16},t.readUint16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])>>>0},t.writeUint16BE=i,t.writeInt16BE=i,t.writeUint16LE=o,t.writeInt16LE=o,t.readInt32BE=s,t.readUint32BE=a,t.readInt32LE=c,t.readUint32LE=l,t.writeUint32BE=h,t.writeInt32BE=h,t.writeUint32LE=u,t.writeInt32LE=u,t.readInt64BE=function(e,t){void 0===t&&(t=0);var n=s(e,t),r=s(e,t+4);return 4294967296*n+r-4294967296*(r>>31)},t.readUint64BE=function(e,t){return void 0===t&&(t=0),4294967296*a(e,t)+a(e,t+4)},t.readInt64LE=function(e,t){void 0===t&&(t=0);var n=c(e,t);return 4294967296*c(e,t+4)+n-4294967296*(n>>31)},t.readUint64LE=function(e,t){void 0===t&&(t=0);var n=l(e,t);return 4294967296*l(e,t+4)+n},t.writeUint64BE=d,t.writeInt64BE=d,t.writeUint64LE=f,t.writeInt64LE=f,t.readUintBE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintBE: array is too short for the given bitLength");for(var r=0,i=1,o=e/8+n-1;o>=n;o--)r+=t[o]*i,i*=256;return r},t.readUintLE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintLE: array is too short for the given bitLength");for(var r=0,i=1,o=n;o=i;s--)n[s]=t/o&255,o*=256;return n},t.writeUintLE=function(e,t,n,i){if(void 0===n&&(n=new Uint8Array(e/8)),void 0===i&&(i=0),e%8!=0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!r.isSafeInteger(t))throw new Error("writeUintLE value must be an integer");for(var o=1,s=i;s{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309);t.BLOCK_SIZE=128,t.DIGEST_LENGTH=64,t.KEY_LENGTH=64,t.PERSONALIZATION_LENGTH=16,t.SALT_LENGTH=16,t.MAX_LEAF_SIZE=Math.pow(2,32)-1,t.MAX_FANOUT=255,t.MAX_MAX_DEPTH=255;var o=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6],[22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8],[14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16],[18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26],[4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18],[24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22],[26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20],[12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10],[20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0],[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6]],a=function(){function e(e,n){if(void 0===e&&(e=64),this.digestLength=e,this.blockSize=t.BLOCK_SIZE,this._state=new Int32Array(o),this._buffer=new Uint8Array(t.BLOCK_SIZE),this._bufferLength=0,this._ctr=new Uint32Array(4),this._flag=new Uint32Array(4),this._lastNode=!1,this._finished=!1,this._vtmp=new Uint32Array(32),this._mtmp=new Uint32Array(32),e<1||e>t.DIGEST_LENGTH)throw new Error("blake2b: wrong digest length");n&&this.validateConfig(n);var i=0;n&&n.key&&(i=n.key.length);var s=1,a=1;n&&n.tree&&(s=n.tree.fanout,a=n.tree.maxDepth),this._state[0]^=e|i<<8|s<<16|a<<24,n&&n.tree&&(this._state[1]^=n.tree.leafSize,this._state[2]^=n.tree.nodeOffsetLowBits,this._state[3]^=n.tree.nodeOffsetHighBits,this._state[4]^=n.tree.nodeDepth|n.tree.innerDigestLength<<8,this._lastNode=n.tree.lastNode),n&&n.salt&&(this._state[8]^=r.readUint32LE(n.salt,0),this._state[9]^=r.readUint32LE(n.salt,4),this._state[10]^=r.readUint32LE(n.salt,8),this._state[11]^=r.readUint32LE(n.salt,12)),n&&n.personalization&&(this._state[12]^=r.readUint32LE(n.personalization,0),this._state[13]^=r.readUint32LE(n.personalization,4),this._state[14]^=r.readUint32LE(n.personalization,8),this._state[15]^=r.readUint32LE(n.personalization,12)),this._initialState=new Uint32Array(this._state),n&&n.key&&i>0&&(this._paddedKey=new Uint8Array(t.BLOCK_SIZE),this._paddedKey.set(n.key),this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE)}return e.prototype.reset=function(){return this._state.set(this._initialState),this._paddedKey?(this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE):this._bufferLength=0,i.wipe(this._ctr),i.wipe(this._flag),this._finished=!1,this},e.prototype.validateConfig=function(e){if(e.key&&e.key.length>t.KEY_LENGTH)throw new Error("blake2b: wrong key length");if(e.salt&&e.salt.length!==t.SALT_LENGTH)throw new Error("blake2b: wrong salt length");if(e.personalization&&e.personalization.length!==t.PERSONALIZATION_LENGTH)throw new Error("blake2b: wrong personalization length");if(e.tree){if(e.tree.fanout<0||e.tree.fanout>t.MAX_FANOUT)throw new Error("blake2b: wrong tree fanout");if(e.tree.maxDepth<0||e.tree.maxDepth>t.MAX_MAX_DEPTH)throw new Error("blake2b: wrong tree depth");if(e.tree.leafSize<0||e.tree.leafSize>t.MAX_LEAF_SIZE)throw new Error("blake2b: wrong leaf size");if(e.tree.innerDigestLength<0||e.tree.innerDigestLength>t.DIGEST_LENGTH)throw new Error("blake2b: wrong tree inner digest length")}},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("blake2b: can't update because hash was finished.");var r=t.BLOCK_SIZE-this._bufferLength,i=0;if(0===n)return this;if(n>r){for(var o=0;ot.BLOCK_SIZE;){for(o=0;o>>16,I=65535&p,R=p>>>16;S+=g>>>16,I+=65535&y,R+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(R+=I>>>16)<<16),R=p>>>16,S+=l>>>16,I+=65535&h,R+=h>>>16,f=65535&(E+=65535&l)|(S+=E>>>16)<<16,E=w^=p=65535&(I+=S>>>16)|(R+=I>>>16)<<16,w=v^=f,v=E,E=65535&b,S=b>>>16,I=65535&m,R=m>>>16,S+=v>>>16,I+=65535&w,R+=w>>>16,E=(g^=b=65535&(E+=65535&v)|(S+=E>>>16)<<16)<<8|(y^=m=65535&(I+=S>>>16)|(R+=I>>>16)<<16)>>>24,g=y<<8|g>>>24,y=E,E=65535&f,S=f>>>16,I=65535&p,R=p>>>16,S+=g>>>16,I+=65535&y,R+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(R+=I>>>16)<<16),R=p>>>16,S+=u>>>16,I+=65535&d,R+=d>>>16,E=(v^=f=65535&(E+=65535&u)|(S+=E>>>16)<<16)<<16|(w^=p=65535&(I+=S>>>16)|(R+=I>>>16)<<16)>>>16,v=w<<16|v>>>16,w=E,E=65535&b,S=b>>>16,I=65535&m,R=m>>>16,S+=v>>>16,I+=65535&w,R+=w>>>16,E=(y^=m=65535&(I+=(S+=(E+=65535&v)>>>16)>>>16)|(R+=I>>>16)<<16)<<1|(g^=b=65535&E|S<<16)>>>31,g=g<<1|y>>>31,y=E,e[t]=f,e[o]=p,e[n]=g,e[s]=y,e[r]=b,e[a]=m,e[i]=v,e[c]=w},e.prototype._incrementCounter=function(e){for(var t=0;t<3;t++){var n=this._ctr[t]+e;if(this._ctr[t]=n>>>0,this._ctr[t]===n)return;e=1}},e.prototype._processBlock=function(e){this._incrementCounter(e);var t=this._vtmp;t.set(this._state),t.set(o,16),t[24]^=this._ctr[0],t[25]^=this._ctr[1],t[26]^=this._ctr[2],t[27]^=this._ctr[3],t[28]^=this._flag[0],t[29]^=this._flag[1],t[30]^=this._flag[2],t[31]^=this._flag[3];for(var n=this._mtmp,i=0;i<32;i++)n[i]=r.readUint32LE(this._buffer,4*i);for(var a=0;a<12;a++)this._G(t,0,8,16,24,1,9,17,25,n[s[a][0]],n[s[a][0]+1],n[s[a][1]],n[s[a][1]+1]),this._G(t,2,10,18,26,3,11,19,27,n[s[a][2]],n[s[a][2]+1],n[s[a][3]],n[s[a][3]+1]),this._G(t,4,12,20,28,5,13,21,29,n[s[a][4]],n[s[a][4]+1],n[s[a][5]],n[s[a][5]+1]),this._G(t,6,14,22,30,7,15,23,31,n[s[a][6]],n[s[a][6]+1],n[s[a][7]],n[s[a][7]+1]),this._G(t,0,10,20,30,1,11,21,31,n[s[a][8]],n[s[a][8]+1],n[s[a][9]],n[s[a][9]+1]),this._G(t,2,12,22,24,3,13,23,25,n[s[a][10]],n[s[a][10]+1],n[s[a][11]],n[s[a][11]+1]),this._G(t,4,14,16,26,5,15,17,27,n[s[a][12]],n[s[a][12]+1],n[s[a][13]],n[s[a][13]+1]),this._G(t,6,8,18,28,7,9,19,29,n[s[a][14]],n[s[a][14]+1],n[s[a][15]],n[s[a][15]+1]);for(i=0;i<16;i++)this._state[i]^=t[i]^t[i+16]},e}();t.BLAKE2b=a,t.hash=function(e,n,r){void 0===n&&(n=t.DIGEST_LENGTH);var i=new a(n,r);i.update(e);var o=i.digest();return i.clean(),o}},3683:(e,t)=>{"use strict";t.z=function(){for(var e=0,t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309),o=20;function s(e,t,n){for(var i=1634760805,s=857760878,a=2036477234,c=1797285236,l=n[3]<<24|n[2]<<16|n[1]<<8|n[0],h=n[7]<<24|n[6]<<16|n[5]<<8|n[4],u=n[11]<<24|n[10]<<16|n[9]<<8|n[8],d=n[15]<<24|n[14]<<16|n[13]<<8|n[12],f=n[19]<<24|n[18]<<16|n[17]<<8|n[16],p=n[23]<<24|n[22]<<16|n[21]<<8|n[20],g=n[27]<<24|n[26]<<16|n[25]<<8|n[24],y=n[31]<<24|n[30]<<16|n[29]<<8|n[28],b=t[3]<<24|t[2]<<16|t[1]<<8|t[0],m=t[7]<<24|t[6]<<16|t[5]<<8|t[4],v=t[11]<<24|t[10]<<16|t[9]<<8|t[8],w=t[15]<<24|t[14]<<16|t[13]<<8|t[12],E=i,S=s,I=a,R=c,A=l,x=h,M=u,T=d,O=f,P=p,N=g,k=y,C=b,U=m,L=v,j=w,z=0;z>>16|C<<16)|0)>>>20|A<<12,x=(x^=P=P+(U=(U^=S=S+x|0)>>>16|U<<16)|0)>>>20|x<<12,M=(M^=N=N+(L=(L^=I=I+M|0)>>>16|L<<16)|0)>>>20|M<<12,T=(T^=k=k+(j=(j^=R=R+T|0)>>>16|j<<16)|0)>>>20|T<<12,M=(M^=N=N+(L=(L^=I=I+M|0)>>>24|L<<8)|0)>>>25|M<<7,T=(T^=k=k+(j=(j^=R=R+T|0)>>>24|j<<8)|0)>>>25|T<<7,x=(x^=P=P+(U=(U^=S=S+x|0)>>>24|U<<8)|0)>>>25|x<<7,A=(A^=O=O+(C=(C^=E=E+A|0)>>>24|C<<8)|0)>>>25|A<<7,x=(x^=N=N+(j=(j^=E=E+x|0)>>>16|j<<16)|0)>>>20|x<<12,M=(M^=k=k+(C=(C^=S=S+M|0)>>>16|C<<16)|0)>>>20|M<<12,T=(T^=O=O+(U=(U^=I=I+T|0)>>>16|U<<16)|0)>>>20|T<<12,A=(A^=P=P+(L=(L^=R=R+A|0)>>>16|L<<16)|0)>>>20|A<<12,T=(T^=O=O+(U=(U^=I=I+T|0)>>>24|U<<8)|0)>>>25|T<<7,A=(A^=P=P+(L=(L^=R=R+A|0)>>>24|L<<8)|0)>>>25|A<<7,M=(M^=k=k+(C=(C^=S=S+M|0)>>>24|C<<8)|0)>>>25|M<<7,x=(x^=N=N+(j=(j^=E=E+x|0)>>>24|j<<8)|0)>>>25|x<<7;r.writeUint32LE(E+i|0,e,0),r.writeUint32LE(S+s|0,e,4),r.writeUint32LE(I+a|0,e,8),r.writeUint32LE(R+c|0,e,12),r.writeUint32LE(A+l|0,e,16),r.writeUint32LE(x+h|0,e,20),r.writeUint32LE(M+u|0,e,24),r.writeUint32LE(T+d|0,e,28),r.writeUint32LE(O+f|0,e,32),r.writeUint32LE(P+p|0,e,36),r.writeUint32LE(N+g|0,e,40),r.writeUint32LE(k+y|0,e,44),r.writeUint32LE(C+b|0,e,48),r.writeUint32LE(U+m|0,e,52),r.writeUint32LE(L+v|0,e,56),r.writeUint32LE(j+w|0,e,60)}function a(e,t,n,r,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("ChaCha: key size must be 32 bytes");if(r.length>>=8,t++;if(r>0)throw new Error("ChaCha: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,r){return void 0===r&&(r=0),i.wipe(n),a(e,t,n,n,r)}},5501:(e,t,n)=>{"use strict";var r=n(5439),i=n(3027),o=n(7309),s=n(8099),a=n(4153);t.Cv=32,t.WH=12,t.pg=16;var c=new Uint8Array(16),l=function(){function e(e){if(this.nonceLength=t.WH,this.tagLength=t.pg,e.length!==t.Cv)throw new Error("ChaCha20Poly1305 needs 32-byte key");this._key=new Uint8Array(e)}return e.prototype.seal=function(e,t,n,i){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var s=new Uint8Array(16);s.set(e,s.length-e.length);var a=new Uint8Array(32);r.stream(this._key,s,a,4);var c,l=t.length+this.tagLength;if(i){if(i.length!==l)throw new Error("ChaCha20Poly1305: incorrect destination length");c=i}else c=new Uint8Array(l);return r.streamXOR(this._key,s,t,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),a,c.subarray(0,c.length-this.tagLength),n),o.wipe(s),c},e.prototype.open=function(e,t,n,i){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(t.length0&&a.update(c.subarray(r.length%16))),a.update(n),n.length%16>0&&a.update(c.subarray(n.length%16));var l=new Uint8Array(8);r&&s.writeUint64LE(r.length,l),a.update(l),s.writeUint64LE(n.length,l),a.update(l);for(var h=a.digest(),u=0;u{"use strict";function n(e,t){if(e.length!==t.length)return 0;for(var n=0,r=0;r>>8}Object.defineProperty(t,"__esModule",{value:!0}),t.select=function(e,t,n){return~(e-1)&t|e-1&n},t.lessOrEqual=function(e,t){return(0|e)-(0|t)-1>>>31&1},t.compare=n,t.equal=function(e,t){return 0!==e.length&&0!==t.length&&0!==n(e,t)}},1050:(e,t,n)=>{"use strict";t.zh=t.SH=t.Xx=t._w=t.aP=t.KS=t.jQ=void 0;n(1416);const r=n(3350),i=n(7309);function o(e){const t=new Float64Array(16);if(e)for(let n=0;n>16&1),n[e-1]&=65535;n[15]=r[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,g(r,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&r[t],e[2*t+1]=r[t]>>8}function b(e,t){const n=new Uint8Array(32),r=new Uint8Array(32);return y(n,e),y(r,t),function(e,t){let n=0;for(let r=0;r<32;r++)n|=e[r]^t[r];return(1&n-1>>>8)-1}(n,r)}function m(e){const t=new Uint8Array(32);return y(t,e),1&t[0]}function v(e,t,n){for(let r=0;r<16;r++)e[r]=t[r]+n[r]}function w(e,t,n){for(let r=0;r<16;r++)e[r]=t[r]-n[r]}function E(e,t,n){let r,i,o=0,s=0,a=0,c=0,l=0,h=0,u=0,d=0,f=0,p=0,g=0,y=0,b=0,m=0,v=0,w=0,E=0,S=0,I=0,R=0,A=0,x=0,M=0,T=0,O=0,P=0,N=0,k=0,C=0,U=0,L=0,j=n[0],z=n[1],K=n[2],q=n[3],D=n[4],B=n[5],W=n[6],F=n[7],V=n[8],H=n[9],G=n[10],J=n[11],Z=n[12],Y=n[13],Q=n[14],X=n[15];r=t[0],o+=r*j,s+=r*z,a+=r*K,c+=r*q,l+=r*D,h+=r*B,u+=r*W,d+=r*F,f+=r*V,p+=r*H,g+=r*G,y+=r*J,b+=r*Z,m+=r*Y,v+=r*Q,w+=r*X,r=t[1],s+=r*j,a+=r*z,c+=r*K,l+=r*q,h+=r*D,u+=r*B,d+=r*W,f+=r*F,p+=r*V,g+=r*H,y+=r*G,b+=r*J,m+=r*Z,v+=r*Y,w+=r*Q,E+=r*X,r=t[2],a+=r*j,c+=r*z,l+=r*K,h+=r*q,u+=r*D,d+=r*B,f+=r*W,p+=r*F,g+=r*V,y+=r*H,b+=r*G,m+=r*J,v+=r*Z,w+=r*Y,E+=r*Q,S+=r*X,r=t[3],c+=r*j,l+=r*z,h+=r*K,u+=r*q,d+=r*D,f+=r*B,p+=r*W,g+=r*F,y+=r*V,b+=r*H,m+=r*G,v+=r*J,w+=r*Z,E+=r*Y,S+=r*Q,I+=r*X,r=t[4],l+=r*j,h+=r*z,u+=r*K,d+=r*q,f+=r*D,p+=r*B,g+=r*W,y+=r*F,b+=r*V,m+=r*H,v+=r*G,w+=r*J,E+=r*Z,S+=r*Y,I+=r*Q,R+=r*X,r=t[5],h+=r*j,u+=r*z,d+=r*K,f+=r*q,p+=r*D,g+=r*B,y+=r*W,b+=r*F,m+=r*V,v+=r*H,w+=r*G,E+=r*J,S+=r*Z,I+=r*Y,R+=r*Q,A+=r*X,r=t[6],u+=r*j,d+=r*z,f+=r*K,p+=r*q,g+=r*D,y+=r*B,b+=r*W,m+=r*F,v+=r*V,w+=r*H,E+=r*G,S+=r*J,I+=r*Z,R+=r*Y,A+=r*Q,x+=r*X,r=t[7],d+=r*j,f+=r*z,p+=r*K,g+=r*q,y+=r*D,b+=r*B,m+=r*W,v+=r*F,w+=r*V,E+=r*H,S+=r*G,I+=r*J,R+=r*Z,A+=r*Y,x+=r*Q,M+=r*X,r=t[8],f+=r*j,p+=r*z,g+=r*K,y+=r*q,b+=r*D,m+=r*B,v+=r*W,w+=r*F,E+=r*V,S+=r*H,I+=r*G,R+=r*J,A+=r*Z,x+=r*Y,M+=r*Q,T+=r*X,r=t[9],p+=r*j,g+=r*z,y+=r*K,b+=r*q,m+=r*D,v+=r*B,w+=r*W,E+=r*F,S+=r*V,I+=r*H,R+=r*G,A+=r*J,x+=r*Z,M+=r*Y,T+=r*Q,O+=r*X,r=t[10],g+=r*j,y+=r*z,b+=r*K,m+=r*q,v+=r*D,w+=r*B,E+=r*W,S+=r*F,I+=r*V,R+=r*H,A+=r*G,x+=r*J,M+=r*Z,T+=r*Y,O+=r*Q,P+=r*X,r=t[11],y+=r*j,b+=r*z,m+=r*K,v+=r*q,w+=r*D,E+=r*B,S+=r*W,I+=r*F,R+=r*V,A+=r*H,x+=r*G,M+=r*J,T+=r*Z,O+=r*Y,P+=r*Q,N+=r*X,r=t[12],b+=r*j,m+=r*z,v+=r*K,w+=r*q,E+=r*D,S+=r*B,I+=r*W,R+=r*F,A+=r*V,x+=r*H,M+=r*G,T+=r*J,O+=r*Z,P+=r*Y,N+=r*Q,k+=r*X,r=t[13],m+=r*j,v+=r*z,w+=r*K,E+=r*q,S+=r*D,I+=r*B,R+=r*W,A+=r*F,x+=r*V,M+=r*H,T+=r*G,O+=r*J,P+=r*Z,N+=r*Y,k+=r*Q,C+=r*X,r=t[14],v+=r*j,w+=r*z,E+=r*K,S+=r*q,I+=r*D,R+=r*B,A+=r*W,x+=r*F,M+=r*V,T+=r*H,O+=r*G,P+=r*J,N+=r*Z,k+=r*Y,C+=r*Q,U+=r*X,r=t[15],w+=r*j,E+=r*z,S+=r*K,I+=r*q,R+=r*D,A+=r*B,x+=r*W,M+=r*F,T+=r*V,O+=r*H,P+=r*G,N+=r*J,k+=r*Z,C+=r*Y,U+=r*Q,L+=r*X,o+=38*E,s+=38*S,a+=38*I,c+=38*R,l+=38*A,h+=38*x,u+=38*M,d+=38*T,f+=38*O,p+=38*P,g+=38*N,y+=38*k,b+=38*C,m+=38*U,v+=38*L,i=1,r=o+i+65535,i=Math.floor(r/65536),o=r-65536*i,r=s+i+65535,i=Math.floor(r/65536),s=r-65536*i,r=a+i+65535,i=Math.floor(r/65536),a=r-65536*i,r=c+i+65535,i=Math.floor(r/65536),c=r-65536*i,r=l+i+65535,i=Math.floor(r/65536),l=r-65536*i,r=h+i+65535,i=Math.floor(r/65536),h=r-65536*i,r=u+i+65535,i=Math.floor(r/65536),u=r-65536*i,r=d+i+65535,i=Math.floor(r/65536),d=r-65536*i,r=f+i+65535,i=Math.floor(r/65536),f=r-65536*i,r=p+i+65535,i=Math.floor(r/65536),p=r-65536*i,r=g+i+65535,i=Math.floor(r/65536),g=r-65536*i,r=y+i+65535,i=Math.floor(r/65536),y=r-65536*i,r=b+i+65535,i=Math.floor(r/65536),b=r-65536*i,r=m+i+65535,i=Math.floor(r/65536),m=r-65536*i,r=v+i+65535,i=Math.floor(r/65536),v=r-65536*i,r=w+i+65535,i=Math.floor(r/65536),w=r-65536*i,o+=i-1+37*(i-1),i=1,r=o+i+65535,i=Math.floor(r/65536),o=r-65536*i,r=s+i+65535,i=Math.floor(r/65536),s=r-65536*i,r=a+i+65535,i=Math.floor(r/65536),a=r-65536*i,r=c+i+65535,i=Math.floor(r/65536),c=r-65536*i,r=l+i+65535,i=Math.floor(r/65536),l=r-65536*i,r=h+i+65535,i=Math.floor(r/65536),h=r-65536*i,r=u+i+65535,i=Math.floor(r/65536),u=r-65536*i,r=d+i+65535,i=Math.floor(r/65536),d=r-65536*i,r=f+i+65535,i=Math.floor(r/65536),f=r-65536*i,r=p+i+65535,i=Math.floor(r/65536),p=r-65536*i,r=g+i+65535,i=Math.floor(r/65536),g=r-65536*i,r=y+i+65535,i=Math.floor(r/65536),y=r-65536*i,r=b+i+65535,i=Math.floor(r/65536),b=r-65536*i,r=m+i+65535,i=Math.floor(r/65536),m=r-65536*i,r=v+i+65535,i=Math.floor(r/65536),v=r-65536*i,r=w+i+65535,i=Math.floor(r/65536),w=r-65536*i,o+=i-1+37*(i-1),e[0]=o,e[1]=s,e[2]=a,e[3]=c,e[4]=l,e[5]=h,e[6]=u,e[7]=d,e[8]=f,e[9]=p,e[10]=g,e[11]=y,e[12]=b,e[13]=m,e[14]=v,e[15]=w}function S(e,t){E(e,t,t)}function I(e,t){const n=o();let r;for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)S(n,n),2!==r&&4!==r&&E(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function R(e,t){const n=o(),r=o(),i=o(),s=o(),a=o(),c=o(),h=o(),u=o(),d=o();w(n,e[1],e[0]),w(d,t[1],t[0]),E(n,n,d),v(r,e[0],e[1]),v(d,t[0],t[1]),E(r,r,d),E(i,e[3],t[3]),E(i,i,l),E(s,e[2],t[2]),v(s,s,s),w(a,r,n),w(c,s,i),v(h,s,i),v(u,r,n),E(e[0],a,c),E(e[1],u,h),E(e[2],h,c),E(e[3],a,u)}function A(e,t,n){for(let r=0;r<4;r++)g(e[r],t[r],n)}function x(e,t){const n=o(),r=o(),i=o();I(i,t[2]),E(n,t[0],i),E(r,t[1],i),y(e,r),e[31]^=m(n)<<7}function M(e,t){const n=[o(),o(),o(),o()];f(n[0],h),f(n[1],u),f(n[2],a),E(n[3],h,u),function(e,t,n){f(e[0],s),f(e[1],a),f(e[2],a),f(e[3],s);for(let r=255;r>=0;--r){const i=n[r/8|0]>>(7&r)&1;A(e,t,i),R(t,e),R(e,e),A(e,t,i)}}(e,n,t)}t._w=function(e){if(e.length!==t.aP)throw new Error(`ed25519: seed must be ${t.aP} bytes`);const n=(0,r.hash)(e);n[0]&=248,n[31]&=127,n[31]|=64;const i=new Uint8Array(32),s=[o(),o(),o(),o()];M(s,n),x(i,s);const a=new Uint8Array(64);return a.set(e),a.set(i,32),{publicKey:i,secretKey:a}};const T=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function O(e,t){let n,r,i,o;for(r=63;r>=32;--r){for(n=0,i=r-32,o=r-12;i>4)*T[i],n=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=n*T[i];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function P(e){const t=new Float64Array(64);for(let n=0;n<64;n++)t[n]=e[n];for(let t=0;t<64;t++)e[t]=0;O(e,t)}t.Xx=function(e,t){const n=new Float64Array(64),i=[o(),o(),o(),o()],s=(0,r.hash)(e.subarray(0,32));s[0]&=248,s[31]&=127,s[31]|=64;const a=new Uint8Array(64);a.set(s.subarray(32),32);const c=new r.SHA512;c.update(a.subarray(32)),c.update(t);const l=c.digest();c.clean(),P(l),M(i,l),x(a,i),c.reset(),c.update(a.subarray(0,32)),c.update(e.subarray(32)),c.update(t);const h=c.digest();P(h);for(let e=0;e<32;e++)n[e]=l[e];for(let e=0;e<32;e++)for(let t=0;t<32;t++)n[e+t]+=h[e]*s[t];return O(a.subarray(32),n),a},t.SH=function(e){let t=[o(),o(),o(),o()];if(function(e,t){const n=o(),r=o(),i=o(),l=o(),h=o(),u=o(),p=o();return f(e[2],a),function(e,t){for(let n=0;n<16;n++)e[n]=t[2*n]+(t[2*n+1]<<8);e[15]&=32767}(e[1],t),S(i,e[1]),E(l,i,c),w(i,i,e[2]),v(l,e[2],l),S(h,l),S(u,h),E(p,u,h),E(n,p,i),E(n,n,l),function(e,t){const n=o();let r;for(r=0;r<16;r++)n[r]=t[r];for(r=250;r>=0;r--)S(n,n),1!==r&&E(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(n,n),E(n,n,i),E(n,n,l),E(n,n,l),E(e[0],n,l),S(r,e[0]),E(r,r,l),b(r,i)&&E(e[0],e[0],d),S(r,e[0]),E(r,r,l),b(r,i)?-1:(m(e[0])===t[31]>>7&&w(e[0],s,e[0]),E(e[3],e[0],e[1]),0)}(t,e))throw new Error("Ed25519: invalid public key");let n=o(),r=o(),i=t[1];v(n,a,i),w(r,a,i),I(r,r),E(n,n,r);let l=new Uint8Array(32);return y(l,n),l},t.zh=function(e){const t=(0,r.hash)(e.subarray(0,32));t[0]&=248,t[31]&=127,t[31]|=64;const n=new Uint8Array(t.subarray(0,32));return(0,i.wipe)(t),n}},9984:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSerializableHash=function(e){return void 0!==e.saveState&&void 0!==e.restoreState&&void 0!==e.cleanSavedState}},512:(e,t,n)=>{"use strict";var r=n(5629),i=n(7309),o=function(){function e(e,t,n,i){void 0===n&&(n=new Uint8Array(0)),this._counter=new Uint8Array(1),this._hash=e,this._info=i;var o=r.hmac(this._hash,n,t);this._hmac=new r.HMAC(e,o),this._buffer=new Uint8Array(this._hmac.digestLength),this._bufpos=this._buffer.length}return e.prototype._fillBuffer=function(){this._counter[0]++;var e=this._counter[0];if(0===e)throw new Error("hkdf: cannot expand more");this._hmac.reset(),e>1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},e.prototype.expand=function(e){for(var t=new Uint8Array(e),n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(9984),i=n(4153),o=n(7309),s=function(){function e(e,t){this._finished=!1,this._inner=new e,this._outer=new e,this.blockSize=this._outer.blockSize,this.digestLength=this._outer.digestLength;var n=new Uint8Array(this.blockSize);t.length>this.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(var i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mul=Math.imul||function(e,t){var n=65535&e,r=65535&t;return n*r+((e>>>16&65535)*r+n*(t>>>16&65535)<<16>>>0)|0},t.add=function(e,t){return e+t|0},t.sub=function(e,t){return e-t|0},t.rotl=function(e,t){return e<>>32-t},t.rotr=function(e,t){return e<<32-t|e>>>t},t.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},t.MAX_SAFE_INTEGER=9007199254740991,t.isSafeInteger=function(e){return t.isInteger(e)&&e>=-t.MAX_SAFE_INTEGER&&e<=t.MAX_SAFE_INTEGER}},19:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.openBox=t.box=t.precomputeSharedKey=t.generateKeyPair=void 0;const r=n(7664),i=n(7025),o=n(7801),s=n(7309);var a=n(7664);Object.defineProperty(t,"generateKeyPair",{enumerable:!0,get:function(){return a.generateKeyPair}});const c=new Uint8Array(16);function l(e,t){const n=(0,r.scalarMult)(t,e);return(0,i.hsalsa)(n,c,n),n}t.precomputeSharedKey=l,t.box=function(e,t,n,r){const i=l(e,t),a=(0,o.secretBox)(i,n,r);return(0,s.wipe)(i),a},t.openBox=function(e,t,n,r){const i=l(e,t),a=(0,o.openSecretBox)(i,n,r);return(0,s.wipe)(i),a}},450:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(19),t),i(n(7801),t)},7801:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateKey=t.openSecretBox=t.secretBox=void 0;const r=n(7025),i=n(3027),o=n(7309),s=n(1416);t.secretBox=function(e,t,n){if(24!==t.length)throw new Error("secretBox nonce must be 24 bytes");const s=new Uint8Array(64),a=new Uint8Array(32);a.set(t),(0,r.stream)(e,a,s,8);const c=new Uint8Array(16+n.length);for(let e=0;e<32&&e32&&(0,r.streamXOR)(e,a,n.subarray(32),c.subarray(48),8);const l=(0,i.oneTimeAuth)(s.subarray(0,32),c.subarray(16));for(let e=0;e32&&(0,r.streamXOR)(e,a,l.subarray(32),h.subarray(32),8),(0,o.wipe)(c),(0,o.wipe)(s),(0,o.wipe)(a),h},t.generateKey=function(e){return(0,s.randomBytes)(32,e)}},3027:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4153),i=n(7309);t.DIGEST_LENGTH=16;var o=function(){function e(e){this.digestLength=t.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var n=e[0]|e[1]<<8;this._r[0]=8191&n;var r=e[2]|e[3]<<8;this._r[1]=8191&(n>>>13|r<<3);var i=e[4]|e[5]<<8;this._r[2]=7939&(r>>>10|i<<6);var o=e[6]|e[7]<<8;this._r[3]=8191&(i>>>7|o<<9);var s=e[8]|e[9]<<8;this._r[4]=255&(o>>>4|s<<12),this._r[5]=s>>>1&8190;var a=e[10]|e[11]<<8;this._r[6]=8191&(s>>>14|a<<2);var c=e[12]|e[13]<<8;this._r[7]=8065&(a>>>11|c<<5);var l=e[14]|e[15]<<8;this._r[8]=8191&(c>>>8|l<<8),this._r[9]=l>>>5&127,this._pad[0]=e[16]|e[17]<<8,this._pad[1]=e[18]|e[19]<<8,this._pad[2]=e[20]|e[21]<<8,this._pad[3]=e[22]|e[23]<<8,this._pad[4]=e[24]|e[25]<<8,this._pad[5]=e[26]|e[27]<<8,this._pad[6]=e[28]|e[29]<<8,this._pad[7]=e[30]|e[31]<<8}return e.prototype._blocks=function(e,t,n){for(var r=this._fin?0:2048,i=this._h[0],o=this._h[1],s=this._h[2],a=this._h[3],c=this._h[4],l=this._h[5],h=this._h[6],u=this._h[7],d=this._h[8],f=this._h[9],p=this._r[0],g=this._r[1],y=this._r[2],b=this._r[3],m=this._r[4],v=this._r[5],w=this._r[6],E=this._r[7],S=this._r[8],I=this._r[9];n>=16;){var R=e[t+0]|e[t+1]<<8;i+=8191&R;var A=e[t+2]|e[t+3]<<8;o+=8191&(R>>>13|A<<3);var x=e[t+4]|e[t+5]<<8;s+=8191&(A>>>10|x<<6);var M=e[t+6]|e[t+7]<<8;a+=8191&(x>>>7|M<<9);var T=e[t+8]|e[t+9]<<8;c+=8191&(M>>>4|T<<12),l+=T>>>1&8191;var O=e[t+10]|e[t+11]<<8;h+=8191&(T>>>14|O<<2);var P=e[t+12]|e[t+13]<<8;u+=8191&(O>>>11|P<<5);var N=e[t+14]|e[t+15]<<8,k=0,C=k;C+=i*p,C+=o*(5*I),C+=s*(5*S),C+=a*(5*E),k=(C+=c*(5*w))>>>13,C&=8191,C+=l*(5*v),C+=h*(5*m),C+=u*(5*b),C+=(d+=8191&(P>>>8|N<<8))*(5*y);var U=k+=(C+=(f+=N>>>5|r)*(5*g))>>>13;U+=i*g,U+=o*p,U+=s*(5*I),U+=a*(5*S),k=(U+=c*(5*E))>>>13,U&=8191,U+=l*(5*w),U+=h*(5*v),U+=u*(5*m),U+=d*(5*b),k+=(U+=f*(5*y))>>>13,U&=8191;var L=k;L+=i*y,L+=o*g,L+=s*p,L+=a*(5*I),k=(L+=c*(5*S))>>>13,L&=8191,L+=l*(5*E),L+=h*(5*w),L+=u*(5*v),L+=d*(5*m);var j=k+=(L+=f*(5*b))>>>13;j+=i*b,j+=o*y,j+=s*g,j+=a*p,k=(j+=c*(5*I))>>>13,j&=8191,j+=l*(5*S),j+=h*(5*E),j+=u*(5*w),j+=d*(5*v);var z=k+=(j+=f*(5*m))>>>13;z+=i*m,z+=o*b,z+=s*y,z+=a*g,k=(z+=c*p)>>>13,z&=8191,z+=l*(5*I),z+=h*(5*S),z+=u*(5*E),z+=d*(5*w);var K=k+=(z+=f*(5*v))>>>13;K+=i*v,K+=o*m,K+=s*b,K+=a*y,k=(K+=c*g)>>>13,K&=8191,K+=l*p,K+=h*(5*I),K+=u*(5*S),K+=d*(5*E);var q=k+=(K+=f*(5*w))>>>13;q+=i*w,q+=o*v,q+=s*m,q+=a*b,k=(q+=c*y)>>>13,q&=8191,q+=l*g,q+=h*p,q+=u*(5*I),q+=d*(5*S);var D=k+=(q+=f*(5*E))>>>13;D+=i*E,D+=o*w,D+=s*v,D+=a*m,k=(D+=c*b)>>>13,D&=8191,D+=l*y,D+=h*g,D+=u*p,D+=d*(5*I);var B=k+=(D+=f*(5*S))>>>13;B+=i*S,B+=o*E,B+=s*w,B+=a*v,k=(B+=c*m)>>>13,B&=8191,B+=l*b,B+=h*y,B+=u*g,B+=d*p;var W=k+=(B+=f*(5*I))>>>13;W+=i*I,W+=o*S,W+=s*E,W+=a*w,k=(W+=c*v)>>>13,W&=8191,W+=l*m,W+=h*b,W+=u*y,W+=d*g,i=C=8191&(k=(k=((k+=(W+=f*p)>>>13)<<2)+k|0)+(C&=8191)|0),o=U+=k>>>=13,s=L&=8191,a=j&=8191,c=z&=8191,l=K&=8191,h=q&=8191,u=D&=8191,d=B&=8191,f=W&=8191,t+=16,n-=16}this._h[0]=i,this._h[1]=o,this._h[2]=s,this._h[3]=a,this._h[4]=c,this._h[5]=l,this._h[6]=h,this._h[7]=u,this._h[8]=d,this._h[9]=f},e.prototype.finish=function(e,t){void 0===t&&(t=0);var n,r,i,o,s=new Uint16Array(10);if(this._leftover){for(o=this._leftover,this._buffer[o++]=1;o<16;o++)this._buffer[o]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(n=this._h[1]>>>13,this._h[1]&=8191,o=2;o<10;o++)this._h[o]+=n,n=this._h[o]>>>13,this._h[o]&=8191;for(this._h[0]+=5*n,n=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=n,n=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=n,s[0]=this._h[0]+5,n=s[0]>>>13,s[0]&=8191,o=1;o<10;o++)s[o]=this._h[o]+n,n=s[o]>>>13,s[o]&=8191;for(s[9]-=8192,r=(1^n)-1,o=0;o<10;o++)s[o]&=r;for(r=~r,o=0;o<10;o++)this._h[o]=this._h[o]&r|s[o];for(this._h[0]=65535&(this._h[0]|this._h[1]<<13),this._h[1]=65535&(this._h[1]>>>3|this._h[2]<<10),this._h[2]=65535&(this._h[2]>>>6|this._h[3]<<7),this._h[3]=65535&(this._h[3]>>>9|this._h[4]<<4),this._h[4]=65535&(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14),this._h[5]=65535&(this._h[6]>>>2|this._h[7]<<11),this._h[6]=65535&(this._h[7]>>>5|this._h[8]<<8),this._h[7]=65535&(this._h[8]>>>8|this._h[9]<<5),i=this._h[0]+this._pad[0],this._h[0]=65535&i,o=1;o<8;o++)i=(this._h[o]+this._pad[o]|0)+(i>>>16)|0,this._h[o]=65535&i;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this},e.prototype.update=function(e){var t,n=0,r=e.length;if(this._leftover){(t=16-this._leftover)>r&&(t=r);for(var i=0;i=16&&(t=r-r%16,this._blocks(e,n,t),n+=t,r-=t),r){for(i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomStringForEntropy=t.randomString=t.randomUint32=t.randomBytes=t.defaultRandomSource=void 0;const r=n(6008),i=n(8099),o=n(7309);function s(e,n=t.defaultRandomSource){return n.randomBytes(e)}t.defaultRandomSource=new r.SystemRandomSource,t.randomBytes=s,t.randomUint32=function(e=t.defaultRandomSource){const n=s(4,e),r=(0,i.readUint32LE)(n);return(0,o.wipe)(n),r};const a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function c(e,n=a,r=t.defaultRandomSource){if(n.length<2)throw new Error("randomString charset is too short");if(n.length>256)throw new Error("randomString charset is too long");let i="";const c=n.length,l=256-256%c;for(;e>0;){const t=s(Math.ceil(256*e/l),r);for(let r=0;r0;r++){const o=t[r];o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserRandomSource=void 0,t.BrowserRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;const e="undefined"!=typeof self?self.crypto||self.msCrypto:null;e&&void 0!==e.getRandomValues&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Browser random byte generator is not available.");const t=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeRandomSource=void 0;const r=n(7309);t.NodeRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;{const e=n(5883);e&&e.randomBytes&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Node.js random byte generator is not available.");let t=this._crypto.randomBytes(e);if(t.length!==e)throw new Error("NodeRandomSource: got fewer bytes than requested");const n=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SystemRandomSource=void 0;const r=n(5455),i=n(8871);t.SystemRandomSource=class{constructor(){return this.isAvailable=!1,this.name="",this._source=new r.BrowserRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Browser")):(this._source=new i.NodeRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Node")):void 0)}randomBytes(e){if(!this.isAvailable)throw new Error("System random byte generator is not available.");return this._source.randomBytes(e)}}},7318:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309),o=20;function s(e,t,n){for(var i,s=1634760805,a=n[3]<<24|n[2]<<16|n[1]<<8|n[0],c=n[7]<<24|n[6]<<16|n[5]<<8|n[4],l=n[11]<<24|n[10]<<16|n[9]<<8|n[8],h=n[15]<<24|n[14]<<16|n[13]<<8|n[12],u=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=n[19]<<24|n[18]<<16|n[17]<<8|n[16],m=n[23]<<24|n[22]<<16|n[21]<<8|n[20],v=n[27]<<24|n[26]<<16|n[25]<<8|n[24],w=n[31]<<24|n[30]<<16|n[29]<<8|n[28],E=1797285236,S=s,I=a,R=c,A=l,x=h,M=u,T=d,O=f,P=p,N=g,k=y,C=b,U=m,L=v,j=w,z=E,K=0;K>>25)+S|0)<<9|i>>>23)+x|0)<<13|i>>>19)+P|0)<<18|i>>>14,M^=(i=(I^=(i=(L^=(i=(N^=(i=M+I|0)<<7|i>>>25)+M|0)<<9|i>>>23)+N|0)<<13|i>>>19)+L|0)<<18|i>>>14,k^=(i=(T^=(i=(R^=(i=(j^=(i=k+T|0)<<7|i>>>25)+k|0)<<9|i>>>23)+j|0)<<13|i>>>19)+R|0)<<18|i>>>14,z^=(i=(C^=(i=(O^=(i=(A^=(i=z+C|0)<<7|i>>>25)+z|0)<<9|i>>>23)+A|0)<<13|i>>>19)+O|0)<<18|i>>>14,S^=(i=(A^=(i=(R^=(i=(I^=(i=S+A|0)<<7|i>>>25)+S|0)<<9|i>>>23)+I|0)<<13|i>>>19)+R|0)<<18|i>>>14,M^=(i=(x^=(i=(O^=(i=(T^=(i=M+x|0)<<7|i>>>25)+M|0)<<9|i>>>23)+T|0)<<13|i>>>19)+O|0)<<18|i>>>14,k^=(i=(N^=(i=(P^=(i=(C^=(i=k+N|0)<<7|i>>>25)+k|0)<<9|i>>>23)+C|0)<<13|i>>>19)+P|0)<<18|i>>>14,z^=(i=(j^=(i=(L^=(i=(U^=(i=z+j|0)<<7|i>>>25)+z|0)<<9|i>>>23)+U|0)<<13|i>>>19)+L|0)<<18|i>>>14;r.writeUint32LE(S+s|0,e,0),r.writeUint32LE(I+a|0,e,4),r.writeUint32LE(R+c|0,e,8),r.writeUint32LE(A+l|0,e,12),r.writeUint32LE(x+h|0,e,16),r.writeUint32LE(M+u|0,e,20),r.writeUint32LE(T+d|0,e,24),r.writeUint32LE(O+f|0,e,28),r.writeUint32LE(P+p|0,e,32),r.writeUint32LE(N+g|0,e,36),r.writeUint32LE(k+y|0,e,40),r.writeUint32LE(C+b|0,e,44),r.writeUint32LE(U+m|0,e,48),r.writeUint32LE(L+v|0,e,52),r.writeUint32LE(j+w|0,e,56),r.writeUint32LE(z+E|0,e,60)}function a(e,t,n,r,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("Salsa20: key size must be 32 bytes");if(r.length>>=8,t++;if(r>0)throw new Error("Salsa20: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,r){return void 0===r&&(r=0),i.wipe(n),a(e,t,n,n,r)}},3294:(e,t,n)=>{"use strict";var r=n(8099),i=n(7309);t.k=32,t.cn=64;var o=function(){function e(){this.digestLength=t.k,this.blockSize=t.cn,this._state=new Int32Array(8),this._temp=new Int32Array(64),this._buffer=new Uint8Array(128),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._state[0]=1779033703,this._state[1]=3144134277,this._state[2]=1013904242,this._state[3]=2773480762,this._state[4]=1359893119,this._state[5]=2600822924,this._state[6]=528734635,this._state[7]=1541459225},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){i.wipe(this._buffer),i.wipe(this._temp),this.reset()},e.prototype.update=function(e,t){if(void 0===t&&(t=e.length),this._finished)throw new Error("SHA256: can't update because hash was finished.");var n=0;if(this._bytesHashed+=t,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[n++],t--;this._bufferLength===this.blockSize&&(a(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(n=a(this._temp,this._state,e,n,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[n++],t--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,i=t/536870912|0,o=t<<3,s=t%64<56?64:128;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){i.wipe(e.state),e.buffer&&i.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.mE=o;var s=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function a(e,t,n,i,o){for(;o>=64;){for(var a=t[0],c=t[1],l=t[2],h=t[3],u=t[4],d=t[5],f=t[6],p=t[7],g=0;g<16;g++){var y=i+4*g;e[g]=r.readUint32BE(n,y)}for(g=16;g<64;g++){var b=e[g-2],m=(b>>>17|b<<15)^(b>>>19|b<<13)^b>>>10,v=((b=e[g-15])>>>7|b<<25)^(b>>>18|b<<14)^b>>>3;e[g]=(m+e[g-7]|0)+(v+e[g-16]|0)}for(g=0;g<64;g++)m=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&d^~u&f)|0)+(p+(s[g]+e[g]|0)|0)|0,v=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&c^a&l^c&l)|0,p=f,f=d,d=u,u=h+m|0,h=l,l=c,c=a,a=m+v|0;t[0]+=a,t[1]+=c,t[2]+=l,t[3]+=h,t[4]+=u,t[5]+=d,t[6]+=f,t[7]+=p,i+=64,o-=64}return i}t.vp=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},3350:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309);t.DIGEST_LENGTH=64,t.BLOCK_SIZE=128;var o=function(){function e(){this.digestLength=t.DIGEST_LENGTH,this.blockSize=t.BLOCK_SIZE,this._stateHi=new Int32Array(8),this._stateLo=new Int32Array(8),this._tempHi=new Int32Array(16),this._tempLo=new Int32Array(16),this._buffer=new Uint8Array(256),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._stateHi[0]=1779033703,this._stateHi[1]=3144134277,this._stateHi[2]=1013904242,this._stateHi[3]=2773480762,this._stateHi[4]=1359893119,this._stateHi[5]=2600822924,this._stateHi[6]=528734635,this._stateHi[7]=1541459225,this._stateLo[0]=4089235720,this._stateLo[1]=2227873595,this._stateLo[2]=4271175723,this._stateLo[3]=1595750129,this._stateLo[4]=2917565137,this._stateLo[5]=725511199,this._stateLo[6]=4215389547,this._stateLo[7]=327033209},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){i.wipe(this._buffer),i.wipe(this._tempHi),i.wipe(this._tempLo),this.reset()},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("SHA512: can't update because hash was finished.");var r=0;if(this._bytesHashed+=n,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[r++],n--;this._bufferLength===this.blockSize&&(a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,this._buffer,0,this.blockSize),this._bufferLength=0)}for(n>=this.blockSize&&(r=a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,e,r,n),n%=this.blockSize);n>0;)this._buffer[this._bufferLength++]=e[r++],n--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,i=t/536870912|0,o=t<<3,s=t%128<112?128:256;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._stateHi.set(e.stateHi),this._stateLo.set(e.stateLo),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){i.wipe(e.stateHi),i.wipe(e.stateLo),e.buffer&&i.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.SHA512=o;var s=new Int32Array([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]);function a(e,t,n,i,o,a,c){for(var l,h,u,d,f,p,g,y,b=n[0],m=n[1],v=n[2],w=n[3],E=n[4],S=n[5],I=n[6],R=n[7],A=i[0],x=i[1],M=i[2],T=i[3],O=i[4],P=i[5],N=i[6],k=i[7];c>=128;){for(var C=0;C<16;C++){var U=8*C+a;e[C]=r.readUint32BE(o,U),t[C]=r.readUint32BE(o,U+4)}for(C=0;C<80;C++){var L,j,z=b,K=m,q=v,D=w,B=E,W=S,F=I,V=A,H=x,G=M,J=T,Z=O,Y=P,Q=N;if(f=65535&(h=k),p=h>>>16,g=65535&(l=R),y=l>>>16,f+=65535&(h=(O>>>14|E<<18)^(O>>>18|E<<14)^(E>>>9|O<<23)),p+=h>>>16,g+=65535&(l=(E>>>14|O<<18)^(E>>>18|O<<14)^(O>>>9|E<<23)),y+=l>>>16,f+=65535&(h=O&P^~O&N),p+=h>>>16,g+=65535&(l=E&S^~E&I),y+=l>>>16,l=s[2*C],f+=65535&(h=s[2*C+1]),p+=h>>>16,g+=65535&l,y+=l>>>16,l=e[C%16],p+=(h=t[C%16])>>>16,g+=65535&l,y+=l>>>16,g+=(p+=(f+=65535&h)>>>16)>>>16,f=65535&(h=d=65535&f|p<<16),p=h>>>16,g=65535&(l=u=65535&g|(y+=g>>>16)<<16),y=l>>>16,f+=65535&(h=(A>>>28|b<<4)^(b>>>2|A<<30)^(b>>>7|A<<25)),p+=h>>>16,g+=65535&(l=(b>>>28|A<<4)^(A>>>2|b<<30)^(A>>>7|b<<25)),y+=l>>>16,p+=(h=A&x^A&M^x&M)>>>16,g+=65535&(l=b&m^b&v^m&v),y+=l>>>16,L=65535&(g+=(p+=(f+=65535&h)>>>16)>>>16)|(y+=g>>>16)<<16,j=65535&f|p<<16,f=65535&(h=J),p=h>>>16,g=65535&(l=D),y=l>>>16,p+=(h=d)>>>16,g+=65535&(l=u),y+=l>>>16,m=z,v=K,w=q,E=D=65535&(g+=(p+=(f+=65535&h)>>>16)>>>16)|(y+=g>>>16)<<16,S=B,I=W,R=F,b=L,x=V,M=H,T=G,O=J=65535&f|p<<16,P=Z,N=Y,k=Q,A=j,C%16==15)for(U=0;U<16;U++)l=e[U],f=65535&(h=t[U]),p=h>>>16,g=65535&l,y=l>>>16,l=e[(U+9)%16],f+=65535&(h=t[(U+9)%16]),p+=h>>>16,g+=65535&l,y+=l>>>16,u=e[(U+1)%16],f+=65535&(h=((d=t[(U+1)%16])>>>1|u<<31)^(d>>>8|u<<24)^(d>>>7|u<<25)),p+=h>>>16,g+=65535&(l=(u>>>1|d<<31)^(u>>>8|d<<24)^u>>>7),y+=l>>>16,u=e[(U+14)%16],p+=(h=((d=t[(U+14)%16])>>>19|u<<13)^(u>>>29|d<<3)^(d>>>6|u<<26))>>>16,g+=65535&(l=(u>>>19|d<<13)^(d>>>29|u<<3)^u>>>6),y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,e[U]=65535&g|y<<16,t[U]=65535&f|p<<16}f=65535&(h=A),p=h>>>16,g=65535&(l=b),y=l>>>16,l=n[0],p+=(h=i[0])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[0]=b=65535&g|y<<16,i[0]=A=65535&f|p<<16,f=65535&(h=x),p=h>>>16,g=65535&(l=m),y=l>>>16,l=n[1],p+=(h=i[1])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[1]=m=65535&g|y<<16,i[1]=x=65535&f|p<<16,f=65535&(h=M),p=h>>>16,g=65535&(l=v),y=l>>>16,l=n[2],p+=(h=i[2])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[2]=v=65535&g|y<<16,i[2]=M=65535&f|p<<16,f=65535&(h=T),p=h>>>16,g=65535&(l=w),y=l>>>16,l=n[3],p+=(h=i[3])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[3]=w=65535&g|y<<16,i[3]=T=65535&f|p<<16,f=65535&(h=O),p=h>>>16,g=65535&(l=E),y=l>>>16,l=n[4],p+=(h=i[4])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[4]=E=65535&g|y<<16,i[4]=O=65535&f|p<<16,f=65535&(h=P),p=h>>>16,g=65535&(l=S),y=l>>>16,l=n[5],p+=(h=i[5])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[5]=S=65535&g|y<<16,i[5]=P=65535&f|p<<16,f=65535&(h=N),p=h>>>16,g=65535&(l=I),y=l>>>16,l=n[6],p+=(h=i[6])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[6]=I=65535&g|y<<16,i[6]=N=65535&f|p<<16,f=65535&(h=k),p=h>>>16,g=65535&(l=R),y=l>>>16,l=n[7],p+=(h=i[7])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&h)>>>16)>>>16)>>>16,n[7]=R=65535&g|y<<16,i[7]=k=65535&f|p<<16,a+=128,c-=128}return a}t.hash=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},6249:(e,t)=>{"use strict";var n="utf8: invalid string";t.cv=function(e){for(var t=new Uint8Array(function(e){for(var t=0,r=0;r=e.length-1)throw new Error(n);r++,t+=4}}return t}(e)),r=0,i=0;i>6,t[r++]=128|63&o):o<55296?(t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o):(i++,o=(1023&o)<<10,o|=1023&e.charCodeAt(i),o+=65536,t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o)}return t}},7309:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wipe=function(e){for(var t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.X25519Session=t.SECRET_SEED_LENGTH=t.SAVED_STATE_LENGTH=t.ACCEPT_MESSAGE_LENGTH=t.OFFER_MESSAGE_LENGTH=void 0;const r=n(1416),i=n(7309),o=n(7664),s=n(4826);t.OFFER_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.ACCEPT_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.SAVED_STATE_LENGTH=o.SECRET_KEY_LENGTH,t.SECRET_SEED_LENGTH=o.SECRET_KEY_LENGTH,t.X25519Session=class{constructor(e,n){this.offerMessageLength=t.OFFER_MESSAGE_LENGTH,this.acceptMessageLength=t.ACCEPT_MESSAGE_LENGTH,this.sharedKeyLength=o.SHARED_KEY_LENGTH,this.savedStateLength=t.SAVED_STATE_LENGTH,this._seed=e||(0,r.randomBytes)(o.SECRET_KEY_LENGTH,n)}saveState(){return new Uint8Array(this._seed)}restoreState(e){return this._seed=new Uint8Array(e),this}clean(){this._seed&&(0,i.wipe)(this._seed),this._keyPair&&((0,i.wipe)(this._keyPair.secretKey),(0,i.wipe)(this._keyPair.publicKey)),this._sharedKey&&(0,i.wipe)(this._sharedKey),this._sessionKeys&&((0,i.wipe)(this._sessionKeys.receive),(0,i.wipe)(this._sessionKeys.send))}offer(){return this._keyPair=(0,o.generateKeyPairFromSeed)(this._seed),new Uint8Array(this._keyPair.publicKey)}accept(e){if(this._keyPair)throw new Error("X25519Session: accept shouldn't be called by offering party");if(e.length!==this.offerMessageLength)throw new Error("X25519Session: incorrect offer message length");if(this._sharedKey)throw new Error("X25519Session: accept was already called");const t=(0,o.generateKeyPairFromSeed)(this._seed);return this._sharedKey=(0,o.sharedKey)(t.secretKey,e),this._sessionKeys=(0,s.clientSessionKeysFromSharedKey)(this._sharedKey,t.publicKey,e),(0,i.wipe)(t.secretKey),t.publicKey}finish(e){if(e.length!==this.acceptMessageLength)throw new Error("X25519Session: incorrect accept message length");if(!this._keyPair)throw new Error("X25519Session: no offer state");if(this._sharedKey)throw new Error("X25519Session: finish was already called");return this._sharedKey=(0,o.sharedKey)(this._keyPair.secretKey,e),this._sessionKeys=(0,s.serverSessionKeysFromSharedKey)(this._sharedKey,this._keyPair.publicKey,e),this}getSharedKey(){if(!this._sharedKey)throw new Error("X25519Session: no shared key established");return new Uint8Array(this._sharedKey)}getSessionKeys(){if(!this._sessionKeys)throw new Error("X25519Session: no shared key established");return{receive:new Uint8Array(this._sessionKeys.receive),send:new Uint8Array(this._sessionKeys.send)}}}},4826:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clientSessionKeys=t.serverSessionKeys=t.clientSessionKeysFromSharedKey=t.serverSessionKeysFromSharedKey=t.X25519Session=void 0;const r=n(1322),i=n(7664);var o=n(6273);Object.defineProperty(t,"X25519Session",{enumerable:!0,get:function(){return o.X25519Session}});const s=32;function a(e,t,n,i=r.BLAKE2b){const o=new i;if(64!==o.digestLength)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(n).update(t).digest();return{send:a.subarray(0,s),receive:a.subarray(s)}}function c(e,t,n,i=r.BLAKE2b){const o=new i;if(64!==o.digestLength)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(t).update(n).digest();return{receive:a.subarray(0,s),send:a.subarray(s)}}t.serverSessionKeysFromSharedKey=a,t.clientSessionKeysFromSharedKey=c,t.serverSessionKeys=function(e,t,n=r.BLAKE2b){return a((0,i.sharedKey)(e.secretKey,t),e.publicKey,t,n)},t.clientSessionKeys=function(e,t,n=r.BLAKE2b){return c((0,i.sharedKey)(e.secretKey,t),e.publicKey,t,n)}},7664:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sharedKey=t.generateKeyPair=t.generateKeyPairFromSeed=t.scalarMultBase=t.scalarMult=t.SHARED_KEY_LENGTH=t.SECRET_KEY_LENGTH=t.PUBLIC_KEY_LENGTH=void 0;const r=n(1416),i=n(7309);function o(e){const t=new Float64Array(16);if(e)for(let n=0;n=0;--e){const t=n[e>>>3]>>>(7&e)&1;l(i,s,t),l(p,g,t),h(y,i,p),u(i,i,p),h(p,s,g),u(s,s,g),f(g,y),f(b,i),d(i,p,i),d(p,s,y),h(y,i,p),u(i,i,p),f(s,i),u(p,g,b),d(i,p,a),h(i,i,g),d(p,p,i),d(i,g,b),d(g,s,r),f(s,y),l(i,s,t),l(p,g,t)}for(let e=0;e<16;e++)r[e+16]=i[e],r[e+32]=p[e],r[e+48]=s[e],r[e+64]=g[e];const m=r.subarray(32),v=r.subarray(16);!function(e,t){const n=o();for(let e=0;e<16;e++)n[e]=t[e];for(let e=253;e>=0;e--)f(n,n),2!==e&&4!==e&&d(n,n,t);for(let t=0;t<16;t++)e[t]=n[t]}(m,m),d(v,v,m);const w=new Uint8Array(32);return function(e,t){const n=o(),r=o();for(let e=0;e<16;e++)r[e]=t[e];c(r),c(r),c(r);for(let e=0;e<2;e++){n[0]=r[0]-65517;for(let e=1;e<15;e++)n[e]=r[e]-65535-(n[e-1]>>16&1),n[e-1]&=65535;n[15]=r[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,l(r,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&r[t],e[2*t+1]=r[t]>>8}(w,v),w}function g(e){return p(e,s)}function y(e){if(e.length!==t.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${t.SECRET_KEY_LENGTH} bytes`);const n=new Uint8Array(e);return{publicKey:g(n),secretKey:n}}t.scalarMult=p,t.scalarMultBase=g,t.generateKeyPairFromSeed=y,t.generateKeyPair=function(e){const t=(0,r.randomBytes)(32,e),n=y(t);return(0,i.wipe)(t),n},t.sharedKey=function(e,n,r=!1){if(e.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(n.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const i=p(e,n);if(r){let e=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7318),o=n(7309);function s(e,t,n,r,s){if(void 0===s&&(s=0),0===s){if(24!==t.length)throw new Error("XSalsa20 nonce must be 24 bytes")}else if(32!==t.length)throw new Error("XSalsa20 nonce with counter must be 32 bytes");var a=c(e,t.subarray(0,16),new Uint8Array(32)),l=i.streamXOR(a,t.subarray(16),n,r,s);return o.wipe(a),l}t.streamXOR=s,t.stream=function(e,t,n,r){return void 0===r&&(r=0),o.wipe(n),s(e,t,n,n,r)};var a=20;function c(e,t,n){for(var i,o=1634760805,s=e[3]<<24|e[2]<<16|e[1]<<8|e[0],c=e[7]<<24|e[6]<<16|e[5]<<8|e[4],l=e[11]<<24|e[10]<<16|e[9]<<8|e[8],h=e[15]<<24|e[14]<<16|e[13]<<8|e[12],u=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=e[19]<<24|e[18]<<16|e[17]<<8|e[16],m=e[23]<<24|e[22]<<16|e[21]<<8|e[20],v=e[27]<<24|e[26]<<16|e[25]<<8|e[24],w=e[31]<<24|e[30]<<16|e[29]<<8|e[28],E=1797285236,S=0;S>>25)+o|0)<<9|i>>>23)+h|0)<<13|i>>>19)+p|0)<<18|i>>>14,u^=(i=(s^=(i=(v^=(i=(g^=(i=u+s|0)<<7|i>>>25)+u|0)<<9|i>>>23)+g|0)<<13|i>>>19)+v|0)<<18|i>>>14,y^=(i=(d^=(i=(c^=(i=(w^=(i=y+d|0)<<7|i>>>25)+y|0)<<9|i>>>23)+w|0)<<13|i>>>19)+c|0)<<18|i>>>14,E^=(i=(b^=(i=(f^=(i=(l^=(i=E+b|0)<<7|i>>>25)+E|0)<<9|i>>>23)+l|0)<<13|i>>>19)+f|0)<<18|i>>>14,o^=(i=(l^=(i=(c^=(i=(s^=(i=o+l|0)<<7|i>>>25)+o|0)<<9|i>>>23)+s|0)<<13|i>>>19)+c|0)<<18|i>>>14,u^=(i=(h^=(i=(f^=(i=(d^=(i=u+h|0)<<7|i>>>25)+u|0)<<9|i>>>23)+d|0)<<13|i>>>19)+f|0)<<18|i>>>14,y^=(i=(g^=(i=(p^=(i=(b^=(i=y+g|0)<<7|i>>>25)+y|0)<<9|i>>>23)+b|0)<<13|i>>>19)+p|0)<<18|i>>>14,E^=(i=(w^=(i=(v^=(i=(m^=(i=E+w|0)<<7|i>>>25)+E|0)<<9|i>>>23)+m|0)<<13|i>>>19)+v|0)<<18|i>>>14;return r.writeUint32LE(o,n,0),r.writeUint32LE(u,n,4),r.writeUint32LE(y,n,8),r.writeUint32LE(E,n,12),r.writeUint32LE(d,n,16),r.writeUint32LE(f,n,20),r.writeUint32LE(p,n,24),r.writeUint32LE(g,n,28),n}t.hsalsa=c},926:(e,t,n)=>{"use strict";function r(){return(null===n.g||void 0===n.g?void 0:n.g.crypto)||(null===n.g||void 0===n.g?void 0:n.g.msCrypto)||{}}function i(){const e=r();return e.subtle||e.webkitSubtle}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowserCryptoAvailable=t.getSubtleCrypto=t.getBrowerCrypto=void 0,t.getBrowerCrypto=r,t.getSubtleCrypto=i,t.isBrowserCryptoAvailable=function(){return!!r()&&!!i()}},8618:(e,t,n)=>{"use strict";var r=n(4155);function i(){return"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product}function o(){return void 0!==r&&void 0!==r.versions&&void 0!==r.versions.node}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.isNode=t.isReactNative=void 0,t.isReactNative=i,t.isNode=o,t.isBrowser=function(){return!i()&&!o()}},1468:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(926),t),r.__exportStar(n(8618),t)},8200:(e,t,n)=>{"use strict";n.d(t,{q:()=>r});class r{}},997:(e,t,n)=>{"use strict";n.r(t),n.d(t,{IEvents:()=>r.q});var r=n(8200)},2568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HEARTBEAT_EVENTS=t.HEARTBEAT_INTERVAL=void 0;const r=n(6736);t.HEARTBEAT_INTERVAL=r.FIVE_SECONDS,t.HEARTBEAT_EVENTS={pulse:"heartbeat_pulse"}},3401:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(655).__exportStar(n(2568),t)},8969:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeartBeat=void 0;const r=n(655),i=n(7187),o=n(6736),s=n(1614),a=n(3401);class c extends s.IHeartBeat{constructor(e){super(e),this.events=new i.EventEmitter,this.interval=a.HEARTBEAT_INTERVAL,this.interval=(null==e?void 0:e.interval)||a.HEARTBEAT_INTERVAL}static init(e){return r.__awaiter(this,void 0,void 0,(function*(){const t=new c(e);return yield t.init(),t}))}init(){return r.__awaiter(this,void 0,void 0,(function*(){yield this.initialize()}))}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}initialize(){return r.__awaiter(this,void 0,void 0,(function*(){this.intervalRef=setInterval((()=>this.pulse()),o.toMiliseconds(this.interval))}))}pulse(){this.events.emit(a.HEARTBEAT_EVENTS.pulse)}}t.HeartBeat=c},159:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(8969),t),r.__exportStar(n(1614),t),r.__exportStar(n(3401),t)},4174:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IHeartBeat=void 0;const r=n(997);class i extends r.IEvents{constructor(e){super()}}t.IHeartBeat=i},1614:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(655).__exportStar(n(4174),t)},5150:(e,t,n)=>{"use strict";const r=n(655),i=n(3954),o=r.__importDefault(n(653)),s=n(9728);t.ZP=class{constructor(){this.localStorage=o.default}getKeys(){return r.__awaiter(this,void 0,void 0,(function*(){return Object.keys(this.localStorage)}))}getEntries(){return r.__awaiter(this,void 0,void 0,(function*(){return Object.entries(this.localStorage).map(s.parseEntry)}))}getItem(e){return r.__awaiter(this,void 0,void 0,(function*(){const t=this.localStorage.getItem(e);if(null!==t)return i.safeJsonParse(t)}))}setItem(e,t){return r.__awaiter(this,void 0,void 0,(function*(){this.localStorage.setItem(e,i.safeJsonStringify(t))}))}removeItem(e){return r.__awaiter(this,void 0,void 0,(function*(){this.localStorage.removeItem(e)}))}}},653:(e,t,n)=>{"use strict";!function(){let t;function r(){}t=r,t.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},t.prototype.setItem=function(e,t){this[e]=String(t)},t.prototype.removeItem=function(e){delete this[e]},t.prototype.clear=function(){const e=this;Object.keys(e).forEach((function(t){e[t]=void 0,delete e[t]}))},t.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},t.prototype.__defineGetter__("length",(function(){return Object.keys(this).length})),void 0!==n.g&&n.g.localStorage?e.exports=n.g.localStorage:"undefined"!=typeof window&&window.localStorage?e.exports=window.localStorage:e.exports=new r}()},9728:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(9076),t),r.__exportStar(n(496),t)},9076:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IKeyValueStorage=void 0,t.IKeyValueStorage=class{}},496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseEntry=void 0;const r=n(3954);t.parseEntry=function(e){var t;return[e[0],r.safeJsonParse(null!==(t=e[1])&&void 0!==t?t:"")]}},5727:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PINO_CUSTOM_CONTEXT_KEY=t.PINO_LOGGER_DEFAULTS=void 0,t.PINO_LOGGER_DEFAULTS={level:"info"},t.PINO_CUSTOM_CONTEXT_KEY="custom_context"},9107:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pino=void 0;const r=n(655),i=r.__importDefault(n(6559));Object.defineProperty(t,"pino",{enumerable:!0,get:function(){return i.default}}),r.__exportStar(n(5727),t),r.__exportStar(n(8048),t)},8048:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateChildLogger=t.formatChildLoggerContext=t.getLoggerContext=t.setBrowserLoggerContext=t.getBrowserLoggerContext=t.getDefaultLoggerOptions=void 0;const r=n(5727);function i(e,t=r.PINO_CUSTOM_CONTEXT_KEY){return e[t]||""}function o(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){return e[n]=t,e}function s(e,t=r.PINO_CUSTOM_CONTEXT_KEY){let n="";return n=void 0===e.bindings?i(e,t):e.bindings().context||"",n}function a(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){const i=s(e,n);return i.trim()?`${i}/${t}`:t}t.getDefaultLoggerOptions=function(e){return Object.assign(Object.assign({},e),{level:(null==e?void 0:e.level)||r.PINO_LOGGER_DEFAULTS.level})},t.getBrowserLoggerContext=i,t.setBrowserLoggerContext=o,t.getLoggerContext=s,t.formatChildLoggerContext=a,t.generateChildLogger=function(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){const i=a(e,t,n);return o(e.child({context:i}),i,n)}},1882:()=>{},3014:()=>{},6900:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(6869),t),r.__exportStar(n(8033),t)},6869:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_THOUSAND=t.ONE_HUNDRED=void 0,t.ONE_HUNDRED=100,t.ONE_THOUSAND=1e3},8033:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_YEAR=t.FOUR_WEEKS=t.THREE_WEEKS=t.TWO_WEEKS=t.ONE_WEEK=t.THIRTY_DAYS=t.SEVEN_DAYS=t.FIVE_DAYS=t.THREE_DAYS=t.ONE_DAY=t.TWENTY_FOUR_HOURS=t.TWELVE_HOURS=t.SIX_HOURS=t.THREE_HOURS=t.ONE_HOUR=t.SIXTY_MINUTES=t.THIRTY_MINUTES=t.TEN_MINUTES=t.FIVE_MINUTES=t.ONE_MINUTE=t.SIXTY_SECONDS=t.THIRTY_SECONDS=t.TEN_SECONDS=t.FIVE_SECONDS=t.ONE_SECOND=void 0,t.ONE_SECOND=1,t.FIVE_SECONDS=5,t.TEN_SECONDS=10,t.THIRTY_SECONDS=30,t.SIXTY_SECONDS=60,t.ONE_MINUTE=t.SIXTY_SECONDS,t.FIVE_MINUTES=5*t.ONE_MINUTE,t.TEN_MINUTES=10*t.ONE_MINUTE,t.THIRTY_MINUTES=30*t.ONE_MINUTE,t.SIXTY_MINUTES=60*t.ONE_MINUTE,t.ONE_HOUR=t.SIXTY_MINUTES,t.THREE_HOURS=3*t.ONE_HOUR,t.SIX_HOURS=6*t.ONE_HOUR,t.TWELVE_HOURS=12*t.ONE_HOUR,t.TWENTY_FOUR_HOURS=24*t.ONE_HOUR,t.ONE_DAY=t.TWENTY_FOUR_HOURS,t.THREE_DAYS=3*t.ONE_DAY,t.FIVE_DAYS=5*t.ONE_DAY,t.SEVEN_DAYS=7*t.ONE_DAY,t.THIRTY_DAYS=30*t.ONE_DAY,t.ONE_WEEK=t.SEVEN_DAYS,t.TWO_WEEKS=2*t.ONE_WEEK,t.THREE_WEEKS=3*t.ONE_WEEK,t.FOUR_WEEKS=4*t.ONE_WEEK,t.ONE_YEAR=365*t.ONE_DAY},6736:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(4273),t),r.__exportStar(n(7001),t),r.__exportStar(n(2939),t),r.__exportStar(n(6900),t)},2939:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(655).__exportStar(n(8766),t)},8766:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IWatch=void 0,t.IWatch=class{}},3207:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromMiliseconds=t.toMiliseconds=void 0;const r=n(6900);t.toMiliseconds=function(e){return e*r.ONE_THOUSAND},t.fromMiliseconds=function(e){return Math.floor(e/r.ONE_THOUSAND)}},3873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.delay=void 0,t.delay=function(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}},4273:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(3873),t),r.__exportStar(n(3207),t)},7001:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Watch=void 0;class n{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw new Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){const t=this.get(e);if(void 0!==t.elapsed)throw new Error(`Watch already stopped for label: ${e}`);const n=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:n})}get(e){const t=this.timestamps.get(e);if(void 0===t)throw new Error(`No timestamp found for label: ${e}`);return t}elapsed(e){const t=this.get(e);return t.elapsed||Date.now()-t.started}}t.Watch=n,t.default=n},2873:(e,t)=>{"use strict";function n(e){let t;return"undefined"!=typeof window&&void 0!==window[e]&&(t=window[e]),t}function r(e){const t=n(e);if(!t)throw new Error(`${e} is not defined in Window`);return t}Object.defineProperty(t,"__esModule",{value:!0}),t.getLocalStorage=t.getLocalStorageOrThrow=t.getCrypto=t.getCryptoOrThrow=t.getLocation=t.getLocationOrThrow=t.getNavigator=t.getNavigatorOrThrow=t.getDocument=t.getDocumentOrThrow=t.getFromWindowOrThrow=t.getFromWindow=void 0,t.getFromWindow=n,t.getFromWindowOrThrow=r,t.getDocumentOrThrow=function(){return r("document")},t.getDocument=function(){return n("document")},t.getNavigatorOrThrow=function(){return r("navigator")},t.getNavigator=function(){return n("navigator")},t.getLocationOrThrow=function(){return r("location")},t.getLocation=function(){return n("location")},t.getCryptoOrThrow=function(){return r("crypto")},t.getCrypto=function(){return n("crypto")},t.getLocalStorageOrThrow=function(){return r("localStorage")},t.getLocalStorage=function(){return n("localStorage")}},5755:(e,t,n)=>{"use strict";t.D=void 0;const r=n(2873);t.D=function(){let e,t;try{e=r.getDocumentOrThrow(),t=r.getLocationOrThrow()}catch(e){return null}function n(...t){const n=e.getElementsByTagName("meta");for(let e=0;er.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(i.length&&i){const e=r.getAttribute("content");if(e)return e}}return""}const i=function(){let t=n("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:n("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const n=e.getElementsByTagName("link"),r=[];for(let e=0;e-1){const e=i.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let n=t.protocol+"//"+t.host;if(0===e.indexOf("/"))n+=e;else{const r=t.pathname.split("/");r.pop(),n+=r.join("/")+"/"+e}r.push(n)}else if(0===e.indexOf("//")){const n=t.protocol+e;r.push(n)}else r.push(e)}}return r}(),name:i}}},9282:(e,t,n)=>{"use strict";var r=n(4155),i=n(5108);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var s,a,c=n(2136).codes,l=c.ERR_AMBIGUOUS_ARGUMENT,h=c.ERR_INVALID_ARG_TYPE,u=c.ERR_INVALID_ARG_VALUE,d=c.ERR_INVALID_RETURN_VALUE,f=c.ERR_MISSING_ARGS,p=n(5961),g=n(9539).inspect,y=n(9539).types,b=y.isPromise,m=y.isRegExp,v=Object.assign?Object.assign:n(8091).assign,w=Object.is?Object.is:n(609);function E(){var e=n(9158);s=e.isDeepEqual,a=e.isDeepStrictEqual}new Map;var S=!1,I=e.exports=M,R={};function A(e){if(e.message instanceof Error)throw e.message;throw new p(e)}function x(e,t,n,r){if(!n){var i=!1;if(0===t)i=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var o=new p({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw o.generatedMessage=i,o}}function M(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),i=1;i1?n-1:0),i=1;i1?n-1:0),i=1;i1?n-1:0),i=1;i{"use strict";var r=n(4155);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;ne.length)&&(n=e.length),e.substring(n-t.length,n)===t}var y="",b="",m="",v="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function S(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}var I=function(e){function t(e){var n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==d(e)||null===e)throw new p("options","Object",e);var i=e.message,o=e.operator,c=e.stackStartFn,l=e.actual,h=e.expected,f=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)n=s(this,u(t).call(this,String(i)));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(y="",b="",v="",m=""):(y="",b="",v="",m="")),"object"===d(l)&&null!==l&&"object"===d(h)&&null!==h&&"stack"in l&&l instanceof Error&&"stack"in h&&h instanceof Error&&(l=E(l),h=E(h)),"deepStrictEqual"===o||"strictEqual"===o)n=s(this,u(t).call(this,function(e,t,n){var i="",o="",s=0,a="",c=!1,l=S(e),h=l.split("\n"),u=S(t).split("\n"),f=0,p="";if("strictEqual"===n&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===h.length&&1===u.length&&h[0]!==u[0]){var E=h[0].length+u[0].length;if(E<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(w[n],"\n\n")+"".concat(h[0]," !== ").concat(u[0],"\n")}else if("strictEqualObject"!==n&&E<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;h[0][f]===u[0][f];)f++;f>2&&(p="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",f),"^"),f=0)}}for(var I=h[h.length-1],R=u[u.length-1];I===R&&(f++<2?a="\n ".concat(I).concat(a):i=I,h.pop(),u.pop(),0!==h.length&&0!==u.length);)I=h[h.length-1],R=u[u.length-1];var A=Math.max(h.length,u.length);if(0===A){var x=l.split("\n");if(x.length>30)for(x[26]="".concat(y,"...").concat(v);x.length>27;)x.pop();return"".concat(w.notIdentical,"\n\n").concat(x.join("\n"),"\n")}f>3&&(a="\n".concat(y,"...").concat(v).concat(a),c=!0),""!==i&&(a="\n ".concat(i).concat(a),i="");var M=0,T=w[n]+"\n".concat(b,"+ actual").concat(v," ").concat(m,"- expected").concat(v),O=" ".concat(y,"...").concat(v," Lines skipped");for(f=0;f1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(u[f-2]),M++),o+="\n ".concat(u[f-1]),M++),s=f,i+="\n".concat(m,"-").concat(v," ").concat(u[f]),M++;else if(u.length1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(h[f-2]),M++),o+="\n ".concat(h[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(h[f]),M++;else{var N=u[f],k=h[f],C=k!==N&&(!g(k,",")||k.slice(0,-1)!==N);C&&g(N,",")&&N.slice(0,-1)===k&&(C=!1,k+=","),C?(P>1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(h[f-2]),M++),o+="\n ".concat(h[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(k),i+="\n".concat(m,"-").concat(v," ").concat(N),M+=2):(o+=i,i="",1!==P&&0!==f||(o+="\n ".concat(k),M++))}if(M>20&&f30)for(R[26]="".concat(y,"...").concat(v);R.length>27;)R.pop();n=1===R.length?s(this,u(t).call(this,"".concat(I," ").concat(R[0]))):s(this,u(t).call(this,"".concat(I,"\n\n").concat(R.join("\n"),"\n")))}else{var A=S(l),x="",M=w[o];"notDeepEqual"===o||"notEqual"===o?(A="".concat(w[o],"\n\n").concat(A)).length>1024&&(A="".concat(A.slice(0,1021),"...")):(x="".concat(S(h)),A.length>512&&(A="".concat(A.slice(0,509),"...")),x.length>512&&(x="".concat(x.slice(0,509),"...")),"deepEqual"===o||"equal"===o?A="".concat(M,"\n\n").concat(A,"\n\nshould equal\n\n"):x=" ".concat(o," ").concat(x)),n=s(this,u(t).call(this,"".concat(A).concat(x)))}return Error.stackTraceLimit=f,n.generatedMessage=!i,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=l,n.expected=h,n.operator=o,Error.captureStackTrace&&Error.captureStackTrace(a(n),c),n.stack,n.name="AssertionError",s(n)}var n,c;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),n=t,c=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}var s,a,c={};function l(e,t,n){n||(n=Error);var s=function(n){function s(n,o,a){var c;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),c=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}(this,i(s).call(this,function(e,n,r){return"string"==typeof t?t:t(e,n,r)}(n,o,a))),c.code=e,c}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}(s,n),s}(n);c[e]=s}function h(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,i){var o,a,c,l,u;if(void 0===s&&(s=n(9282)),s("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(a="not ",t.substr(0,4)===a)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))c="The ".concat(e," ").concat(o," ").concat(h(t,"type"));else{var d=("number"!=typeof u&&(u=0),u+1>(l=e).length||-1===l.indexOf(".",u)?"argument":"property");c='The "'.concat(e,'" ').concat(d," ").concat(o," ").concat(h(t,"type"))}return c+". Received type ".concat(r(i))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===a&&(a=n(9539));var i=a.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(i)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var i;return i=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var i="The ",o=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),o){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,o-1).join(", "),i+=", and ".concat(t[o-1]," arguments")}return"".concat(i," must be specified")}),TypeError),e.exports.codes=c},9158:(e,t,n)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o=void 0!==/a/g.flags,s=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},c=Object.is?Object.is:n(609),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},h=Number.isNaN?Number.isNaN:n(360);function u(e){return e.call.bind(e)}var d=u(Object.prototype.hasOwnProperty),f=u(Object.prototype.propertyIsEnumerable),p=u(Object.prototype.toString),g=n(9539).types,y=g.isAnyArrayBuffer,b=g.isArrayBufferView,m=g.isDate,v=g.isMap,w=g.isRegExp,E=g.isSet,S=g.isNativeError,I=g.isBoxedPrimitive,R=g.isNumberObject,A=g.isStringObject,x=g.isBooleanObject,M=g.isBigIntObject,T=g.isSymbolObject,O=g.isFloat32Array,P=g.isFloat64Array;function N(e){if(0===e.length||e.length>10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function k(e){return Object.keys(e).filter(N).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function C(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),i=n(6026),o=n(4372),s=n(5327),a=n(4097),c=n(4109),l=n(7985),h=n(5061),u=n(5655),d=n(5263);e.exports=function(e){return new Promise((function(t,n){var f,p=e.data,g=e.headers,y=e.responseType;function b(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}r.isFormData(p)&&delete g["Content-Type"];var m=new XMLHttpRequest;if(e.auth){var v=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(v+":"+w)}var E=a(e.baseURL,e.url);function S(){if(m){var r="getAllResponseHeaders"in m?c(m.getAllResponseHeaders()):null,o={data:y&&"text"!==y&&"json"!==y?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m};i((function(e){t(e),b()}),(function(e){n(e),b()}),o),m=null}}if(m.open(e.method.toUpperCase(),s(E,e.params,e.paramsSerializer),!0),m.timeout=e.timeout,"onloadend"in m?m.onloadend=S:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(S)},m.onabort=function(){m&&(n(h("Request aborted",e,"ECONNABORTED",m)),m=null)},m.onerror=function(){n(h("Network Error",e,null,m)),m=null},m.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||u.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(h(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",m)),m=null},r.isStandardBrowserEnv()){var I=(e.withCredentials||l(E))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;I&&(g[e.xsrfHeaderName]=I)}"setRequestHeader"in m&&r.forEach(g,(function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete g[t]:m.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(m.withCredentials=!!e.withCredentials),y&&"json"!==y&&(m.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&m.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(e){m&&(n(!e||e&&e.type?new d("canceled"):e),m.abort(),m=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),p||(p=null),m.send(p)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),i=n(1849),o=n(321),s=n(7185),a=function e(t){var n=new o(t),a=i(o.prototype.request,n);return r.extend(a,o.prototype,n),r.extend(a,n),a.create=function(n){return e(s(t,n))},a}(n(5655));a.Axios=o,a.Cancel=n(5263),a.CancelToken=n(4972),a.isCancel=n(6502),a.VERSION=n(7288).version,a.all=function(e){return Promise.all(e)},a.spread=n(8713),a.isAxiosError=n(6268),e.exports=a,e.exports.default=a},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),i=n(5327),o=n(782),s=n(3572),a=n(7185),c=n(4875),l=c.validators;function h(e){this.defaults=e,this.interceptors={request:new o,response:new o}}h.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&c.assertOptions(t,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var i,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!r){var h=[s,void 0];for(Array.prototype.unshift.apply(h,n),h=h.concat(o),i=Promise.resolve(e);h.length;)i=i.then(h.shift(),h.shift());return i}for(var u=e;n.length;){var d=n.shift(),f=n.shift();try{u=d(u)}catch(e){f(e);break}}try{i=s(u)}catch(e){return Promise.reject(e)}for(;o.length;)i=i.then(o.shift(),o.shift());return i},h.prototype.getUri=function(e){return e=a(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){h.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){h.prototype[e]=function(t,n,r){return this.request(a(r||{},{method:e,url:t,data:n}))}})),e.exports=h},782:(e,t,n)=>{"use strict";var r=n(4867);function i(){this.handlers=[]}i.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},4097:(e,t,n)=>{"use strict";var r=n(1793),i=n(7303);e.exports=function(e,t){return e&&!r(t)?i(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,i,o){var s=new Error(e);return r(s,t,n,i,o)}},3572:(e,t,n)=>{"use strict";var r=n(4867),i=n(8527),o=n(6502),s=n(5655),a=n(5263);function c(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a("canceled")}e.exports=function(e){return c(e),e.headers=e.headers||{},e.data=i.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return c(e),t.data=i.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(c(e),t&&t.response&&(t.response.data=i.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,i){return e.config=t,n&&(e.code=n),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={};function i(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:i(void 0,e[n]):i(e[n],t[n])}function s(e){if(!r.isUndefined(t[e]))return i(void 0,t[e])}function a(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:i(void 0,e[n]):i(void 0,t[n])}function c(n){return n in t?i(e[n],t[n]):n in e?i(void 0,e[n]):void 0}var l={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=l[e]||o,i=t(e);r.isUndefined(i)&&t!==c||(n[e]=i)})),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867),i=n(5655);e.exports=function(e,t,n){var o=this||i;return r.forEach(n,(function(n){e=n.call(o,e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4155),i=n(4867),o=n(6016),s=n(481),a={"Content-Type":"application/x-www-form-urlencoded"};function c(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,h={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==r&&"[object process]"===Object.prototype.toString.call(r))&&(l=n(5448)),l),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(c(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)||t&&"application/json"===t["Content-Type"]?(c(t,"application/json"),function(e,t,n){if(i.isString(e))try{return(0,JSON.parse)(e),i.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||h.transitional,n=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,o=!n&&"json"===this.responseType;if(o||r&&i.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw s(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i.forEach(["delete","get","head"],(function(e){h.headers[e]={}})),i.forEach(["post","put","patch"],(function(e){h.headers[e]=i.merge(a)})),e.exports=h},7288:e=>{e.exports={version:"0.24.0"}},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(r.isURLSearchParams(t))o=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(i(t)+"="+i(e))})))})),o=s.join("&")}if(o){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,i,o,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(i)&&a.push("path="+i),r.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=i(window.location.href),function(t){var n=r.isString(t)?i(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,s={};return e?(r.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(s[t]&&i.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var r=n(5108),i=n(7288).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var s={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+i+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,i,a){if(!1===e)throw new Error(o(i," has been removed"+(t?" in "+t:"")));return t&&!s[i]&&(s[i]=!0,r.warn(o(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),i=r.length;i-- >0;){var o=r[i],s=t[o];if(s){var a=e[o],c=void 0===a||s(a,o,e);if(!0!==c)throw new TypeError("option "+o+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+o)}},validators:o}},4867:(e,t,n)=>{"use strict";var r=n(1849),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===i.call(e)}function h(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n{"use strict";var r=n(9509).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,h=new Uint8Array(s);e[n];){var u=t[e.charCodeAt(n)];if(255===u)return;for(var d=0,f=s-1;(0!==u||d>>0,h[f]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");o=d,n++}for(var p=s-o;p!==s&&0===h[p];)p++;var g=r.allocUnsafe(i+(s-p));g.fill(0,0,i);for(var y=i;p!==s;)g[y++]=h[p++];return g}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=r.from(t)),!r.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,i=0,o=0,s=t.length;o!==s&&0===t[o];)o++,n++;for(var l=(s-o)*h+1>>>0,u=new Uint8Array(l);o!==s;){for(var d=t[o],f=0,p=l-1;(0!==d||f>>0,u[p]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");i=f,o++}for(var g=l-i;g!==l&&0===u[g];)g++;for(var y=c.repeat(n);g{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=a(e),s=o[0],c=o[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,s,c)),h=0,u=c>0?s-4:s;for(n=0;n>16&255,l[h++]=t>>8&255,l[h++]=255&t;return 2===c&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,l[h++]=255&t),1===c&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,l[h++]=t>>8&255,l[h++]=255&t),l},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],s=16383,a=0,l=r-i;al?l:a+s));return 1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],r[o.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function c(e,t,r){for(var i,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},8442:(e,t,n)=>{const r=n(9488);function i(e,t,n){const r=e[t]+e[n];let i=e[t+1]+e[n+1];r>=4294967296&&i++,e[t]=r,e[t+1]=i}function o(e,t,n,r){let i=e[t]+n;n<0&&(i+=4294967296);let o=e[t+1]+r;i>=4294967296&&o++,e[t]=i,e[t+1]=o}function s(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function a(e,t,n,r,s,a){const c=u[s],l=u[s+1],d=u[a],f=u[a+1];i(h,e,t),o(h,e,c,l);let p=h[r]^h[e],g=h[r+1]^h[e+1];h[r]=g,h[r+1]=p,i(h,n,r),p=h[t]^h[n],g=h[t+1]^h[n+1],h[t]=p>>>24^g<<8,h[t+1]=g>>>24^p<<8,i(h,e,t),o(h,e,d,f),p=h[r]^h[e],g=h[r+1]^h[e+1],h[r]=p>>>16^g<<16,h[r+1]=g>>>16^p<<16,i(h,n,r),p=h[t]^h[n],g=h[t+1]^h[n+1],h[t]=g>>>31^p<<1,h[t+1]=p>>>31^g<<1}const c=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),l=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((function(e){return 2*e}))),h=new Uint32Array(32),u=new Uint32Array(32);function d(e,t){let n=0;for(n=0;n<16;n++)h[n]=e.h[n],h[n+16]=c[n];for(h[24]=h[24]^e.t,h[25]=h[25]^e.t/4294967296,t&&(h[28]=~h[28],h[29]=~h[29]),n=0;n<32;n++)u[n]=s(e.b,4*n);for(n=0;n<12;n++)a(0,8,16,24,l[16*n+0],l[16*n+1]),a(2,10,18,26,l[16*n+2],l[16*n+3]),a(4,12,20,28,l[16*n+4],l[16*n+5]),a(6,14,22,30,l[16*n+6],l[16*n+7]),a(0,10,20,30,l[16*n+8],l[16*n+9]),a(2,12,22,24,l[16*n+10],l[16*n+11]),a(4,14,16,26,l[16*n+12],l[16*n+13]),a(6,8,18,28,l[16*n+14],l[16*n+15]);for(n=0;n<16;n++)e.h[n]=e.h[n]^h[n]^h[n+16]}const f=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function p(e,t,n,r){if(0===e||e>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(t&&t.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&16!==n.length)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(r&&16!==r.length)throw new Error("Illegal personal, expected Uint8Array with length is 16");const i={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:e};f.fill(0),f[0]=e,t&&(f[1]=t.length),f[2]=1,f[3]=1,n&&f.set(n,32),r&&f.set(r,48);for(let e=0;e<16;e++)i.h[e]=c[e]^s(f,4*e);return t&&(g(i,t),i.c=128),i}function g(e,t){for(let n=0;n>2]>>8*(3&n);return t}function b(e,t,n,i,o){n=n||64,e=r.normalizeInput(e),i&&(i=r.normalizeInput(i)),o&&(o=r.normalizeInput(o));const s=p(n,t,i,o);return g(s,e),y(s)}e.exports={blake2b:b,blake2bHex:function(e,t,n,i,o){const s=b(e,t,n,i,o);return r.toHex(s)},blake2bInit:p,blake2bUpdate:g,blake2bFinal:y}},5297:(e,t,n)=>{const r=n(9488);function i(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function o(e,t,n,r,i,o){l[e]=l[e]+l[t]+i,l[r]=s(l[r]^l[e],16),l[n]=l[n]+l[r],l[t]=s(l[t]^l[n],12),l[e]=l[e]+l[t]+o,l[r]=s(l[r]^l[e],8),l[n]=l[n]+l[r],l[t]=s(l[t]^l[n],7)}function s(e,t){return e>>>t^e<<32-t}const a=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),c=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),l=new Uint32Array(16),h=new Uint32Array(16);function u(e,t){let n=0;for(n=0;n<8;n++)l[n]=e.h[n],l[n+8]=a[n];for(l[12]^=e.t,l[13]^=e.t/4294967296,t&&(l[14]=~l[14]),n=0;n<16;n++)h[n]=i(e.b,4*n);for(n=0;n<10;n++)o(0,4,8,12,h[c[16*n+0]],h[c[16*n+1]]),o(1,5,9,13,h[c[16*n+2]],h[c[16*n+3]]),o(2,6,10,14,h[c[16*n+4]],h[c[16*n+5]]),o(3,7,11,15,h[c[16*n+6]],h[c[16*n+7]]),o(0,5,10,15,h[c[16*n+8]],h[c[16*n+9]]),o(1,6,11,12,h[c[16*n+10]],h[c[16*n+11]]),o(2,7,8,13,h[c[16*n+12]],h[c[16*n+13]]),o(3,4,9,14,h[c[16*n+14]],h[c[16*n+15]]);for(n=0;n<8;n++)e.h[n]^=l[n]^l[n+8]}function d(e,t){if(!(e>0&&e<=32))throw new Error("Incorrect output length, should be in [1, 32]");const n=t?t.length:0;if(t&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(a),b:new Uint8Array(64),c:0,t:0,outlen:e};return r.h[0]^=16842752^n<<8^e,n>0&&(f(r,t),r.c=64),r}function f(e,t){for(let n=0;n>2]>>8*(3&n)&255;return t}function g(e,t,n){n=n||32,e=r.normalizeInput(e);const i=d(n,t);return f(i,e),p(i)}e.exports={blake2s:g,blake2sHex:function(e,t,n){const i=g(e,t,n);return r.toHex(i)},blake2sInit:d,blake2sUpdate:f,blake2sFinal:p}},1191:(e,t,n)=>{const r=n(8442),i=n(5297);e.exports={blake2b:r.blake2b,blake2bHex:r.blake2bHex,blake2bInit:r.blake2bInit,blake2bUpdate:r.blake2bUpdate,blake2bFinal:r.blake2bFinal,blake2s:i.blake2s,blake2sHex:i.blake2sHex,blake2sInit:i.blake2sInit,blake2sUpdate:i.blake2sUpdate,blake2sFinal:i.blake2sFinal}},9488:(e,t,n)=>{var r=n(5108);function i(e){return(4294967296+e).toString(16).substring(1)}e.exports={normalizeInput:function(e){let t;if(e instanceof Uint8Array)t=e;else{if("string"!=typeof e)throw new Error("Input must be an string, Buffer or Uint8Array");t=(new TextEncoder).encode(e)}return t},toHex:function(e){return Array.prototype.map.call(e,(function(e){return(e<16?"0":"")+e.toString(16)})).join("")},debugPrint:function(e,t,n){let o="\n"+e+" = ";for(let r=0;r=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function l(e,t,n,r){for(var i=0,o=Math.min(e.length,n),s=t;s=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=c(e,t,r)<=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var o=e.length-n,s=o%r,a=Math.min(o,o-s)+n,c=0,h=n;h1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var h=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var l=1;l>>26,u=67108863&c,d=Math.min(l,t.length-1),f=Math.max(0,l-e.length+1);f<=d;f++){var p=l-f|0;h+=(s=(i=0|e.words[p])*(o=0|t.words[f])+u)/67108864|0,u=67108863&s}n.words[l]=0|u,c=0|h}return 0!==c?n.words[l]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?h[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=u[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?g+n:h[l-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,l=new e(o),h=this.clone();if(c){for(a=0;!h.isZero();a++)s=h.andln(255),h.iushrn(8),l[a]=s;for(;a=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var o=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==o&&s>26,this.words[s]=67108863&t;if(0===o&&s>>13,f=0|s[1],p=8191&f,g=f>>>13,y=0|s[2],b=8191&y,m=y>>>13,v=0|s[3],w=8191&v,E=v>>>13,S=0|s[4],I=8191&S,R=S>>>13,A=0|s[5],x=8191&A,M=A>>>13,T=0|s[6],O=8191&T,P=T>>>13,N=0|s[7],k=8191&N,C=N>>>13,U=0|s[8],L=8191&U,j=U>>>13,z=0|s[9],K=8191&z,q=z>>>13,D=0|a[0],B=8191&D,W=D>>>13,F=0|a[1],V=8191&F,H=F>>>13,G=0|a[2],J=8191&G,Z=G>>>13,Y=0|a[3],Q=8191&Y,X=Y>>>13,_=0|a[4],$=8191&_,ee=_>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ce=8191&ae,le=ae>>>13,he=0|a[8],ue=8191&he,de=he>>>13,fe=0|a[9],pe=8191&fe,ge=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(r=Math.imul(u,B))|0)+((8191&(i=(i=Math.imul(u,W))+Math.imul(d,B)|0))<<13)|0;l=((o=Math.imul(d,W))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,B),i=(i=Math.imul(p,W))+Math.imul(g,B)|0,o=Math.imul(g,W);var be=(l+(r=r+Math.imul(u,V)|0)|0)+((8191&(i=(i=i+Math.imul(u,H)|0)+Math.imul(d,V)|0))<<13)|0;l=((o=o+Math.imul(d,H)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,B),i=(i=Math.imul(b,W))+Math.imul(m,B)|0,o=Math.imul(m,W),r=r+Math.imul(p,V)|0,i=(i=i+Math.imul(p,H)|0)+Math.imul(g,V)|0,o=o+Math.imul(g,H)|0;var me=(l+(r=r+Math.imul(u,J)|0)|0)+((8191&(i=(i=i+Math.imul(u,Z)|0)+Math.imul(d,J)|0))<<13)|0;l=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(w,B),i=(i=Math.imul(w,W))+Math.imul(E,B)|0,o=Math.imul(E,W),r=r+Math.imul(b,V)|0,i=(i=i+Math.imul(b,H)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,H)|0,r=r+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(g,J)|0,o=o+Math.imul(g,Z)|0;var ve=(l+(r=r+Math.imul(u,Q)|0)|0)+((8191&(i=(i=i+Math.imul(u,X)|0)+Math.imul(d,Q)|0))<<13)|0;l=((o=o+Math.imul(d,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(I,B),i=(i=Math.imul(I,W))+Math.imul(R,B)|0,o=Math.imul(R,W),r=r+Math.imul(w,V)|0,i=(i=i+Math.imul(w,H)|0)+Math.imul(E,V)|0,o=o+Math.imul(E,H)|0,r=r+Math.imul(b,J)|0,i=(i=i+Math.imul(b,Z)|0)+Math.imul(m,J)|0,o=o+Math.imul(m,Z)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(g,Q)|0,o=o+Math.imul(g,X)|0;var we=(l+(r=r+Math.imul(u,$)|0)|0)+((8191&(i=(i=i+Math.imul(u,ee)|0)+Math.imul(d,$)|0))<<13)|0;l=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(x,B),i=(i=Math.imul(x,W))+Math.imul(M,B)|0,o=Math.imul(M,W),r=r+Math.imul(I,V)|0,i=(i=i+Math.imul(I,H)|0)+Math.imul(R,V)|0,o=o+Math.imul(R,H)|0,r=r+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(E,J)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,X)|0,r=r+Math.imul(p,$)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,$)|0,o=o+Math.imul(g,ee)|0;var Ee=(l+(r=r+Math.imul(u,ne)|0)|0)+((8191&(i=(i=i+Math.imul(u,re)|0)+Math.imul(d,ne)|0))<<13)|0;l=((o=o+Math.imul(d,re)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(O,B),i=(i=Math.imul(O,W))+Math.imul(P,B)|0,o=Math.imul(P,W),r=r+Math.imul(x,V)|0,i=(i=i+Math.imul(x,H)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,H)|0,r=r+Math.imul(I,J)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(R,J)|0,o=o+Math.imul(R,Z)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,X)|0,r=r+Math.imul(b,$)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(g,ne)|0,o=o+Math.imul(g,re)|0;var Se=(l+(r=r+Math.imul(u,oe)|0)|0)+((8191&(i=(i=i+Math.imul(u,se)|0)+Math.imul(d,oe)|0))<<13)|0;l=((o=o+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(k,B),i=(i=Math.imul(k,W))+Math.imul(C,B)|0,o=Math.imul(C,W),r=r+Math.imul(O,V)|0,i=(i=i+Math.imul(O,H)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,H)|0,r=r+Math.imul(x,J)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(M,J)|0,o=o+Math.imul(M,Z)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,X)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,X)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(m,ne)|0,o=o+Math.imul(m,re)|0,r=r+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Ie=(l+(r=r+Math.imul(u,ce)|0)|0)+((8191&(i=(i=i+Math.imul(u,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((o=o+Math.imul(d,le)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,B),i=(i=Math.imul(L,W))+Math.imul(j,B)|0,o=Math.imul(j,W),r=r+Math.imul(k,V)|0,i=(i=i+Math.imul(k,H)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,H)|0,r=r+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,X)|0,r=r+Math.imul(I,$)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(E,ne)|0,o=o+Math.imul(E,re)|0,r=r+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,le)|0)+Math.imul(g,ce)|0,o=o+Math.imul(g,le)|0;var Re=(l+(r=r+Math.imul(u,ue)|0)|0)+((8191&(i=(i=i+Math.imul(u,de)|0)+Math.imul(d,ue)|0))<<13)|0;l=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(K,B),i=(i=Math.imul(K,W))+Math.imul(q,B)|0,o=Math.imul(q,W),r=r+Math.imul(L,V)|0,i=(i=i+Math.imul(L,H)|0)+Math.imul(j,V)|0,o=o+Math.imul(j,H)|0,r=r+Math.imul(k,J)|0,i=(i=i+Math.imul(k,Z)|0)+Math.imul(C,J)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,X)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,X)|0,r=r+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(R,ne)|0,o=o+Math.imul(R,re)|0,r=r+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,se)|0,r=r+Math.imul(b,ce)|0,i=(i=i+Math.imul(b,le)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,le)|0,r=r+Math.imul(p,ue)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(g,ue)|0,o=o+Math.imul(g,de)|0;var Ae=(l+(r=r+Math.imul(u,pe)|0)|0)+((8191&(i=(i=i+Math.imul(u,ge)|0)+Math.imul(d,pe)|0))<<13)|0;l=((o=o+Math.imul(d,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(K,V),i=(i=Math.imul(K,H))+Math.imul(q,V)|0,o=Math.imul(q,H),r=r+Math.imul(L,J)|0,i=(i=i+Math.imul(L,Z)|0)+Math.imul(j,J)|0,o=o+Math.imul(j,Z)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,X)|0,r=r+Math.imul(O,$)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(M,ne)|0,o=o+Math.imul(M,re)|0,r=r+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(E,ce)|0,o=o+Math.imul(E,le)|0,r=r+Math.imul(b,ue)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(m,ue)|0,o=o+Math.imul(m,de)|0;var xe=(l+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;l=((o=o+Math.imul(g,ge)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(K,J),i=(i=Math.imul(K,Z))+Math.imul(q,J)|0,o=Math.imul(q,Z),r=r+Math.imul(L,Q)|0,i=(i=i+Math.imul(L,X)|0)+Math.imul(j,Q)|0,o=o+Math.imul(j,X)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(P,ne)|0,o=o+Math.imul(P,re)|0,r=r+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,le)|0)+Math.imul(R,ce)|0,o=o+Math.imul(R,le)|0,r=r+Math.imul(w,ue)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(E,ue)|0,o=o+Math.imul(E,de)|0;var Me=(l+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(m,pe)|0))<<13)|0;l=((o=o+Math.imul(m,ge)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(K,Q),i=(i=Math.imul(K,X))+Math.imul(q,Q)|0,o=Math.imul(q,X),r=r+Math.imul(L,$)|0,i=(i=i+Math.imul(L,ee)|0)+Math.imul(j,$)|0,o=o+Math.imul(j,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(C,ne)|0,o=o+Math.imul(C,re)|0,r=r+Math.imul(O,oe)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,r=r+Math.imul(x,ce)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(M,ce)|0,o=o+Math.imul(M,le)|0,r=r+Math.imul(I,ue)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(R,ue)|0,o=o+Math.imul(R,de)|0;var Te=(l+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ge)|0)+Math.imul(E,pe)|0))<<13)|0;l=((o=o+Math.imul(E,ge)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(K,$),i=(i=Math.imul(K,ee))+Math.imul(q,$)|0,o=Math.imul(q,ee),r=r+Math.imul(L,ne)|0,i=(i=i+Math.imul(L,re)|0)+Math.imul(j,ne)|0,o=o+Math.imul(j,re)|0,r=r+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,se)|0,r=r+Math.imul(O,ce)|0,i=(i=i+Math.imul(O,le)|0)+Math.imul(P,ce)|0,o=o+Math.imul(P,le)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(M,ue)|0,o=o+Math.imul(M,de)|0;var Oe=(l+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,ge)|0)+Math.imul(R,pe)|0))<<13)|0;l=((o=o+Math.imul(R,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(K,ne),i=(i=Math.imul(K,re))+Math.imul(q,ne)|0,o=Math.imul(q,re),r=r+Math.imul(L,oe)|0,i=(i=i+Math.imul(L,se)|0)+Math.imul(j,oe)|0,o=o+Math.imul(j,se)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(C,ce)|0,o=o+Math.imul(C,le)|0,r=r+Math.imul(O,ue)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(P,ue)|0,o=o+Math.imul(P,de)|0;var Pe=(l+(r=r+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,ge)|0)+Math.imul(M,pe)|0))<<13)|0;l=((o=o+Math.imul(M,ge)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(K,oe),i=(i=Math.imul(K,se))+Math.imul(q,oe)|0,o=Math.imul(q,se),r=r+Math.imul(L,ce)|0,i=(i=i+Math.imul(L,le)|0)+Math.imul(j,ce)|0,o=o+Math.imul(j,le)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(C,ue)|0,o=o+Math.imul(C,de)|0;var Ne=(l+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,ge)|0)+Math.imul(P,pe)|0))<<13)|0;l=((o=o+Math.imul(P,ge)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(K,ce),i=(i=Math.imul(K,le))+Math.imul(q,ce)|0,o=Math.imul(q,le),r=r+Math.imul(L,ue)|0,i=(i=i+Math.imul(L,de)|0)+Math.imul(j,ue)|0,o=o+Math.imul(j,de)|0;var ke=(l+(r=r+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,ge)|0)+Math.imul(C,pe)|0))<<13)|0;l=((o=o+Math.imul(C,ge)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(K,ue),i=(i=Math.imul(K,de))+Math.imul(q,ue)|0,o=Math.imul(q,de);var Ce=(l+(r=r+Math.imul(L,pe)|0)|0)+((8191&(i=(i=i+Math.imul(L,ge)|0)+Math.imul(j,pe)|0))<<13)|0;l=((o=o+Math.imul(j,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Ue=(l+(r=Math.imul(K,pe))|0)+((8191&(i=(i=Math.imul(K,ge))+Math.imul(q,pe)|0))<<13)|0;return l=((o=Math.imul(q,ge))+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863,c[0]=ye,c[1]=be,c[2]=me,c[3]=ve,c[4]=we,c[5]=Ee,c[6]=Se,c[7]=Ie,c[8]=Re,c[9]=Ae,c[10]=xe,c[11]=Me,c[12]=Te,c[13]=Oe,c[14]=Pe,c[15]=Ne,c[16]=ke,c[17]=Ce,c[18]=Ue,0!==l&&(c[19]=l,n.length++),n};function g(e,t,n){return(new y).mulp(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=f),o.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):r<63?f(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n.strip()}(this,e,t):g(this,e,t),n},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s>=26,t+=i/67108864|0,t+=o>>>26,this.words[n]=67108863&o}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,l=0;l=0&&(0!==h||l>=i);l--){var u=0|this.words[l];this.words[l]=h<<26-o|u>>>o,h=u&a}return c&&0!==h&&(c.words[c.length++]=h),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i>26,this.words[i+n]=67108863&o;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!=(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l=0;u--){var d=67108864*(0|r.words[i.length+u])+(0|r.words[i.length+u-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,u);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,u),r.isZero()||(r.negative^=1);a&&(a.words[u]=d)}return a&&a.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var h=n.clone(),u=t.clone();!t.isZero();){for(var d=0,f=1;0==(t.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(h),s.isub(u)),i.iushrn(1),s.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(h),c.isub(u)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a,b:c,gcd:n.iushln(l)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,h=1;0==(t.words[0]&h)&&l<26;++l,h<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var u=0,d=1;0==(n.words[0]&d)&&u<26;++u,d<<=1);if(u>0)for(n.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var o=t;t=n,n=o}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function R(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},i(v,m),v.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,o=s}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new E;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},I.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),h=this.m.bitLength();for(h=new o(2*h*h).toRed(this);0!==this.pow(h,l).cmp(c);)h.redIAdd(c);for(var u=this.pow(h,i),d=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var g=f,y=0;0!==g.cmp(a);y++)g=g.redSqr();r(y=0;r--){for(var l=t.words[r],h=c-1;h>=0;h--){var u=l>>h&1;i!==n[0]&&(i=this.sqr(i)),0!==u||0!==s?(s<<=1,s|=u,(4==++a||0===r&&0===h)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new R(e)},i(R,I),R.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},R.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},R.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},R.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},R.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},9931:(e,t,n)=>{var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n{var r=n(8162);e.exports=r("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},3310:(e,t,n)=>{"use strict";var r=n(7191),i=n(9509).Buffer;e.exports=function(e){function t(t){var n=t.slice(0,-4),r=t.slice(-4),i=e(n);if(!(r[0]^i[0]|r[1]^i[1]|r[2]^i[2]|r[3]^i[3]))return n}return{encode:function(t){var n=e(t);return r.encode(i.concat([t,n],t.length+4))},decode:function(e){var n=t(r.decode(e));if(!n)throw new Error("Invalid checksum");return n},decodeUnsafe:function(e){var n=r.decodeUnsafe(e);if(n)return t(n)}}}},8334:(e,t,n)=>{"use strict";var r=n(3482),i=n(3310);e.exports=i((function(e){var t=r("sha256").update(e).digest();return r("sha256").update(t).digest()}))},8764:(e,t,n)=>{"use strict";var r=n(5108);const i=n(9742),o=n(645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){return+e!=e&&(e=0),l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function c(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return h(e,t,n)}function h(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|y(e,t);let r=c(n);const i=r.write(e,t);return i!==n&&(r=r.slice(0,i)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Q(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Q(e,ArrayBuffer)||e&&Q(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Q(e,SharedArrayBuffer)||e&&Q(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const i=function(e){if(l.isBuffer(e)){const t=0|g(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||X(e.length)?c(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return u(e),c(e<0?0:0|g(e))}function f(e){const t=e.length<0?0:0|g(e.length),n=c(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function y(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return J(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Z(e).length;default:if(i)return r?-1:J(e).length;t=(""+t).toLowerCase(),i=!0}}function b(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return M(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){let o,s=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let r=-1;for(o=n;oa&&(n=a-c),o=n;o>=0;o--){let n=!0;for(let r=0;ri&&(r=i):r=i;const o=t.length;let s;for(r>o/2&&(r=o/2),s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function M(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=n){let n,r,a,c;switch(s){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(o=c));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(c=(15&t)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=e[i+1],r=e[i+2],a=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},l.byteLength=y,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,i){if(Q(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(o,s),c=this.slice(r,i),h=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":case"latin1":case"binary":return I(this,e,t,n);case"base64":return R(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function O(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,n,r,i,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function L(e,t,n,r,i){F(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function j(e,t,n,r,i){F(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function z(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function K(e,t,n,r,i){return t=+t,n>>>=0,i||z(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function q(e,t,n,r,i){return t=+t,n>>>=0,i||z(e,0,n,8),o.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=$((function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e],i=1,o=0;for(;++o=i&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||C(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||C(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||C(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=$((function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||C(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||C(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||C(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||C(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||U(this,e,t,n,Math.pow(2,8*n)-1,0);let i=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,r||U(this,e,t,n,Math.pow(2,8*n)-1,0);let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=$((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=$((function(e,t=0){return j(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}let i=0,o=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}let i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=$((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=$((function(e,t=0){return j(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return K(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return K(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return q(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return q(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function F(e,t,n,r,i,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new D.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||H(t,e.length-(n+1))}(r,i,o)}function V(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function H(e,t,n){if(Math.floor(e)!==e)throw V(e,n),new D.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}B("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),B("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),B("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=W(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=W(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function J(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function Z(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const _=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function $(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},1924:(e,t,n)=>{"use strict";var r=n(210),i=n(5559),o=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&o(e,".prototype.")>-1?i(n):n}},5559:(e,t,n)=>{"use strict";var r=n(8612),i=n(210),o=i("%Function.prototype.apply%"),s=i("%Function.prototype.call%"),a=i("%Reflect.apply%",!0)||r.call(s,o),c=i("%Object.getOwnPropertyDescriptor%",!0),l=i("%Object.defineProperty%",!0),h=i("%Math.max%");if(l)try{l({},"a",{value:1})}catch(e){l=null}e.exports=function(e){var t=a(r,s,arguments);return c&&l&&c(t,"length").configurable&&l(t,"length",{value:1+h(0,e.length-(arguments.length-1))}),t};var u=function(){return a(r,o,arguments)};l?l(e.exports,"apply",{value:u}):e.exports.apply=u},1027:(e,t,n)=>{var r=n(9509).Buffer,i=n(2830).Transform,o=n(2553).s;function s(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(5717)(s,i),s.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=s},5108:(e,t,n)=>{var r=n(9539),i=n(9282);function o(){return(new Date).getTime()}var s,a=Array.prototype.slice,c={};s=void 0!==n.g&&n.g.console?n.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var l=[[function(){},"log"],[function(){s.log.apply(s,arguments)},"info"],[function(){s.log.apply(s,arguments)},"warn"],[function(){s.warn.apply(s,arguments)},"error"],[function(e){c[e]=o()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=o()-t;s.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),s.error(e.stack)},"trace"],[function(e){s.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);i.ok(!1,r.format.apply(null,t))}},"assert"]],h=0;h{"use strict";var r=n(5717),i=n(2318),o=n(9785),s=n(9072),a=n(1027);function c(e){a.call(this,"digest"),this._hash=e}r(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new o:new c(s(e))}},4020:e=>{"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),r=new RegExp("("+t+")+","gi");function i(e,t){try{return[decodeURIComponent(e.join(""))]}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],i(n),i(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n)||[],r=1;r{"use strict";var r=n(2215),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),o=Object.prototype.toString,s=Array.prototype.concat,a=Object.defineProperty,c=n(1044)(),l=a&&c,h=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!=typeof(i=r)||"[object Function]"!==o.call(i)||!r())return;var i;l?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},u=function(e,t){var n=arguments.length>2?arguments[2]:{},o=r(t);i&&(o=s.call(o,Object.getOwnPropertySymbols(t)));for(var a=0;a{"use strict";var r=t;r.version=n(8597).i8,r.utils=n(953),r.rand=n(9931),r.curve=n(8254),r.curves=n(5427),r.ec=n(7954),r.eddsa=n(5980)},4918:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.getNAF,s=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),r=o(t,1,this._bitLength),i=(1<=s;h--)c=(c<<1)+r[h];l.push(c)}for(var u=this.jpoint(null,null,null),d=this.jpoint(null,null,null),f=i;f>0;f--){for(s=0;s=0;l--){for(var h=0;l>=0&&0===s[l];l--)h++;if(l>=0&&h++,c=c.dblp(h),l<0)break;var u=s[l];a(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){var a,c,l,h=this._wnafT1,u=this._wnafT2,d=this._wnafT3,f=0;for(a=0;a=1;a-=2){var g=a-1,y=a;if(1===h[g]&&1===h[y]){var b=[t[g],null,null,t[y]];0===t[g].y.cmp(t[y].y)?(b[1]=t[g].add(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg())):0===t[g].y.cmp(t[y].y.redNeg())?(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].add(t[y].neg())):(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[g],n[y]);for(f=Math.max(v[0].length,f),d[g]=new Array(f),d[y]=new Array(f),c=0;c=0;a--){for(var R=0;a>=0;){var A=!0;for(c=0;c=0&&R++,S=S.dblp(R),a<0)break;for(c=0;c0?l=u[c][x-1>>1]:x<0&&(l=u[c][-x-1>>1].neg()),S="affine"===l.type?S.mixedAdd(l):S.add(l))}}for(a=0;a=Math.ceil((e.bitLength()+1)/t.step)},l.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i{"use strict";var r=n(953),i=n(3550),o=n(5717),s=n(4918),a=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function l(e,t,n,r,o){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(c,s),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},o(l,s.BasePoint),c.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new l(this,e,t,n,r)},l.fromJSON=function(e,t){return new l(e,t[0],t[1],t[2])},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=r.redAdd(t),s=o.redSub(n),a=r.redSub(t),c=i.redMul(s),l=o.redMul(a),h=i.redMul(a),u=s.redMul(o);return this.curve.point(c,l,u,h)},l.prototype._projDbl=function(){var e,t,n,r,i,o,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var l=(r=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(l.redSub(this.curve.two)),t=l.redMul(r.redSub(c)),n=l.redSqr().redSub(l).redSub(l)):(i=this.z.redSqr(),o=l.redSub(i).redISub(i),e=s.redSub(a).redISub(c).redMul(o),t=l.redMul(r.redSub(c)),n=l.redMul(o))}else r=a.redAdd(c),i=this.curve._mulC(this.z).redSqr(),o=r.redSub(i).redSub(i),e=this.curve._mulC(s.redISub(r)).redMul(o),t=this.curve._mulC(r).redMul(a.redISub(c)),n=r.redMul(o);return this.curve.point(e,t,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(t),s=i.redSub(r),a=i.redAdd(r),c=n.redAdd(t),l=o.redMul(s),h=a.redMul(c),u=o.redMul(c),d=s.redMul(a);return this.curve.point(l,h,d,u)},l.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),o=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(o).redMul(s),c=i.redSub(a),l=i.redAdd(a),h=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(s),u=r.redMul(c).redMul(h);return this.curve.twisted?(t=r.redMul(l).redMul(s.redSub(this.curve._mulA(o))),n=c.redMul(l)):(t=r.redMul(l).redMul(s.redSub(o)),n=this.curve._mulC(c).redMul(l)),this.curve.point(u,t,n)},l.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},l.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},l.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},l.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},8254:(e,t,n)=>{"use strict";var r=t;r.base=n(4918),r.short=n(6673),r.mont=n(2881),r.edwards=n(1138)},2881:(e,t,n)=>{"use strict";var r=n(3550),i=n(5717),o=n(4918),s=n(953);function a(e){o.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){o.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,o.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(n),s=i.redMul(r),a=t.z.redMul(o.redAdd(s).redSqr()),c=t.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,n)=>{"use strict";var r=n(953),i=n(3550),o=n(5717),s=n(4918),a=r.assert;function c(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function h(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(c,s),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,o,s,a,c,l,h,u=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new i(1),g=new i(0),y=new i(0),b=new i(1),m=0;0!==d.cmpn(0);){var v=f.div(d);l=f.sub(v.mul(d)),h=y.sub(v.mul(p));var w=b.sub(v.mul(g));if(!r&&l.cmp(u)<0)t=c.neg(),n=p,r=l.neg(),o=h;else if(r&&2==++m)break;c=l,f=d,d=l,y=p,p=h,b=g,g=w}s=l.neg(),a=h;var E=r.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(E)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:o},{a:s,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),c=i.mul(n.b),l=o.mul(r.b);return{k1:e.sub(s).sub(a),k2:c.add(l).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(t&&!o||!t&&o)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},l.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},l.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},l.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},l.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},l.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(h,s.BasePoint),c.prototype.jpoint=function(e,t,n){return new h(this,e,t,n)},h.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},h.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},h.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),h=l.redMul(a),u=r.redMul(l),d=c.redSqr().redIAdd(h).redISub(u).redISub(u),f=c.redMul(u.redISub(d)).redISub(o.redMul(h)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(d,f,p)},h.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),h=n.redMul(c),u=a.redSqr().redIAdd(l).redISub(h).redISub(h),d=a.redMul(h.redISub(u)).redISub(i.redMul(l)),f=this.z.redMul(s);return this.curve.jpoint(u,d,f)},h.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},h.prototype.inspect=function(){return this.isInfinity()?"":""},h.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},5427:(e,t,n)=>{"use strict";var r,i=t,o=n(3715),s=n(8254),a=n(953).assert;function c(e){"short"===e.type?this.curve=new s.short(e):"edwards"===e.type?this.curve=new s.edwards(e):this.curve=new s.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function l(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(1037)}catch(e){r=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},7954:(e,t,n)=>{"use strict";var r=n(3550),i=n(2156),o=n(953),s=n(5427),a=n(9931),c=o.assert,l=n(1251),h=n(611);function u(e){if(!(this instanceof u))return new u(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=u,u.prototype.keyPair=function(e){return new l(this,e)},u.prototype.keyFromPrivate=function(e,t){return l.fromPrivate(this,e,t)},u.prototype.keyFromPublic=function(e,t){return l.fromPublic(this,e,t)},u.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new r(2));;){var s=new r(t.generate(n));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},u.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},u.prototype.sign=function(e,t,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),c=e.toArray("be",s),l=new i({hash:this.hash,entropy:a,nonce:c,pers:o.pers,persEnc:o.persEnc||"utf8"}),u=this.n.sub(new r(1)),d=0;;d++){var f=o.k?o.k(d):new r(l.generate(this.n.byteLength()));if(!((f=this._truncateToN(f,!0)).cmpn(1)<=0||f.cmp(u)>=0)){var p=this.g.mul(f);if(!p.isInfinity()){var g=p.getX(),y=g.umod(this.n);if(0!==y.cmpn(0)){var b=f.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==g.cmp(y)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),m^=1),new h({r:y,s:b,recoveryParam:m})}}}}}},u.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var o=(t=new h(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),l=c.mul(e).umod(this.n),u=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,n.getPublic(),u)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,n.getPublic(),u)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},u.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new h(t,i);var o=this.n,s=new r(e),a=t.r,l=t.s,u=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),u):this.curve.pointFromX(a,u);var f=t.r.invm(o),p=o.sub(s).mul(f).umod(o),g=l.mul(f).umod(o);return this.g.mulAdd(p,a,g)},u.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new h(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},1251:(e,t,n)=>{"use strict";var r=n(3550),i=n(953).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,n){return t instanceof o?t:new o(e,{pub:t,pubEnc:n})},o.fromPrivate=function(e,t,n){return t instanceof o?t:new o(e,{priv:t,privEnc:n})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},o.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return""}},611:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,o=0,s=t.place;o>>=0;return!(i<=127)&&(t.place=s,i)}function l(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;var o=c(e,n);if(!1===o)return!1;if(o+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=c(e,n);if(!1===s)return!1;var l=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var h=c(e,n);if(!1===h)return!1;if(e.length!==h+n.place)return!1;var u=e.slice(n.place,h+n.place);if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}return this.r=new r(l),this.s=new r(u),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=l(t),n=l(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];h(r,t.length),(r=r.concat(t)).push(2),h(r,n.length);var o=r.concat(n),s=[48];return h(s,o.length),s=s.concat(o),i.encode(s,e)}},5980:(e,t,n)=>{"use strict";var r=n(3715),i=n(5427),o=n(953),s=o.assert,a=o.parseBytes,c=n(9087),l=n(3622);function h(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof h))return new h(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=h,h.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),o=this.encodePoint(i),s=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),c=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:o})},h.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(o)},h.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var r=n(953),i=r.assert,o=r.parseBytes,s=r.cachedProperty;function a(e,t){this.eddsa=e,this._secret=o(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=o(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},a.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=a},3622:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.assert,s=i.cachedProperty,a=i.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),o(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},1037:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},953:(e,t,n)=>{"use strict";var r=t,i=n(3550),o=n(9746),s=n(4504);r.assert=o,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<(i>>1)-1?(i>>1)-c:c,o.isubn(a)):a=0,r[s]=a,o.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,c=e.andln(3)+i&3,l=t.andln(3)+o&3;3===c&&(c=-1),3===l&&(l=-1),s=0==(1&c)?0:3!=(r=e.andln(7)+i&7)&&5!==r||2!==l?c:-c,n[0].push(s),a=0==(1&l)?0:3!=(r=t.andln(7)+o&7)&&5!==r||2!==c?l:-l,n[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},8091:e=>{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),r=1;r{"use strict";var r,i=n(5108),o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,i)}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var l=10;function h(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function u(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function d(e,t,n,r){var o,s,a,c;if(h(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]),void 0===a)a=s[t]=n,++e._eventsCount;else if("function"==typeof a?a=s[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=u(e))>0&&a.length>o&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,c=l,i&&i.warn&&i.warn(c)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function g(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var l=c.length,h=b(c,l);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return g(this,e,!0)},c.prototype.rawListeners=function(e){return g(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):y.call(e,t)},c.prototype.listenerCount=y,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},4029:(e,t,n)=>{"use strict";var r=n(5320),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=n),"[object Array]"===i.call(e)?function(e,t,n){for(var r=0,i=e.length;r{"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var r=this;if("function"!=typeof r||"[object Function]"!==n.call(r))throw new TypeError("Function.prototype.bind called on incompatible "+r);for(var i,o=t.call(arguments,1),s=Math.max(0,r.length-o.length),a=[],c=0;c{"use strict";var r=n(7648);e.exports=Function.prototype.bind||r},210:(e,t,n)=>{"use strict";var r,i=SyntaxError,o=Function,s=TypeError,a=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var l=function(){throw new s},h=c?function(){try{return l}catch(e){try{return c(arguments,"callee").get}catch(e){return l}}}():l,u=n(1405)(),d=n(8185)(),f=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),p={},g="undefined"!=typeof Uint8Array&&f?f(Uint8Array):r,y={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":u&&f?f([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":p,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":u&&f?f(f([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&u&&f?f((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&u&&f?f((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":u&&f?f(""[Symbol.iterator]()):r,"%Symbol%":u?Symbol:r,"%SyntaxError%":i,"%ThrowTypeError%":h,"%TypedArray%":g,"%TypeError%":s,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet};if(f)try{null.error}catch(e){var b=f(f(e));y["%Error.prototype%"]=b}var m=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&f&&(n=f(i.prototype))}return y[t]=n,n},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(8612),E=n(7642),S=w.call(Function.call,Array.prototype.concat),I=w.call(Function.apply,Array.prototype.splice),R=w.call(Function.call,String.prototype.replace),A=w.call(Function.call,String.prototype.slice),x=w.call(Function.call,RegExp.prototype.exec),M=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,T=/\\(\\)?/g,O=function(e,t){var n,r=e;if(E(v,r)&&(r="%"+(n=v[r])[0]+"%"),E(y,r)){var o=y[r];if(o===p&&(o=m(r)),void 0===o&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new i("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');if(null===x(/^%?[^%]*%?$/,e))throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=A(e,0,1),n=A(e,-1);if("%"===t&&"%"!==n)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new i("invalid intrinsic syntax, expected opening `%`");var r=[];return R(e,M,(function(e,t,n,i){r[r.length]=n?R(i,T,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",o=O("%"+r+"%",t),a=o.name,l=o.value,h=!1,u=o.alias;u&&(r=u[0],I(n,S([0,1],u)));for(var d=1,f=!0;d=n.length){var m=c(l,p);l=(f=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:l[p]}else f=E(l,p),l=l[p];f&&!h&&(y[a]=l)}}return l}},7296:(e,t,n)=>{"use strict";var r=n(210)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},1044:(e,t,n)=>{"use strict";var r=n(210)("%Object.defineProperty%",!0),i=function(){if(r)try{return r({},"a",{value:1}),!0}catch(e){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},8185:e=>{"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},1405:(e,t,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,i=n(5419);e.exports=function(){return"function"==typeof r&&"function"==typeof Symbol&&"symbol"==typeof r("foo")&&"symbol"==typeof Symbol("bar")&&i()}},5419:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},6410:(e,t,n)=>{"use strict";var r=n(5419);e.exports=function(){return r()&&!!Symbol.toStringTag}},7642:(e,t,n)=>{"use strict";var r=n(8612);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},3349:(e,t,n)=>{"use strict";var r=n(9509).Buffer,i=n(8473).Transform;function o(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(5717)(o,i),o.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer")}(e),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},3715:(e,t,n)=>{var r=t;r.utils=n(6436),r.common=n(5772),r.sha=n(9041),r.ripemd=n(2949),r.hmac=n(2344),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},5772:(e,t,n)=>{"use strict";var r=n(6436),i=n(9746);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o{"use strict";var r=n(6436),i=n(9746);function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=o,o.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var r=n(6436),i=n(5772),o=r.rotl32,s=r.sum32,a=r.sum32_3,c=r.sum32_4,l=i.BlockHash;function h(){if(!(this instanceof h))return new h;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function u(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function f(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(h,l),t.ripemd160=h,h.blockSize=512,h.outSize=160,h.hmacStrength=192,h.padLength=64,h.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],l=this.h[3],h=this.h[4],m=n,v=r,w=i,E=l,S=h,I=0;I<80;I++){var R=s(o(c(n,u(I,r,i,l),e[p[I]+t],d(I)),y[I]),h);n=h,h=l,l=o(i,10),i=r,r=R,R=s(o(c(m,u(79-I,v,w,E),e[g[I]+t],f(I)),b[I]),S),m=S,S=E,E=o(w,10),w=v,v=R}R=a(this.h[1],i,E),this.h[1]=a(this.h[2],l,S),this.h[2]=a(this.h[3],h,m),this.h[3]=a(this.h[4],n,v),this.h[4]=a(this.h[0],r,w),this.h[0]=R},h.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},9041:(e,t,n)=>{"use strict";t.sha1=n(4761),t.sha224=n(799),t.sha256=n(9344),t.sha384=n(772),t.sha512=n(5900)},4761:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(7038),s=r.rotl32,a=r.sum32,c=r.sum32_5,l=o.ft_1,h=i.BlockHash,u=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;h.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,h),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),i=n(9344);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},9344:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(7038),s=n(9746),a=r.sum32,c=r.sum32_4,l=r.sum32_5,h=o.ch32,u=o.maj32,d=o.s0_256,f=o.s1_256,p=o.g0_256,g=o.g1_256,y=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(m,y),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),i=n(5900);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},5900:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(9746),s=r.rotr64_hi,a=r.rotr64_lo,c=r.shr64_hi,l=r.shr64_lo,h=r.sum64,u=r.sum64_hi,d=r.sum64_lo,f=r.sum64_4_hi,p=r.sum64_4_lo,g=r.sum64_5_hi,y=r.sum64_5_lo,b=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(e,t,n,r,i){var o=e&n^~e&i;return o<0&&(o+=4294967296),o}function E(e,t,n,r,i,o){var s=t&r^~t&o;return s<0&&(s+=4294967296),s}function S(e,t,n,r,i){var o=e&n^e&i^n&i;return o<0&&(o+=4294967296),o}function I(e,t,n,r,i,o){var s=t&r^t&o^r&o;return s<0&&(s+=4294967296),s}function R(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=a(e,t,14)^a(e,t,18)^a(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=s(e,t,1)^s(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function T(e,t){var n=a(e,t,1)^a(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=a(e,t,19)^a(t,e,29)^l(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436).rotr32;function i(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?o(t,n,r):void 0},t.ch32=i,t.maj32=o,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},6436:(e,t,n)=>{"use strict";var r=n(9746),i=n(5717);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&s|128):o(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],o=r+e[t+1]>>>0,s=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,o,s,a){var c=0,l=t;return c+=(l=l+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,o,s,a){return t+r+o+a>>>0},t.sum64_5_hi=function(e,t,n,r,i,o,s,a,c,l){var h=0,u=t;return h+=(u=u+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,o,s,a,c,l){return t+r+o+a+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},2156:(e,t,n)=>{"use strict";var r=n(3715),i=n(4504),o=n(9746);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var o=[];o.length{t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,c=(1<>1,h=-7,u=n?i-1:0,d=n?-1:1,f=e[t+u];for(u+=d,o=f&(1<<-h)-1,f>>=-h,h+=a;h>0;o=256*o+e[t+u],u+=d,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=r;h>0;s=256*s+e[t+u],u+=d,h-=8);if(0===o)o=1-l;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,r),o-=l}return(f?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,c,l=8*o-i-1,h=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=h):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+u>=1?d/c:d*Math.pow(2,1-u))*c>=2&&(s++,c/=2),s+u>=h?(a=0,s=h):s+u>=1?(a=(t*c-1)*Math.pow(2,i),s+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,i),s=0));i>=8;e[n+f]=255&a,f+=p,a/=256,i-=8);for(s=s<0;e[n+f]=255&s,f+=p,s/=256,l-=8);e[n+f-p]|=128*g}},5717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},2584:(e,t,n)=>{"use strict";var r=n(6410)(),i=n(1924)("Object.prototype.toString"),o=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===i(e)},s=function(e){return!!o(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==i(e)&&"[object Function]"===i(e.callee)},a=function(){return o(arguments)}();o.isLegacyArguments=s,e.exports=a?o:s},5320:e=>{"use strict";var t,n,r=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},i((function(){throw 42}),null,t)}catch(e){e!==n&&(i=null)}else i=null;var o=/^\s*class\b/,s=function(e){try{var t=r.call(e);return o.test(t)}catch(e){return!1}},a=function(e){try{return!s(e)&&(r.call(e),!0)}catch(e){return!1}},c=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,h=!(0 in[,]),u=function(){return!1};if("object"==typeof document){var d=document.all;c.call(d)===c.call(document.all)&&(u=function(e){if((h||!e)&&(void 0===e||"object"==typeof e))try{var t=c.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=i?function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{i(e,null,t)}catch(e){if(e!==n)return!1}return!s(e)&&a(e)}:function(e){if(u(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(l)return a(e);if(s(e))return!1;var t=c.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&a(e)}},8662:(e,t,n)=>{"use strict";var r,i=Object.prototype.toString,o=Function.prototype.toString,s=/^\s*(?:function)?\*/,a=n(6410)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(s.test(o.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===i.call(e);if(!c)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&c(t)}return c(e)===r}},8611:e=>{"use strict";e.exports=function(e){return e!=e}},360:(e,t,n)=>{"use strict";var r=n(5559),i=n(4289),o=n(8611),s=n(9415),a=n(3194),c=r(s(),Number);i(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},9415:(e,t,n)=>{"use strict";var r=n(8611);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},3194:(e,t,n)=>{"use strict";var r=n(4289),i=n(9415);e.exports=function(){var e=i();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},5692:(e,t,n)=>{"use strict";var r=n(4029),i=n(3083),o=n(1924),s=o("Object.prototype.toString"),a=n(6410)(),c=n(7296),l="undefined"==typeof globalThis?n.g:globalThis,h=i(),u=o("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n-1}return!!c&&function(e){var t=!1;return r(f,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},3006:function(e,t){"use strict";var n,r=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IconUI=void 0;const i="kukai-icon";t.IconUI=class{constructor(){n.set(this,(()=>document.getElementById(i)))}async init(e,t){var o;if(this.isInit)throw new Error("Kukai-Embed Already Present");{let s=document.createElement("button");s.id=i;let a=document.createElement("img");a.style.width="60px",a.style.height="60px",a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhQTFRF0dH/amn+urn/o6L+8/P/U1L+9PP/Xl3+mJf+3dz/gYD+3Nz/xcX/jIz+jIv+o6P/dXT+urr/xsX/6Oj/r67/////R0b+////pIBhiAAAABh0Uk5T//////////////////////////////8AzRMu6gAAAaZJREFUeNqsl9uSgyAMhgNyUNS2eyB9/zddXHW1QAKW/ccrhm8MSUgCPAkpkN2vJChqD2RBOVs8yc5SVcLgMCMHFbC0SMjKAgwCGQlgYNVjQb2i4FFgUWLMw5PGCukpB0uslEzhavZE7/CEFzS9wqO+AuvxDCuBlyTUCe7xovoDBrws+IMTox/Rin3EPhE7HEdJD94P59037/0tE68Fju9RH/b6/pX1Jr5jK5ycGJbN8Mp6nzl1+BwPu5VNfuEWWCELC/PLmjQTVIAlC9NscBk8Zw5mWJwDbBl4CRrFBn+DQhpm2XBoABousAggafiDZ1FCR8Irm+TloY6GN9YPb8CH7i2wF2/B5pM1nIWN0F+c4R0ZqjVGjjNckkmyxZczHMj03HLDGtpwxV+MvSZlDbelKxk0UIbPxWIQyjCVKrJchhC/CcNVRQFEbbIV0FWV3j3Yj1zpTfwdw1vg77min7gs7hgofLxytJu40WmIehXeTLwi6BYrYtfquG/C/zT3trGiaaBpG6Xahri28bFtcG0bmduG9bZnQuMDpfFp1Pgoq38O/ggwACoyIQpeKqtUAAAAAElFTkSuQmCC",s.innerHTML=a.outerHTML,t?s.className=t:(s.style.width="60px",s.style.height="60px",s.style.bottom="40px",s.style.left="40px",s.style.position="fixed",s.style.borderRadius="50px",s.style.boxShadow="2px 2px 3px #999",s.style.padding="0",s.style.border="0"),s.style.zIndex="99998",s.style.display="none",document.body.appendChild(s),null===(o=r(this,n).call(this))||void 0===o||o.addEventListener("click",e)}}get isInit(){return!!r(this,n).call(this)}deinit(){const e=r(this,n).call(this);e&&document.body.removeChild(e)}show(){const e=r(this,n).call(this);e&&(e.style.display="block")}hide(){const e=r(this,n).call(this);e&&(e.style.display="none")}},n=new WeakMap},7771:function(e,t,n){"use strict";var r,i,o=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},s=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameKukai=void 0;const a=n(5308),c="kukai-iframe";t.IFrameKukai=class{constructor(e){r.set(this,void 0),i.set(this,(()=>document.getElementById(c))),o(this,r,e)}show(){const e=s(this,i).call(this);e&&(e.style.display="block")}hide(){const e=s(this,i).call(this);e&&(e.style.display="none")}isHidden(){const e=s(this,i).call(this);return"none"===(null==e?void 0:e.style.display)}toCard(){const e=s(this,i).call(this);e&&(e.style.position="fixed",e.style.top="",e.style.bottom="70px",e.style.left="70px",e.style.borderRadius="10px",e.style.border="0",e.style.width="400px",e.style.height="200px")}isCard(){const e=s(this,i).call(this);return"10px"===(null==e?void 0:e.style.borderRadius)}toFullScreen(){const e=s(this,i).call(this);e&&(e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.borderRadius="0px",e.style.border="0",e.style.width="100%",e.style.height="100%")}async init(e){if(s(this,i).call(this))throw new Error("Kukai-Embed Already Present");{let t=document.createElement("iframe");const n=e?`?instanceId=${e}`:"";t.src=s(this,r)+"/embedded"+n,t.id=c,t.style.zIndex="99999",t.style.display="none",t.sandbox.add("allow-scripts"),t.sandbox.add("allow-same-origin"),t.sandbox.add("allow-popups"),t.sandbox.add("allow-forms");const{promise:i,deferred:o}=a.defer();try{return t.addEventListener("load",(()=>o.resolve())),document.body.appendChild(t),await i.then((()=>this.toFullScreen()))}catch(e){throw o.reject(e),e}}}get isInit(){return!!s(this,i).call(this)}deinit(){const e=s(this,i).call(this);e&&document.body.removeChild(e)}request(e){var t,n;null===(n=null===(t=s(this,i).call(this))||void 0===t?void 0:t.contentWindow)||void 0===n||n.postMessage(JSON.stringify(e),s(this,r)?s(this,r):"*")}},r=new WeakMap,i=new WeakMap},6257:function(e,t,n){"use strict";var r,i,o,s,a=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),c=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)},l=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},h=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiEmbed=t.Networks=void 0;const u=n(5272);Object.defineProperty(t,"Networks",{enumerable:!0,get:function(){return u.Networks}});const d=n(5308),f=n(7771),p=n(3006),g=n(3163);c(n(5272),t);const y="kukai-embed-instance-id";t.KukaiEmbed=class{constructor(e={}){r.set(this,void 0),i.set(this,void 0),o.set(this,null),s.set(this,null);const t={net:u.Networks.mainnet,icon:!1,enableLogging:void 0!==e.net&&e.net!==u.Networks.mainnet,...e},n=d.networkToSrc(t.net),a=new f.IFrameKukai(n);l(this,r,a),l(this,i,new g.KukaiMessaging(a,n,t.enableLogging)),t.icon&&l(this,o,new p.IconUI)}async init(){var e;if(this.initialized)throw new Error("Kukai-Embed Already Present");const t=window.sessionStorage.getItem(y)||void 0;let n=async e=>{let n=h(this,i).init(window);return h(this,r).init(t),await n};if(t){const i=window.sessionStorage.getItem(t);i?(await n(),l(this,s,JSON.parse(i)),h(this,r).toCard(),h(this,r).hide(),null===(e=h(this,o))||void 0===e||e.init((()=>this.toggle())).then((()=>{var e;return null===(e=h(this,o))||void 0===e?void 0:e.show()}))):await n()}else await n()}get initialized(){return h(this,r).isInit&&h(this,i).isInit}deinit(){var e;h(this,i).deinit(),h(this,r).deinit(),null===(e=h(this,o))||void 0===e||e.deinit()}get user(){return h(this,s)}async login(e={}){var t;if(!this.initialized)throw new Error("Cannot login: Embed Uninitialized");if(null===(t=this.user)||void 0===t?void 0:t.pk)throw new Error("Already logged in");if(!this.user&&"high"===(null==e?void 0:e.customPrio)){let t=JSON.parse(JSON.stringify(e));t.customPrio=u.LoginPrio.Low;const n=await this.login(t);if(null==n?void 0:n.pk)return n}return h(this,r).toFullScreen(),h(this,r).show(),await h(this,i).login(e).then((({pk:t,pkh:n,userData:a,instanceId:c})=>{var u;return window.sessionStorage.setItem(y,c),window.sessionStorage.setItem(c,JSON.stringify({pk:t,pkh:n,userData:a})),null===(u=h(this,o))||void 0===u||u.init((()=>this.toggle())).then((()=>{var e;return null===(e=h(this,o))||void 0===e?void 0:e.show()})),l(this,s,{pk:t,pkh:n,userData:a}),e.customSpinnerDismissal?{...h(this,s),dismissCallback:async()=>await h(this,i).dismiss().finally((()=>{h(this,r).hide(),h(this,r).toCard()}))}:h(this,s)})).catch((t=>{throw e.customSpinnerDismissal=!1,t})).finally((()=>{e.customSpinnerDismissal||(h(this,r).hide(),h(this,r).toCard())}))}async logout(){if(!this.initialized)throw new Error("Cannot logout: Embed Uninitialized");return h(this,r).isCard()&&!h(this,r).isHidden()&&await h(this,i).card(!1),await h(this,i).logout().then((e=>{var t,n;try{const e=window.sessionStorage.getItem(y)||void 0;e&&window.sessionStorage.removeItem(e)}catch(e){}window.sessionStorage.removeItem(y),h(this,r).hide(),null===(t=h(this,o))||void 0===t||t.hide(),null===(n=h(this,o))||void 0===n||n.deinit(),l(this,s,null)})).finally((()=>h(this,r).hide()))}async send(e,t){if(!this.initialized)throw new Error("Cannot send: Embed Uninitialized");return(null==t?void 0:t.silent)||(h(this,r).isCard()&&!h(this,r).isHidden()&&await h(this,i).card(!1),h(this,r).toFullScreen(),h(this,r).show()),await h(this,i).operation(e,t).then((e=>e.opHash)).finally((()=>{(null==t?void 0:t.silent)||(h(this,r).toCard(),h(this,r).hide())}))}async trackOperation(e){if(!this.initialized)throw new Error("Cannot track: Embed Uninitialized");return await h(this,i).track(e)}async signExpr(e,t){if(!this.initialized)throw new Error("Cannot sign: Embed Uninitialized");return h(this,r).isCard()&&!h(this,r).isHidden()&&await h(this,i).card(!1),h(this,r).toFullScreen(),h(this,r).show(),await h(this,i).signExpr(e,t).then((e=>e.signature)).finally((()=>{h(this,r).hide(),h(this,r).toCard()}))}async authenticate(e,t){if(!this.initialized)throw new Error("Cannot authenticate: Embed Uninitialized");return await h(this,i).authenticate(e,t).then((({message:e,signature:t})=>({message:e,signature:t})))}async toggle(){h(this,r).isHidden()?(h(this,r).toCard(),h(this,r).show(),h(this,i).card(!0)):await h(this,i).card(!1).then((()=>{h(this,r).hide()}))}},r=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap},3163:function(e,t,n){"use strict";var r,i,o,s,a,c,l,h,u,d,f,p,g,y,b,m,v,w,E,S=n(5108),I=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},R=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiMessaging=void 0;const A=n(5272),x=n(5308);class M{constructor(e){r.set(this,{}),i.set(this,void 0),I(this,i,e)}async listen(e){const{promise:t,deferred:n}=x.defer();return R(this,r)[e]=n,await t}handle(e){var t;const n=R(this,i).call(this,e);null===(t=R(this,r)[n])||void 0===t||t.resolve(e),delete R(this,r)[n]}}r=new WeakMap,i=new WeakMap;class T{constructor(){o.set(this,[])}async listen(){const{promise:e,deferred:t}=x.defer();return R(this,o).push(t),await e}get length(){return R(this,o).length}handle(e){var t;null===(t=R(this,o).shift())||void 0===t||t.resolve(e)}}o=new WeakMap;class O{constructor(){s.set(this,null)}async listen(){if(R(this,s))throw new Error("OCCUPIED");{const{promise:e,deferred:t}=x.defer();return I(this,s,t),await e}}handle(e){var t;null===(t=R(this,s))||void 0===t||t.resolve(e),I(this,s,null)}}s=new WeakMap;class P{constructor(e,t){a.set(this,void 0),c.set(this,void 0),l.set(this,new O),h.set(this,new T),u.set(this,new T),d.set(this,new O),f.set(this,new M((e=>e.opHash))),p.set(this,new T),g.set(this,new T),y.set(this,new T),b.set(this,new T),m.set(this,(e=>{switch(e.type){case A.ResponseTypes.cardResponse:R(this,h).handle(e);break;case A.ResponseTypes.loginResponse:R(this,u).handle(e);break;case A.ResponseTypes.operationResponse:R(this,d).handle(e);break;case A.ResponseTypes.trackResponse:R(this,f).handle(e);break;case A.ResponseTypes.logoutResponse:R(this,p).handle(e);break;case A.ResponseTypes.signExprResponse:R(this,g).handle(e);break;case A.ResponseTypes.authResponse:R(this,y).handle(e);break;case A.ResponseTypes.initComplete:R(this,l).handle(e);break;case A.ResponseTypes.dismissResponse:R(this,b).handle(e)}})),I(this,a,e),I(this,c,t)}async init(){return await R(this,l).listen()}async login(){return await R(this,u).listen()}async operation(){return await R(this,d).listen()}async track(e){return await R(this,f).listen(e)}async logout(){return await R(this,p).listen()}async signExpr(){return await R(this,g).listen()}async auth(){return await R(this,y).listen()}async card(){return await R(this,h).listen()}async dismiss(){return await R(this,b).listen()}handleEvent(e){if("message"===e.type&&e.origin===R(this,a)){R(this,c)&&S.log(`Received ${e.data} from ${e.origin}`);const t=JSON.parse(e.data);R(this,m).call(this,t)}else S.warn(e.origin)}}a=new WeakMap,c=new WeakMap,l=new WeakMap,h=new WeakMap,u=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap,t.KukaiMessaging=class{constructor(e,t,n){v.set(this,void 0),w.set(this,void 0),E.set(this,null),I(this,w,e),I(this,v,new P(t,n))}async init(e){if(R(this,E))throw new Error("Already Initialized");return I(this,E,e),e.addEventListener("message",R(this,v)),await R(this,v).init().then((e=>{if(e.failed)throw new Error("Init Failed: "+e.error)}))}get isInit(){return!!R(this,E)}deinit(){R(this,E)&&(R(this,E).removeEventListener("message",R(this,v)),I(this,E,null))}async card(e){return R(this,w).request({type:A.RequestTypes.cardRequest,show:e}),await R(this,v).card().then((e=>{if(e.failed)throw new Error("Card Failed: "+e.error)}))}async login(e){return R(this,w).request({type:A.RequestTypes.loginRequest,config:e}),await R(this,v).login().then((e=>{if(e.failed)throw new Error("Login Failed: "+e.error);return e}))}async operation(e,t){return R(this,w).request({type:A.RequestTypes.operationRequest,operations:e,ui:t}),await R(this,v).operation().then((e=>{if(e.failed)throw new Error("Operation Failed: "+e.error);return e})).catch((e=>{throw"OCCUPIED"===e.message?new Error("Cannot send: Operation in progress"):e}))}async track(e){return R(this,w).request({type:A.RequestTypes.trackRequest,opHash:e}),await R(this,v).track(e).then((e=>{if(e.failed)throw new Error("Track Failed: "+e.error);return e}))}async logout(){return R(this,w).request({type:A.RequestTypes.logoutRequest}),await R(this,v).logout().then((e=>{if(e.failed)throw new Error("Logout Failed: "+e.error);return e}))}async signExpr(e,t){return R(this,w).request({type:A.RequestTypes.signExprRequest,expr:e,ui:t}),await R(this,v).signExpr().then((e=>{if(e.failed)throw new Error("Signing Failed: "+e.error);return e}))}async authenticate(e,t){return R(this,w).request({type:A.RequestTypes.authRequest,id:e,nonce:t}),await R(this,v).auth().then((e=>{if(e.failed)throw new Error("Auth Failed: "+e.error);return e}))}async dismiss(){return R(this,w).request({type:A.RequestTypes.dismissRequest}),await R(this,v).dismiss().then((e=>{if(e.failed)throw new Error("Dismiss Failed: "+e.error)}))}},v=new WeakMap,w=new WeakMap,E=new WeakMap},5272:(e,t)=>{"use strict";var n,r,i,o,s;Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseTypes=t.RequestTypes=t.LoginPrio=t.TypeOfLogin=t.Networks=void 0,(s=t.Networks||(t.Networks={})).mainnet="mainnet",s.ghostnet="ghostnet",s.ithacanet="ithacanet",s.jakartanet="jakartanet",s.kathmandu="kathmandu",s.dev="dev",s.local="local",(o=t.TypeOfLogin||(t.TypeOfLogin={})).Google="google",o.Reddit="reddit",o.Twitter="twitter",o.Facebook="facebook",(i=t.LoginPrio||(t.LoginPrio={})).LowFast="low_always_skip_key",i.Low="low",i.High="high",(r=t.RequestTypes||(t.RequestTypes={})).loginRequest="login_request",r.operationRequest="operation_request",r.trackRequest="track_request",r.logoutRequest="logout_request",r.signExprRequest="sign_expr_request",r.authRequest="authentication_request",r.cardRequest="card_request",r.dismissRequest="dismiss_request",(n=t.ResponseTypes||(t.ResponseTypes={})).initComplete="init_complete",n.loginResponse="login_response",n.operationResponse="operation_response",n.trackResponse="track_response",n.logoutResponse="logout_response",n.signExprResponse="sign_expr_response",n.authResponse="authentication_response",n.cardResponse="card_response",n.dismissResponse="dismiss_response"},5308:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.networkToSrc=t.defer=void 0;const r=n(5272);t.defer=()=>{let e={resolve:e=>{},reject:e=>{}};const t=new Promise(((t,n)=>{e={resolve:t,reject:n}}));return{deferred:e,promise:t}},t.networkToSrc=e=>{switch(e){case r.Networks.mainnet:return"https://wallet.kukai.app";case r.Networks.ghostnet:return"https://ghostnet.kukai.app";case r.Networks.ithacanet:return"https://ithacanet.kukai.app";case r.Networks.jakartanet:return"https://jakartanet.kukai.app";case r.Networks.kathmandu:return"https://kathmandu.kukai.app";case r.Networks.dev:return"https://ichabod-dev.kukai.app";case r.Networks.local:return"http://localhost:4200";default:return e}}},2307:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",i=1,o=2,s=9007199254740991,a="[object Arguments]",c="[object Array]",l="[object AsyncFunction]",h="[object Boolean]",u="[object Date]",d="[object Error]",f="[object Function]",p="[object GeneratorFunction]",g="[object Map]",y="[object Number]",b="[object Null]",m="[object Object]",v="[object Promise]",w="[object Proxy]",E="[object RegExp]",S="[object Set]",I="[object String]",R="[object Undefined]",A="[object WeakMap]",x="[object ArrayBuffer]",M="[object DataView]",T=/^\[object .+?Constructor\]$/,O=/^(?:0|[1-9]\d*)$/,P={};P["[object Float32Array]"]=P["[object Float64Array]"]=P["[object Int8Array]"]=P["[object Int16Array]"]=P["[object Int32Array]"]=P["[object Uint8Array]"]=P["[object Uint8ClampedArray]"]=P["[object Uint16Array]"]=P["[object Uint32Array]"]=!0,P[a]=P[c]=P[x]=P[h]=P[M]=P[u]=P[d]=P[f]=P[g]=P[y]=P[m]=P[E]=P[S]=P[I]=P[A]=!1;var N="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,k="object"==typeof self&&self&&self.Object===Object&&self,C=N||k||Function("return this")(),U=t&&!t.nodeType&&t,L=U&&e&&!e.nodeType&&e,j=L&&L.exports===U,z=j&&N.process,K=function(){try{return z&&z.binding&&z.binding("util")}catch(e){}}(),q=K&&K.isTypedArray;function D(e,t){for(var n=-1,r=null==e?0:e.length;++nl))return!1;var u=a.get(e);if(u&&a.get(t))return u==t;var d=-1,f=!0,p=n&o?new xe:void 0;for(a.set(e,t),a.set(t,e);++d-1},Re.prototype.set=function(e,t){var n=this.__data__,r=Te(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Ae.prototype.clear=function(){this.size=0,this.__data__={hash:new Ie,map:new(ue||Re),string:new Ie}},Ae.prototype.delete=function(e){var t=Ue(this,e).delete(e);return this.size-=t?1:0,t},Ae.prototype.get=function(e){return Ue(this,e).get(e)},Ae.prototype.has=function(e){return Ue(this,e).has(e)},Ae.prototype.set=function(e,t){var n=Ue(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},xe.prototype.add=xe.prototype.push=function(e){return this.__data__.set(e,r),this},xe.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.clear=function(){this.__data__=new Re,this.size=0},Me.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Me.prototype.get=function(e){return this.__data__.get(e)},Me.prototype.has=function(e){return this.__data__.has(e)},Me.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Re){var r=n.__data__;if(!ue||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Ae(r)}return n.set(e,t),this.size=n.size,this};var je=ae?function(e){return null==e?[]:(e=Object(e),function(t,n){for(var r=-1,i=null==t?0:t.length,o=0,s=[];++r-1&&e%1==0&&e-1&&e%1==0&&e<=s}function Ge(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Je(e){return null!=e&&"object"==typeof e}var Ze=q?function(e){return function(t){return e(t)}}(q):function(e){return Je(e)&&He(e.length)&&!!P[Oe(e)]};function Ye(e){return null!=(t=e)&&He(t.length)&&!Ve(t)?function(e,t){var n=We(e),r=!n&&Be(e),i=!n&&!r&&Fe(e),o=!n&&!r&&!i&&Ze(e),s=n||r||i||o,a=s?function(e,t){for(var n=-1,r=Array(e);++n{"use strict";var r=n(5717),i=n(3349),o=n(9509).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<>>32-t}function l(e,t,n,r,i,o,s){return c(e+(t&n|~t&r)+i+o|0,s)+t|0}function h(e,t,n,r,i,o,s){return c(e+(t&r|n&~r)+i+o|0,s)+t|0}function u(e,t,n,r,i,o,s){return c(e+(t^n^r)+i+o|0,s)+t|0}function d(e,t,n,r,i,o,s){return c(e+(n^(t|~r))+i+o|0,s)+t|0}r(a,i),a.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,o=this._d;n=l(n,r,i,o,e[0],3614090360,7),o=l(o,n,r,i,e[1],3905402710,12),i=l(i,o,n,r,e[2],606105819,17),r=l(r,i,o,n,e[3],3250441966,22),n=l(n,r,i,o,e[4],4118548399,7),o=l(o,n,r,i,e[5],1200080426,12),i=l(i,o,n,r,e[6],2821735955,17),r=l(r,i,o,n,e[7],4249261313,22),n=l(n,r,i,o,e[8],1770035416,7),o=l(o,n,r,i,e[9],2336552879,12),i=l(i,o,n,r,e[10],4294925233,17),r=l(r,i,o,n,e[11],2304563134,22),n=l(n,r,i,o,e[12],1804603682,7),o=l(o,n,r,i,e[13],4254626195,12),i=l(i,o,n,r,e[14],2792965006,17),n=h(n,r=l(r,i,o,n,e[15],1236535329,22),i,o,e[1],4129170786,5),o=h(o,n,r,i,e[6],3225465664,9),i=h(i,o,n,r,e[11],643717713,14),r=h(r,i,o,n,e[0],3921069994,20),n=h(n,r,i,o,e[5],3593408605,5),o=h(o,n,r,i,e[10],38016083,9),i=h(i,o,n,r,e[15],3634488961,14),r=h(r,i,o,n,e[4],3889429448,20),n=h(n,r,i,o,e[9],568446438,5),o=h(o,n,r,i,e[14],3275163606,9),i=h(i,o,n,r,e[3],4107603335,14),r=h(r,i,o,n,e[8],1163531501,20),n=h(n,r,i,o,e[13],2850285829,5),o=h(o,n,r,i,e[2],4243563512,9),i=h(i,o,n,r,e[7],1735328473,14),n=u(n,r=h(r,i,o,n,e[12],2368359562,20),i,o,e[5],4294588738,4),o=u(o,n,r,i,e[8],2272392833,11),i=u(i,o,n,r,e[11],1839030562,16),r=u(r,i,o,n,e[14],4259657740,23),n=u(n,r,i,o,e[1],2763975236,4),o=u(o,n,r,i,e[4],1272893353,11),i=u(i,o,n,r,e[7],4139469664,16),r=u(r,i,o,n,e[10],3200236656,23),n=u(n,r,i,o,e[13],681279174,4),o=u(o,n,r,i,e[0],3936430074,11),i=u(i,o,n,r,e[3],3572445317,16),r=u(r,i,o,n,e[6],76029189,23),n=u(n,r,i,o,e[9],3654602809,4),o=u(o,n,r,i,e[12],3873151461,11),i=u(i,o,n,r,e[15],530742520,16),n=d(n,r=u(r,i,o,n,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,n,r,i,e[7],1126891415,10),i=d(i,o,n,r,e[14],2878612391,15),r=d(r,i,o,n,e[5],4237533241,21),n=d(n,r,i,o,e[12],1700485571,6),o=d(o,n,r,i,e[3],2399980690,10),i=d(i,o,n,r,e[10],4293915773,15),r=d(r,i,o,n,e[1],2240044497,21),n=d(n,r,i,o,e[8],1873313359,6),o=d(o,n,r,i,e[15],4264355552,10),i=d(i,o,n,r,e[6],2734768916,15),r=d(r,i,o,n,e[13],1309151649,21),n=d(n,r,i,o,e[4],4149444226,6),o=d(o,n,r,i,e[11],3174756917,10),i=d(i,o,n,r,e[2],718787259,15),r=d(r,i,o,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},9746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},4504:(e,t)=>{"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n>8,s=255&i;o?n.push(o,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},4244:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},609:(e,t,n)=>{"use strict";var r=n(4289),i=n(5559),o=n(4244),s=n(5624),a=n(2281),c=i(s(),Object);r(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},5624:(e,t,n)=>{"use strict";var r=n(4244);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},2281:(e,t,n)=>{"use strict";var r=n(5624),i=n(4289);e.exports=function(){var e=r();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8987:(e,t,n)=>{"use strict";var r;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=n(1414),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),l=a.call((function(){}),"prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===o.call(e),r=s(e),a=t&&"[object String]"===o.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var p=l&&n;if(a&&e.length>0&&!i.call(e,0))for(var g=0;g0)for(var y=0;y{"use strict";var r=Array.prototype.slice,i=n(1414),o=Object.keys,s=o?function(e){return o(e)}:n(8987),a=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?a(r.call(e)):a(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},4155:e=>{var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var a,c=[],l=!1,h=-1;function u(){l&&a&&(l=!1,a.length?c=a.concat(c):h=-1,c.length&&d())}function d(){if(!l){var e=s(u);l=!0;for(var t=c.length;t;){for(a=c,c=[];++h1)for(var n=1;n{function r(e){this.mode=o.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t65536?(r[0]=240|(1835008&i)>>>18,r[1]=128|(258048&i)>>>12,r[2]=128|(4032&i)>>>6,r[3]=128|63&i):i>2048?(r[0]=224|(61440&i)>>>12,r[1]=128|(4032&i)>>>6,r[2]=128|63&i):i>128?(r[0]=192|(1984&i)>>>6,r[1]=128|63&i):r[0]=i,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function i(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}r.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=i.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var r=-1;r<=7;r++)t+r<=-1||this.moduleCount<=t+r||(this.modules[e+n][t+r]=0<=n&&n<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=r&&r<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var r=s.getLostPoint(this);(0==n||e>r)&&(e=r,t=n)}return t},createMovieClip:function(e,t,n){var r=e.createEmptyMovieClip(t,n);this.make();for(var i=0;i>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=r}for(n=0;n<18;n++)r=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,r=s.getBCHTypeInfo(n),i=0;i<15;i++){var o=!e&&1==(r>>i&1);i<6?this.modules[i][8]=o:i<8?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;i<15;i++)o=!e&&1==(r>>i&1),i<8?this.modules[8][this.moduleCount-i-1]=o:i<9?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,r=this.moduleCount-1,i=7,o=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var c=0;c<2;c++)if(null==this.modules[r][a-c]){var l=!1;o>>i&1)),s.getMask(t,r,a-c)&&(l=!l),this.modules[r][a-c]=l,-1==--i&&(o++,i=7)}if((r+=n)<0||this.moduleCount<=r){r-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){for(var r=h.getRSBlocks(e,t),o=new u,a=0;a8*l)throw new Error("code length overflow. ("+o.getLengthInBits()+">"+8*l+")");for(o.getLengthInBits()+4<=8*l&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*l||(o.put(i.PAD0,8),o.getLengthInBits()>=8*l));)o.put(i.PAD1,8);return i.createBytes(o,r)},i.createBytes=function(e,t){for(var n=0,r=0,i=0,o=new Array(t.length),a=new Array(t.length),c=0;c=0?p.get(g):0}}var y=0;for(d=0;d=0;)t^=s.G15<=0;)t^=s.G18<>>=1;return t},getPatternPosition:function(e){return s.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return(t+n)%2==0;case 1:return t%2==0;case 2:return n%3==0;case 3:return(t+n)%3==0;case 4:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case 5:return t*n%2+t*n%3==0;case 6:return(t*n%2+t*n%3)%2==0;case 7:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new l([1],0),n=0;n5&&(n+=3+o-5)}for(r=0;r=256;)e-=255;return a.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},c=0;c<8;c++)a.EXP_TABLE[c]=1<>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var d=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function f(e){if(this.options={padding:4,width:256,height:256,typeNumber:4,color:"#000000",background:"#ffffff",ecl:"M"},"string"==typeof e&&(e={content:e}),e)for(var t in e)this.options[t]=e[t];if("string"!=typeof this.options.content)throw new Error("Expected 'content' as string!");if(0===this.options.content.length)throw new Error("Expected 'content' to be non-empty!");if(!(this.options.padding>=0))throw new Error("Expected 'padding' value to be non-negative!");if(!(this.options.width>0&&this.options.height>0))throw new Error("Expected 'width' or 'height' value to be higher than zero!");var n=this.options.content,r=function(e,t){for(var n=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),r=1,i=0,o=0,s=d.length;o<=s;o++){var a=d[o];if(!a)throw new Error("Content too long: expected "+i+" but got "+n);switch(t){case"L":i=a[0];break;case"M":i=a[1];break;case"Q":i=a[2];break;case"H":i=a[3];break;default:throw new Error("Unknwon error correction level: "+t)}if(n<=i)break;r++}if(r>d.length)throw new Error("Content too long");return r}(n,this.options.ecl),o=function(e){switch(e){case"L":return 1;case"M":return 0;case"Q":return 3;case"H":return 2;default:throw new Error("Unknwon error correction level: "+e)}}(this.options.ecl);this.qrcode=new i(r,o),this.qrcode.addData(n),this.qrcode.make()}f.prototype.svg=function(e){var t=this.options||{},n=this.qrcode.modules;void 0===e&&(e={container:t.container||"svg"});for(var r=void 0===t.pretty||!!t.pretty,i=r?" ":"",o=r?"\r\n":"",s=t.width,a=t.height,c=n.length,l=s/(c+2*t.padding),h=a/(c+2*t.padding),u=void 0!==t.join&&!!t.join,d=void 0!==t.swap&&!!t.swap,f=void 0===t.xmlDeclaration||!!t.xmlDeclaration,p=void 0!==t.predefined&&!!t.predefined,g=p?i+''+o:"",y=i+''+o,b="",m="",v=0;v'+o:i+''+o}u&&(b=i+'');var x="";switch(e.container){case"svg":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"svg-viewbox":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"g":x+=''+o,x+=g+y+b,x+="";break;default:x+=(g+y+b).replace(/^\s+/,"")}return x},f.prototype.save=function(e,t){var r=this.svg();"function"!=typeof t&&(t=function(e,t){});try{n(9951).writeFile(e,r,t)}catch(e){t(e)}},e.exports=f},7563:(e,t,n)=>{"use strict";const r=n(610),i=n(4020),o=n(500),s=n(2300),a=Symbol("encodeFragmentIdentifier");function c(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function h(e,t){return t.decode?i(e):e}function u(e){return Array.isArray(e)?e.sort():"object"==typeof e?u(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function f(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){c((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const i="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!i&&h(n,e).includes(e.arrayFormatSeparator);n=o?h(n,e):n;const s=i||o?n.split(e.arrayFormatSeparator).map((t=>h(t,e))):null===n?n:h(n,e);r[t]=s};case"bracket-separator":return(t,n,r)=>{const i=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!i)return void(r[t]=n?h(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>h(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const i of e.split("&")){if(""===i)continue;let[e,s]=o(t.decode?i.replace(/\+/g," "):i,"=");s=void 0===s?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?s:h(s,t),n(h(e,t),s,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=p(n[e],t);else r[e]=p(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=u(n):e[t]=n,e}),Object.create(null))}t.extract=f,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";c((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const i=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",i,"]"].join("")]:[...n,[l(t,e),"[",l(i,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),":list="].join("")]:[...n,[l(t,e),":list=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:(i=null===i?"":i,0===r.length?[[l(n,e),t,l(i,e)].join("")]:[[r,l(i,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),i={};for(const t of Object.keys(e))n(t)||(i[t]=e[t]);const o=Object.keys(i);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const i=e[n];return void 0===i?"":null===i?l(n,t):Array.isArray(i)?0===i.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":i.reduce(r(n),[]).join("&"):l(n,t)+"="+l(i,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(f(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:h(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[a]:!0},n);const r=d(e.url).split("?")[0]||"",i=t.extract(e.url),o=t.parse(i,{sort:!1}),s=Object.assign(o,e.query);let c=t.stringify(s,n);c&&(c=`?${c}`);let h=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(h=`#${n[a]?l(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${r}${c}${h}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[a]:!1},r);const{url:i,query:o,fragmentIdentifier:c}=t.parseUrl(e,r);return t.stringifyUrl({url:i,query:s(o,n),fragmentIdentifier:c},r)},t.exclude=(e,n,r)=>{const i=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,i,r)}},2300:e=>{"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),i=Array.isArray(t),o=0;o{"use strict";function t(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}e.exports=function(e,n,r){var i=r&&r.stringify||t;if("object"==typeof e&&null!==e){var o=n.length+1;if(1===o)return e;var s=new Array(o);s[0]=i(e);for(var a=1;a-1?u:0,e.charCodeAt(f+1)){case 100:case 102:if(h>=c)break;if(null==n[h])break;u=c)break;if(null==n[h])break;u=c)break;if(void 0===n[h])break;u",u=f+2,f++;break}l+=i(n[h]),u=f+2,f++;break;case 115:if(h>=c)break;u{"use strict";var t={};function n(e,n,r){r||(r=Error);var i=function(e){var t,r;function i(t,r,i){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,i))||this}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,i}(r);i.prototype.name=r.name,i.prototype.code=e,t[e]=i}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var i,o,s,a,c;if("string"==typeof t&&(o="not ",t.substr(0,4)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-9,n)===t}(e," argument"))s="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var l=("number"!=typeof c&&(c=0),c+1>(a=e).length||-1===a.indexOf(".",c)?"argument":"property");s='The "'.concat(e,'" ').concat(l," ").concat(i," ").concat(r(t,"type"))}return s+". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},6753:(e,t,n)=>{"use strict";var r=n(4155),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=h;var o=n(9481),s=n(4229);n(5717)(h,o);for(var a=i(s.prototype),c=0;c{"use strict";e.exports=i;var r=n(4605);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(5717)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},9481:(e,t,n)=>{"use strict";var r,i=n(4155);e.exports=A,A.ReadableState=R,n(7187).EventEmitter;var o,s=function(e,t){return e.listeners(t).length},a=n(2503),c=n(8764).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},h=n(4616);o=h&&h.debuglog?h.debuglog("stream"):function(){};var u,d,f,p=n(7327),g=n(1195),y=n(2457).getHighWaterMark,b=n(4281).q,m=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,E=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(5717)(A,a);var S=g.errorOrDestroy,I=["error","close","destroy","pause","resume"];function R(e,t,i){r=r||n(6753),e=e||{},"boolean"!=typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=y(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(u||(u=n(2553).s),this.decoder=new u(e.encoding),this.encoding=e.encoding)}function A(e){if(r=r||n(6753),!(this instanceof A))return new A(e);var t=this instanceof r;this._readableState=new R(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function x(e,t,n,r,i){o("readableAddChunk",t);var s,a=e._readableState;if(null===t)a.reading=!1,function(e,t){if(o("onEofChunk"),!t.ended){if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,N(e)))}}(e,a);else if(i||(s=function(e,t){var n,r;return r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new m("chunk",["string","Buffer","Uint8Array"],t)),n}(a,t)),s)S(e,s);else if(a.objectMode||t&&t.length>0)if("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r)a.endEmitted?S(e,new E):M(e,a,t,!0);else if(a.ended)S(e,new v);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?M(e,a,t,!1):k(e,a)):M(e,a,t,!1)}else r||(a.reading=!1,k(e,a));return!a.ended&&(a.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=T?e=T:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function P(e){var t=e._readableState;o("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(o("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(N,e))}function N(e){var t=e._readableState;o("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,z(e)}function k(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(C,e,t))}function C(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function L(e){o("readable nexttick read 0"),e.read(0)}function j(e,t){o("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),z(e),t.flowing&&!t.reading&&e.read(0)}function z(e){var t=e._readableState;for(o("flow",t.flowing);t.flowing&&null!==e.read(););}function K(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function q(e){var t=e._readableState;o("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(D,t,e))}function D(e,t){if(o("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function B(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return o("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?q(this):P(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&q(this),null;var r,i=t.needReadable;return o("need readable",i),(0===t.length||t.length-e0?K(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&q(this)),null!==r&&this.emit("data",r),r},A.prototype._read=function(e){S(this,new w("_read()"))},A.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,o("pipe count=%d opts=%j",r.pipesCount,t);var a=t&&!1===t.end||e===i.stdout||e===i.stderr?g:c;function c(){o("onend"),e.end()}r.endEmitted?i.nextTick(a):n.once("end",a),e.on("unpipe",(function t(i,s){o("onunpipe"),i===n&&s&&!1===s.hasUnpiped&&(s.hasUnpiped=!0,o("cleanup"),e.removeListener("close",f),e.removeListener("finish",p),e.removeListener("drain",l),e.removeListener("error",d),e.removeListener("unpipe",t),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",u),h=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||l())}));var l=function(e){return function(){var t=e._readableState;o("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,z(e))}}(n);e.on("drain",l);var h=!1;function u(t){o("ondata");var i=e.write(t);o("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==B(r.pipes,e))&&!h&&(o("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function d(t){o("onerror",t),g(),e.removeListener("error",d),0===s(e,"error")&&S(e,t)}function f(){e.removeListener("finish",p),g()}function p(){o("onfinish"),e.removeListener("close",f),g()}function g(){o("unpipe"),n.unpipe(e)}return n.on("data",u),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",d),e.once("close",f),e.once("finish",p),e.emit("pipe",n),r.flowing||(o("pipe resume"),n.resume()),e},A.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,o("on readable",r.length,r.reading),r.length?P(this):r.reading||i.nextTick(L,this))),n},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var n=a.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(U,this),n},A.prototype.removeAllListeners=function(e){var t=a.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(U,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(o("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(j,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return o("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(o("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(o("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){o("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s{"use strict";e.exports=h;var r=n(4281).q,i=r.ERR_METHOD_NOT_IMPLEMENTED,o=r.ERR_MULTIPLE_CALLBACK,s=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(6753);function l(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new o);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";var r,i=n(4155);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var i=r.callback;t.pendingcb--,i(undefined),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=A,A.WritableState=R;var s,a={deprecate:n(4927)},c=n(2503),l=n(8764).Buffer,h=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){},u=n(1195),d=n(2457).getHighWaterMark,f=n(4281).q,p=f.ERR_INVALID_ARG_TYPE,g=f.ERR_METHOD_NOT_IMPLEMENTED,y=f.ERR_MULTIPLE_CALLBACK,b=f.ERR_STREAM_CANNOT_PIPE,m=f.ERR_STREAM_DESTROYED,v=f.ERR_STREAM_NULL_VALUES,w=f.ERR_STREAM_WRITE_AFTER_END,E=f.ERR_UNKNOWN_ENCODING,S=u.errorOrDestroy;function I(){}function R(e,t,s){r=r||n(6753),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if("function"!=typeof o)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(N,e,t),e._writableState.errorEmitted=!0,S(e,r)):(o(r),e._writableState.errorEmitted=!0,S(e,r),N(e,t))}(e,n,r,t,o);else{var s=O(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||T(e,n),r?i.nextTick(M,e,n,s,o):M(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function A(e){var t=this instanceof(r=r||n(6753));if(!t&&!s.call(A,this))return new A(e);this._writableState=new R(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),c.call(this)}function x(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new m("write")):n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function M(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),N(e,t)}function T(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,x(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,h=n.encoding,u=n.callback;if(x(e,t,!1,t.objectMode?1:l.length,l,h,u),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function O(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function P(e,t){e._final((function(n){t.pendingcb--,n&&S(e,n),t.prefinished=!0,e.emit("prefinish"),N(e,t)}))}function N(e,t){var n=O(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(P,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(5717)(A,c),R.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(R.prototype,"buffer",{get:a.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(s=Function.prototype[Symbol.hasInstance],Object.defineProperty(A,Symbol.hasInstance,{value:function(e){return!!s.call(this,e)||this===A&&e&&e._writableState instanceof R}})):s=function(e){return e instanceof this},A.prototype.pipe=function(){S(this,new b)},A.prototype.write=function(e,t,n){var r,o=this._writableState,s=!1,a=!o.objectMode&&(r=e,l.isBuffer(r)||r instanceof h);return a&&!l.isBuffer(e)&&(e=function(e){return l.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=I),o.ending?function(e,t){var n=new w;S(e,n),i.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var o;return null===n?o=new v:"string"==typeof n||t.objectMode||(o=new p("chunk",["string","Buffer"],n)),!o||(S(e,o),i.nextTick(r,o),!1)}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=l.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var c=t.length-1))throw new E(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,n){n(new g("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,N(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=u.destroy,A.prototype._undestroy=u.undestroy,A.prototype._destroy=function(e,t){t(e)}},5850:(e,t,n)=>{"use strict";var r,i=n(4155);function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(8610),a=Symbol("lastResolve"),c=Symbol("lastReject"),l=Symbol("error"),h=Symbol("ended"),u=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function p(e,t){return{value:e,done:t}}function g(e){var t=e[a];if(null!==t){var n=e[f].read();null!==n&&(e[u]=null,e[a]=null,e[c]=null,t(p(n,!1)))}}function y(e){i.nextTick(g,e)}var b=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((o(r={get stream(){return this[f]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[h])return Promise.resolve(p(void 0,!0));if(this[f].destroyed)return new Promise((function(t,n){i.nextTick((function(){e[l]?n(e[l]):t(p(void 0,!0))}))}));var n,r=this[u];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[h]?n(p(void 0,!0)):t[d](n,r)}),r)}}(r,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(p(o,!1));n=new Promise(this[d])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),o(r,"return",(function(){var e=this;return new Promise((function(t,n){e[f].destroy(null,(function(e){e?n(e):t(p(void 0,!0))}))}))})),r),b);e.exports=function(e){var t,n=Object.create(m,(o(t={},f,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,l,{value:null,writable:!0}),o(t,h,{value:e._readableState.endEmitted,writable:!0}),o(t,d,{value:function(e,t){var r=n[f].read();r?(n[u]=null,n[a]=null,n[c]=null,e(p(r,!1))):(n[a]=e,n[c]=t)},writable:!0}),t));return n[u]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[u]=null,n[a]=null,n[c]=null,t(e)),void(n[l]=e)}var r=n[a];null!==r&&(n[u]=null,n[a]=null,n[c]=null,r(p(void 0,!0))),n[h]=!0})),e.on("readable",y.bind(null,n)),n}},7327:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return c.alloc(0);for(var t,n,r,i=c.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,n=i,r=s,c.prototype.copy.call(t,n,r),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(o===i.length?r+=i:r+=i.slice(0,e),0==(e-=o)){o===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=c.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(o));break}++r}return this.length-=r,t}},{key:h,value:function(e,t){return l(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,n),Object.defineProperty(t,"prototype",{writable:!1}),e}()},1195:(e,t,n)=>{"use strict";var r=n(4155);function i(e,t){s(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(s,this,e)):r.nextTick(s,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(o,n):(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t?(r.nextTick(o,n),t(e)):r.nextTick(o,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,o){if("function"==typeof n)return e(t,null,n);n||(n={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},9946:(e,t,n)=>{"use strict";var r,i=n(4281).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function c(e){e()}function l(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i0,(function(e){h||(h=e),e&&d.forEach(c),o||(d.forEach(c),u(h))}))}));return t.reduce(l)}},2457:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var o=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new r(i?n:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},2503:(e,t,n)=>{e.exports=n(7187).EventEmitter},8473:(e,t,n)=>{(t=e.exports=n(9481)).Stream=t,t.Readable=t,t.Writable=n(4229),t.Duplex=n(6753),t.Transform=n(4605),t.PassThrough=n(2725),t.finished=n(8610),t.pipeline=n(9946)},9785:(e,t,n)=>{"use strict";var r=n(8764).Buffer,i=n(5717),o=n(3349),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],h=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],u=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function f(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function g(e,t,n,r,i,o,s,a){return p(e+(t^n^r)+o+s|0,a)+i|0}function y(e,t,n,r,i,o,s,a){return p(e+(t&n|~t&r)+o+s|0,a)+i|0}function b(e,t,n,r,i,o,s,a){return p(e+((t|~n)^r)+o+s|0,a)+i|0}function m(e,t,n,r,i,o,s,a){return p(e+(t&r|n&~r)+o+s|0,a)+i|0}function v(e,t,n,r,i,o,s,a){return p(e+(t^(n|~r))+o+s|0,a)+i|0}i(f,o),f.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,f=0|this._e,w=0|this._a,E=0|this._b,S=0|this._c,I=0|this._d,R=0|this._e,A=0;A<80;A+=1){var x,M;A<16?(x=g(n,r,i,o,f,e[a[A]],u[0],l[A]),M=v(w,E,S,I,R,e[c[A]],d[0],h[A])):A<32?(x=y(n,r,i,o,f,e[a[A]],u[1],l[A]),M=m(w,E,S,I,R,e[c[A]],d[1],h[A])):A<48?(x=b(n,r,i,o,f,e[a[A]],u[2],l[A]),M=b(w,E,S,I,R,e[c[A]],d[2],h[A])):A<64?(x=m(n,r,i,o,f,e[a[A]],u[3],l[A]),M=y(w,E,S,I,R,e[c[A]],d[3],h[A])):(x=v(n,r,i,o,f,e[a[A]],u[4],l[A]),M=g(w,E,S,I,R,e[c[A]],d[4],h[A])),n=f,f=o,o=p(i,10),i=r,r=x,w=R,R=I,I=p(S,10),S=E,E=M}var T=this._b+i+I|0;this._b=this._c+o+R|0,this._c=this._d+f+w|0,this._d=this._e+n+E|0,this._e=this._a+r+S|0,this._a=T},f.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=f},9509:(e,t,n)=>{var r=n(8764),i=r.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},3954:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.safeJsonParse=function(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSON.parse(e)}catch(t){return e}},t.safeJsonStringify=function(e){return"string"==typeof e?e:JSON.stringify(e,((e,t)=>void 0===t?null:t))}},4189:(e,t,n)=>{var r=n(9509).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,o=e.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},9072:(e,t,n)=>{var r=e.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=n(4448),r.sha1=n(8336),r.sha224=n(8432),r.sha256=n(7499),r.sha384=n(1686),r.sha512=n(7816)},4448:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<30|e>>>2}function h(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,u=0;u<16;++u)n[u]=e.readInt32BE(4*u);for(;u<80;++u)n[u]=n[u-3]^n[u-8]^n[u-14]^n[u-16];for(var d=0;d<80;++d){var f=~~(d/20),p=0|((t=r)<<5|t>>>27)+h(f,i,o,a)+c+n[d]+s[f];c=a,a=o,o=l(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8336:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<5|e>>>27}function h(e){return e<<30|e>>>2}function u(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var f=0;f<80;++f){var p=~~(f/20),g=l(r)+u(p,i,o,a)+c+n[f]+s[p]|0;c=a,a=o,o=h(i),i=r,r=g}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8432:(e,t,n)=>{var r=n(5717),i=n(7499),o=n(4189),s=n(9509).Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},7499:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e,t,n){return n^e&(t^n)}function h(e,t,n){return e&t|n&(e|t)}function u(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function f(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,p=0|this._f,g=0|this._g,y=0|this._h,b=0;b<16;++b)n[b]=e.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((t=n[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[b-7]+f(n[b-15])+n[b-16];for(var m=0;m<64;++m){var v=y+d(c)+l(c,p,g)+s[m]+n[m]|0,w=u(r)+h(r,i,o)|0;y=g,g=p,p=c,c=a+v|0,a=o,o=i,i=r,r=v+w|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=y+this._h|0},c.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},1686:(e,t,n)=>{var r=n(5717),i=n(7816),o=n(4189),s=n(9509).Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},7816:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function l(e,t,n){return n^e&(t^n)}function h(e,t,n){return e&t|n&(e|t)}function u(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,c=0|this._fh,m=0|this._gh,v=0|this._hh,w=0|this._al,E=0|this._bl,S=0|this._cl,I=0|this._dl,R=0|this._el,A=0|this._fl,x=0|this._gl,M=0|this._hl,T=0;T<32;T+=2)t[T]=e.readInt32BE(4*T),t[T+1]=e.readInt32BE(4*T+4);for(;T<160;T+=2){var O=t[T-30],P=t[T-30+1],N=f(O,P),k=p(P,O),C=g(O=t[T-4],P=t[T-4+1]),U=y(P,O),L=t[T-14],j=t[T-14+1],z=t[T-32],K=t[T-32+1],q=k+j|0,D=N+L+b(q,k)|0;D=(D=D+C+b(q=q+U|0,U)|0)+z+b(q=q+K|0,K)|0,t[T]=D,t[T+1]=q}for(var B=0;B<160;B+=2){D=t[B],q=t[B+1];var W=h(n,r,i),F=h(w,E,S),V=u(n,w),H=u(w,n),G=d(a,R),J=d(R,a),Z=s[B],Y=s[B+1],Q=l(a,c,m),X=l(R,A,x),_=M+J|0,$=v+G+b(_,M)|0;$=($=($=$+Q+b(_=_+X|0,X)|0)+Z+b(_=_+Y|0,Y)|0)+D+b(_=_+q|0,q)|0;var ee=H+F|0,te=V+W+b(ee,H)|0;v=m,M=x,m=c,x=A,c=a,A=R,a=o+$+b(R=I+_|0,I)|0,o=i,I=S,i=r,S=E,r=n,E=w,n=$+te+b(w=_+ee|0,_)|0}this._al=this._al+w|0,this._bl=this._bl+E|0,this._cl=this._cl+S|0,this._dl=this._dl+I|0,this._el=this._el+R|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+r+b(this._bl,E)|0,this._ch=this._ch+i+b(this._cl,S)|0,this._dh=this._dh+o+b(this._dl,I)|0,this._eh=this._eh+a+b(this._el,R)|0,this._fh=this._fh+c+b(this._fl,A)|0,this._gh=this._gh+m+b(this._gl,x)|0,this._hh=this._hh+v+b(this._hl,M)|0},c.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},500:e=>{"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},2830:(e,t,n)=>{e.exports=i;var r=n(7187).EventEmitter;function i(){r.call(this)}n(5717)(i,r),i.Readable=n(9481),i.Writable=n(4229),i.Duplex=n(6753),i.Transform=n(4605),i.PassThrough=n(2725),i.finished=n(8610),i.pipeline=n(9946),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",c));var s=!1;function a(){s||(s=!0,e.end())}function c(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(h(),0===r.listenerCount(this,"error"))throw e}function h(){n.removeListener("data",i),e.removeListener("drain",o),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",h),n.removeListener("close",h),e.removeListener("close",h)}return n.on("error",l),e.on("error",l),n.on("end",h),n.on("close",h),e.on("close",h),e.emit("pipe",n),e}},610:e=>{"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},2553:(e,t,n)=>{"use strict";var r=n(9509).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=h,this.end=u,t=3;break;default:return this.write=d,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function h(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0?(i>0&&(e.lastNeed=i-1),i):--r=0?(i>0&&(e.lastNeed=i-2),i):--r=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>w,__asyncGenerator:()=>v,__asyncValues:()=>E,__await:()=>m,__awaiter:()=>h,__classPrivateFieldGet:()=>A,__classPrivateFieldSet:()=>x,__createBinding:()=>d,__decorate:()=>a,__exportStar:()=>f,__extends:()=>i,__generator:()=>u,__importDefault:()=>R,__importStar:()=>I,__makeTemplateObject:()=>S,__metadata:()=>l,__param:()=>c,__read:()=>g,__rest:()=>s,__spread:()=>y,__spreadArrays:()=>b,__values:()=>p});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function u(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function y(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(n=i[e](t)).value instanceof m?Promise.resolve(n.value.v).then(c,l):h(o[0][2],n)}catch(e){h(o[0][3],e)}var n}function c(e){a("next",e)}function l(e){a("throw",e)}function h(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function w(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:m(e[r](t)),done:"return"===r}:i?i(t):t}:i}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,i){!function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)}(r,i,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function I(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function R(e){return e&&e.__esModule?e:{default:e}}function A(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function x(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},5054:(e,t,n)=>{var r=n(8764).Buffer;e.exports=function(e){return ArrayBuffer.isView(e)?r.from(e.buffer,e.byteOffset,e.byteLength):r.from(e)}},4927:(e,t,n)=>{var r=n(5108);function i(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(i("noDeprecation"))return e;var n=!1;return function(){if(!n){if(i("throwDeprecation"))throw new Error(t);i("traceDeprecation")?r.trace(t):r.warn(t),n=!0}return e.apply(this,arguments)}}},384:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},5955:(e,t,n)=>{"use strict";var r=n(2584),i=n(8662),o=n(6430),s=n(5692);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,h=a(Object.prototype.toString),u=a(Number.prototype.valueOf),d=a(String.prototype.valueOf),f=a(Boolean.prototype.valueOf);if(c)var p=a(BigInt.prototype.valueOf);if(l)var g=a(Symbol.prototype.valueOf);function y(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function b(e){return"[object Map]"===h(e)}function m(e){return"[object Set]"===h(e)}function v(e){return"[object WeakMap]"===h(e)}function w(e){return"[object WeakSet]"===h(e)}function E(e){return"[object ArrayBuffer]"===h(e)}function S(e){return"undefined"!=typeof ArrayBuffer&&(E.working?E(e):e instanceof ArrayBuffer)}function I(e){return"[object DataView]"===h(e)}function R(e){return"undefined"!=typeof DataView&&(I.working?I(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=i,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||R(e)},t.isUint8Array=function(e){return"Uint8Array"===o(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===o(e)},t.isUint16Array=function(e){return"Uint16Array"===o(e)},t.isUint32Array=function(e){return"Uint32Array"===o(e)},t.isInt8Array=function(e){return"Int8Array"===o(e)},t.isInt16Array=function(e){return"Int16Array"===o(e)},t.isInt32Array=function(e){return"Int32Array"===o(e)},t.isFloat32Array=function(e){return"Float32Array"===o(e)},t.isFloat64Array=function(e){return"Float64Array"===o(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===o(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===o(e)},b.working="undefined"!=typeof Map&&b(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(b.working?b(e):e instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(m.working?m(e):e instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(v.working?v(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),t.isArrayBuffer=S,I.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&I(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=R;var A="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function x(e){return"[object SharedArrayBuffer]"===h(e)}function M(e){return void 0!==A&&(void 0===x.working&&(x.working=x(new A)),x.working?x(e):e instanceof A)}function T(e){return y(e,u)}function O(e){return y(e,d)}function P(e){return y(e,f)}function N(e){return c&&y(e,p)}function k(e){return l&&y(e,g)}t.isSharedArrayBuffer=M,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===h(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===h(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===h(e)},t.isGeneratorObject=function(e){return"[object Generator]"===h(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===h(e)},t.isNumberObject=T,t.isStringObject=O,t.isBooleanObject=P,t.isBigIntObject=N,t.isSymbolObject=k,t.isBoxedPrimitive=function(e){return T(e)||O(e)||P(e)||N(e)||k(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(S(e)||M(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},9539:(e,t,n)=>{var r=n(4155),i=n(5108),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),b(n)?r.showHidden=n:n&&t._extend(r,n),E(r.showHidden)&&(r.showHidden=!1),E(r.depth)&&(r.depth=2),E(r.colors)&&(r.colors=!1),E(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=u),f(r,e,r.depth)}function u(e,t){var n=h.styles[t];return n?"["+h.colors[n][0]+"m"+e+"["+h.colors[n][1]+"m":e}function d(e,t){return e}function f(e,n,r){if(e.customInspect&&n&&x(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return w(i)||(i=f(e,i,r)),i}var o=function(e,t){if(E(t))return e.stylize("undefined","undefined");if(w(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return v(t)?e.stylize(""+t,"number"):b(t)?e.stylize(""+t,"boolean"):m(t)?e.stylize("null","null"):void 0}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),A(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return p(n);if(0===s.length){if(x(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(S(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(R(n))return e.stylize(Date.prototype.toString.call(n),"date");if(A(n))return p(n)}var l,h="",u=!1,d=["{","}"];return y(n)&&(u=!0,d=["[","]"]),x(n)&&(h=" [Function"+(n.name?": "+n.name:"")+"]"),S(n)&&(h=" "+RegExp.prototype.toString.call(n)),R(n)&&(h=" "+Date.prototype.toUTCString.call(n)),A(n)&&(h=" "+p(n)),0!==s.length||u&&0!=n.length?r<0?S(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=u?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}(l,h,d)):d[0]+h+d[1]}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function g(e,t,n,r,i,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),P(r,i)||(s="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=m(n)?f(e,c.value,null):f(e,c.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),E(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function y(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return"number"==typeof e}function w(e){return"string"==typeof e}function E(e){return void 0===e}function S(e){return I(e)&&"[object RegExp]"===M(e)}function I(e){return"object"==typeof e&&null!==e}function R(e){return I(e)&&"[object Date]"===M(e)}function A(e){return I(e)&&("[object Error]"===M(e)||e instanceof Error)}function x(e){return"function"==typeof e}function M(e){return Object.prototype.toString.call(e)}function T(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(c.test(e)){var n=r.pid;a[e]=function(){var r=t.format.apply(t,arguments);i.error("%s %d: %s",e,n,r)}}else a[e]=function(){};return a[e]},t.inspect=h,h.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},h.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(5955),t.isArray=y,t.isBoolean=b,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=v,t.isString=w,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=E,t.isRegExp=S,t.types.isRegExp=S,t.isObject=I,t.isDate=R,t.types.isDate=R,t.isError=A,t.types.isNativeError=A,t.isFunction=x,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(384);var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;i.log("%s - %s",(n=[T((e=new Date).getHours()),T(e.getMinutes()),T(e.getSeconds())].join(":"),[e.getDate(),O[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(5717),t._extend=function(e,t){if(!t||!I(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var N="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function k(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(N&&e[N]){var t;if("function"!=typeof(t=e[N]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],o=0;o{"use strict";var r=n(4029),i=n(3083),o=n(1924),s=n(7296),a=o("Object.prototype.toString"),c=n(6410)(),l="undefined"==typeof globalThis?n.g:globalThis,h=i(),u=o("String.prototype.slice"),d={},f=Object.getPrototypeOf;c&&s&&f&&r(h,(function(e){if("function"==typeof l[e]){var t=new l[e];if(Symbol.toStringTag in t){var n=f(t),r=s(n,Symbol.toStringTag);if(!r){var i=f(n);r=s(i,Symbol.toStringTag)}d[e]=r.get}}}));var p=n(5692);e.exports=function(e){return!!p(e)&&(c&&Symbol.toStringTag in e?function(e){var t=!1;return r(d,(function(n,r){if(!t)try{var i=n.call(e);i===r&&(t=i)}catch(e){}})),t}(e):u(a(e),8,-1))}},7026:e=>{"use strict";e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}},5883:()=>{},6601:()=>{},9214:()=>{},9951:()=>{},2361:()=>{},4616:()=>{},3083:(e,t,n)=>{"use strict";var r=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],i="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;t{"use strict";const r=n(5346);e.exports=s;const i=function(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{},o={mapHttpRequest:d,mapHttpResponse:d,wrapRequestSerializer:f,wrapResponseSerializer:f,wrapErrorSerializer:f,req:d,res:d,err:function(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}};function s(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const n=e.browser.write||i;e.browser.write&&(e.browser.asObject=!0);const r=e.serializers||{},o=function(e,t){return Array.isArray(e)?e.filter((function(e){return"!stdSerializers.err"!==e})):!0===e&&Object.keys(t)}(e.browser.serialize,r);let d=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(d=!1),"function"==typeof n&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),!1===e.enabled&&(e.level="silent");const f=e.level||"info",g=Object.create(n);g.log||(g.log=p),Object.defineProperty(g,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(g,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,a(y,g,"error","log"),a(y,g,"fatal","error"),a(y,g,"warn","error"),a(y,g,"info","log"),a(y,g,"debug","log"),a(y,g,"trace","log")}});const y={transmit:t,serialize:o,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:u(e)};return g.levels=s.levels,g.level=f,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=p,g.serializers=r,g._serialize=o,g._stdErrSerialize=d,g.child=function(n,i){if(!n)throw new Error("missing bindings for child Pino");i=i||{},o&&n.serializers&&(i.serializers=n.serializers);const s=i.serializers;if(o&&s){var a=Object.assign({},r,s),u=!0===e.browser.serialize?Object.keys(a):o;delete n.serializers,c([n],u,a,this._stdErrSerialize)}function d(e){this._childLevel=1+(0|e._childLevel),this.error=l(e,n,"error"),this.fatal=l(e,n,"fatal"),this.warn=l(e,n,"warn"),this.info=l(e,n,"info"),this.debug=l(e,n,"debug"),this.trace=l(e,n,"trace"),a&&(this.serializers=a,this._serialize=u),t&&(this._logEvent=h([].concat(e._logEvent.bindings,n)))}return d.prototype=this,new d(this)},t&&(g._logEvent=h()),g}function a(e,t,n,o){const a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?p:a[n]?a[n]:i[n]||i[o]||p,function(e,t,n){var o;(e.transmit||t[n]!==p)&&(t[n]=(o=t[n],function(){const a=e.timestamp(),l=new Array(arguments.length),u=Object.getPrototypeOf&&Object.getPrototypeOf(this)===i?i:this;for(var d=0;d-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function l(e,t,n){return function(){const r=new Array(1+arguments.length);r[0]=t;for(var i=1;i{"use strict";e.exports={i8:"6.5.4"}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e={};n.r(e),n.d(e,{identity:()=>Ws});var t={};n.r(t),n.d(t,{base2:()=>Fs});var r={};n.r(r),n.d(r,{base8:()=>Vs});var i={};n.r(i),n.d(i,{base10:()=>Hs});var o={};n.r(o),n.d(o,{base16:()=>Gs,base16upper:()=>Js});var s={};n.r(s),n.d(s,{base32:()=>Zs,base32hex:()=>_s,base32hexpad:()=>ea,base32hexpadupper:()=>ta,base32hexupper:()=>$s,base32pad:()=>Qs,base32padupper:()=>Xs,base32upper:()=>Ys,base32z:()=>na});var a={};n.r(a),n.d(a,{base36:()=>ra,base36upper:()=>ia});var c={};n.r(c),n.d(c,{base58btc:()=>oa,base58flickr:()=>sa});var l={};n.r(l),n.d(l,{base64:()=>aa,base64pad:()=>ca,base64url:()=>la,base64urlpad:()=>ha});var h={};n.r(h),n.d(h,{base256emoji:()=>pa});var u={};n.r(u),n.d(u,{sha256:()=>ja,sha512:()=>za});var d={};n.r(d),n.d(d,{identity:()=>qa});var f={};n.r(f),n.d(f,{code:()=>Ba,decode:()=>Fa,encode:()=>Wa,name:()=>Da});var p={};n.r(p),n.d(p,{code:()=>Ja,decode:()=>Ya,encode:()=>Za,name:()=>Ga});var g,y,b,m,v,w,E,S,I,R,A,x,M,T,O,P,N=n(8764),k=n(1050),C=n(1322),U=(n(1191),n(8334)),L=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,j=Math.ceil,z=Math.floor,K="[BigNumber Error] ",q=K+"Number primitive has more than 15 significant digits: ",D=1e14,B=14,W=9007199254740991,F=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],V=1e7,H=1e9;function G(e){var t=0|e;return e>0||e===t?t:t-1}function J(e){for(var t,n,r=1,i=e.length,o=e[0]+"";rl^n?1:-1;for(a=(c=i.length)<(l=o.length)?c:l,s=0;so[s]^n?1:-1;return c==l?0:c>l^n?1:-1}function Y(e,t,n,r){if(en||e!==z(e))throw Error(K+(r||"Argument")+("number"==typeof e?en?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function Q(e){var t=e.c.length-1;return G(e.e/B)==t&&e.c[t]%2!=0}function X(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function _(e,t,n){var r,i;if(t<0){for(i=n+".";++t;i+=n);e=i+e}else if(++t>(r=e.length)){for(i=n,t-=r;--t;i+=n);e+=i}else tv?d.c=d.e=null:e.e=10;c/=10,a++);return void(a>v?d.c=d.e=null:(d.e=a,d.c=[e]))}u=String(e)}else{if(!L.test(u=String(e)))return i(d,u,l);d.s=45==u.charCodeAt(0)?(u=u.slice(1),-1):1}(a=u.indexOf("."))>-1&&(u=u.replace(".","")),(c=u.search(/e/i))>0?(a<0&&(a=c),a+=+u.slice(c+1),u=u.substring(0,c)):a<0&&(a=u.length)}else{if(Y(t,2,R.length,"Base"),10==t&&A)return P(d=new x(e),p+d.e+1,g);if(u=String(e),l="number"==typeof e){if(0*e!=0)return i(d,u,l,t);if(d.s=1/e<0?(u=u.slice(1),-1):1,x.DEBUG&&u.replace(/^0\.0*|\./,"").length>15)throw Error(q+e)}else d.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1;for(n=R.slice(0,t),a=c=0,h=u.length;ca){a=h;continue}}else if(!s&&(u==u.toUpperCase()&&(u=u.toLowerCase())||u==u.toLowerCase()&&(u=u.toUpperCase()))){s=!0,c=-1,a=0;continue}return i(d,String(e),l,t)}l=!1,(a=(u=r(u,t,10,d.s)).indexOf("."))>-1?u=u.replace(".",""):a=u.length}for(c=0;48===u.charCodeAt(c);c++);for(h=u.length;48===u.charCodeAt(--h););if(u=u.slice(c,++h)){if(h-=c,l&&x.DEBUG&&h>15&&(e>W||e!==z(e)))throw Error(q+d.s*e);if((a=a-c-1)>v)d.c=d.e=null;else if(a=b)?X(c,s):_(c,s,"0");else if(o=(e=P(new x(e),t,n)).e,a=(c=J(e.c)).length,1==r||2==r&&(t<=o||o<=y)){for(;aa){if(--t>0)for(c+=".";t--;c+="0");}else if((t+=o-a)>0)for(o+1==a&&(c+=".");t--;c+="0");return e.s<0&&i?"-"+c:c}function T(e,t){for(var n,r=1,i=new x(e[0]);r=10;i/=10,r++);return(n=r+n*B-1)>v?e.c=e.e=null:n=10;a/=10,i++);if((o=t-i)<0)o+=B,s=t,h=(c=u[l=0])/d[i-s-1]%10|0;else if((l=j((o+1)/B))>=u.length){if(!r)break e;for(;u.length<=l;u.push(0));c=h=0,i=1,s=(o%=B)-B+1}else{for(c=a=u[l],i=1;a>=10;a/=10,i++);h=(s=(o%=B)-B+i)<0?0:c/d[i-s-1]%10|0}if(r=r||t<0||null!=u[l+1]||(s<0?c:c%d[i-s-1]),r=n<4?(h||r)&&(0==n||n==(e.s<0?3:2)):h>5||5==h&&(4==n||r||6==n&&(o>0?s>0?c/d[i-s]:0:u[l-1])%10&1||n==(e.s<0?8:7)),t<1||!u[0])return u.length=0,r?(t-=e.e+1,u[0]=d[(B-t%B)%B],e.e=-t||0):u[0]=e.e=0,e;if(0==o?(u.length=l,a=1,l--):(u.length=l+1,a=d[B-o],u[l]=s>0?z(c/d[i-s]%d[s])*a:0),r)for(;;){if(0==l){for(o=1,s=u[0];s>=10;s/=10,o++);for(s=u[0]+=a,a=1;s>=10;s/=10,a++);o!=a&&(e.e++,u[0]==D&&(u[0]=1));break}if(u[l]+=a,u[l]!=D)break;u[l--]=0,a=1}for(o=u.length;0===u[--o];u.pop());}e.e>v?e.c=e.e=null:e.e=b?X(t,n):_(t,n,"0"),e.s<0?"-"+t:t)}return x.clone=e,x.ROUND_UP=0,x.ROUND_DOWN=1,x.ROUND_CEIL=2,x.ROUND_FLOOR=3,x.ROUND_HALF_UP=4,x.ROUND_HALF_DOWN=5,x.ROUND_HALF_EVEN=6,x.ROUND_HALF_CEIL=7,x.ROUND_HALF_FLOOR=8,x.EUCLID=9,x.config=x.set=function(e){var t,n;if(null!=e){if("object"!=typeof e)throw Error(K+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(Y(n=e[t],0,H,t),p=n),e.hasOwnProperty(t="ROUNDING_MODE")&&(Y(n=e[t],0,8,t),g=n),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((n=e[t])&&n.pop?(Y(n[0],-H,0,t),Y(n[1],0,H,t),y=n[0],b=n[1]):(Y(n,-H,H,t),y=-(b=n<0?-n:n))),e.hasOwnProperty(t="RANGE"))if((n=e[t])&&n.pop)Y(n[0],-H,-1,t),Y(n[1],1,H,t),m=n[0],v=n[1];else{if(Y(n,-H,H,t),!n)throw Error(K+t+" cannot be zero: "+n);m=-(v=n<0?-n:n)}if(e.hasOwnProperty(t="CRYPTO")){if((n=e[t])!==!!n)throw Error(K+t+" not true or false: "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw w=!n,Error(K+"crypto unavailable");w=n}else w=n}if(e.hasOwnProperty(t="MODULO_MODE")&&(Y(n=e[t],0,9,t),E=n),e.hasOwnProperty(t="POW_PRECISION")&&(Y(n=e[t],0,H,t),S=n),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(n=e[t]))throw Error(K+t+" not an object: "+n);I=n}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(n=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(n))throw Error(K+t+" invalid: "+n);A="0123456789"==n.slice(0,10),R=n}}return{DECIMAL_PLACES:p,ROUNDING_MODE:g,EXPONENTIAL_AT:[y,b],RANGE:[m,v],CRYPTO:w,MODULO_MODE:E,POW_PRECISION:S,FORMAT:I,ALPHABET:R}},x.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!x.DEBUG)return!0;var t,n,r=e.c,i=e.e,o=e.s;e:if("[object Array]"=={}.toString.call(r)){if((1===o||-1===o)&&i>=-H&&i<=H&&i===z(i)){if(0===r[0]){if(0===i&&1===r.length)return!0;break e}if((t=(i+1)%B)<1&&(t+=B),String(r[0]).length==t){for(t=0;t=D||n!==z(n))break e;if(0!==n)return!0}}}else if(null===r&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(K+"Invalid BigNumber: "+e)},x.maximum=x.max=function(){return T(arguments,d.lt)},x.minimum=x.min=function(){return T(arguments,d.gt)},x.random=(o=9007199254740992,s=Math.random()*o&2097151?function(){return z(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,n,r,i,o,a=0,c=[],l=new x(f);if(null==e?e=p:Y(e,0,H),i=j(e/B),w)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(i*=2));a>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[a]=n[0],t[a+1]=n[1]):(c.push(o%1e14),a+=2);a=i/2}else{if(!crypto.randomBytes)throw w=!1,Error(K+"crypto unavailable");for(t=crypto.randomBytes(i*=7);a=9e15?crypto.randomBytes(7).copy(t,a):(c.push(o%1e14),a+=7);a=i/7}if(!w)for(;a=10;o/=10,a++);an-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(r,i,o,s,a){var c,l,h,u,d,f,y,b,m=r.indexOf("."),v=p,w=g;for(m>=0&&(u=S,S=0,r=r.replace(".",""),f=(b=new x(i)).pow(r.length-m),S=u,b.c=t(_(J(f.c),f.e,"0"),10,o,e),b.e=b.c.length),h=u=(y=t(r,i,o,a?(c=R,e):(c=e,R))).length;0==y[--u];y.pop());if(!y[0])return c.charAt(0);if(m<0?--h:(f.c=y,f.e=h,f.s=s,y=(f=n(f,b,v,w,o)).c,d=f.r,h=f.e),m=y[l=h+v+1],u=o/2,d=d||l<0||null!=y[l+1],d=w<4?(null!=m||d)&&(0==w||w==(f.s<0?3:2)):m>u||m==u&&(4==w||d||6==w&&1&y[l-1]||w==(f.s<0?8:7)),l<1||!y[0])r=d?_(c.charAt(1),-v,c.charAt(0)):c.charAt(0);else{if(y.length=l,d)for(--o;++y[--l]>o;)y[l]=0,l||(++h,y=[1].concat(y));for(u=y.length;!y[--u];);for(m=0,r="";m<=u;r+=c.charAt(y[m++]));r=_(r,h,c.charAt(0))}return r}}(),n=function(){function e(e,t,n){var r,i,o,s,a=0,c=e.length,l=t%V,h=t/V|0;for(e=e.slice();c--;)a=((i=l*(o=e[c]%V)+(r=h*o+(s=e[c]/V|0)*l)%V*V+a)/n|0)+(r/V|0)+h*s,e[c]=i%n;return a&&(e=[a].concat(e)),e}function t(e,t,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;it[i]?1:-1;break}return o}function n(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]1;e.splice(0,1));}return function(r,i,o,s,a){var c,l,h,u,d,f,p,g,y,b,m,v,w,E,S,I,R,A=r.s==i.s?1:-1,M=r.c,T=i.c;if(!(M&&M[0]&&T&&T[0]))return new x(r.s&&i.s&&(M?!T||M[0]!=T[0]:T)?M&&0==M[0]||!T?0*A:A/0:NaN);for(y=(g=new x(A)).c=[],A=o+(l=r.e-i.e)+1,a||(a=D,l=G(r.e/B)-G(i.e/B),A=A/B|0),h=0;T[h]==(M[h]||0);h++);if(T[h]>(M[h]||0)&&l--,A<0)y.push(1),u=!0;else{for(E=M.length,I=T.length,h=0,A+=2,(d=z(a/(T[0]+1)))>1&&(T=e(T,d,a),M=e(M,d,a),I=T.length,E=M.length),w=I,m=(b=M.slice(0,I)).length;m=a/2&&S++;do{if(d=0,(c=t(T,b,I,m))<0){if(v=b[0],I!=m&&(v=v*a+(b[1]||0)),(d=z(v/S))>1)for(d>=a&&(d=a-1),p=(f=e(T,d,a)).length,m=b.length;1==t(f,b,p,m);)d--,n(f,I=10;A/=10,h++);P(g,o+(g.e=h+l*B-1)+1,s,u)}else g.e=l,g.r=+u;return g}}(),a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,c=/^([^.]+)\.$/,l=/^\.([^.]+)$/,h=/^-?(Infinity|NaN)$/,u=/^\s*\+(?=[\w.])|^\s+|\s+$/g,i=function(e,t,n,r){var i,o=n?t:t.replace(u,"");if(h.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!n&&(o=o.replace(a,(function(e,t,n){return i="x"==(n=n.toLowerCase())?16:"b"==n?2:8,r&&r!=i?e:t})),r&&(i=r,o=o.replace(c,"$1").replace(l,"0.$1")),t!=o))return new x(o,i);if(x.DEBUG)throw Error(K+"Not a"+(r?" base "+r:"")+" number: "+t);e.s=null}e.c=e.e=null},d.absoluteValue=d.abs=function(){var e=new x(this);return e.s<0&&(e.s=1),e},d.comparedTo=function(e,t){return Z(this,new x(e,t))},d.decimalPlaces=d.dp=function(e,t){var n,r,i,o=this;if(null!=e)return Y(e,0,H),null==t?t=g:Y(t,0,8),P(new x(o),e+o.e+1,t);if(!(n=o.c))return null;if(r=((i=n.length-1)-G(this.e/B))*B,i=n[i])for(;i%10==0;i/=10,r--);return r<0&&(r=0),r},d.dividedBy=d.div=function(e,t){return n(this,new x(e,t),p,g)},d.dividedToIntegerBy=d.idiv=function(e,t){return n(this,new x(e,t),0,1)},d.exponentiatedBy=d.pow=function(e,t){var n,r,i,o,s,a,c,l,h=this;if((e=new x(e)).c&&!e.isInteger())throw Error(K+"Exponent not an integer: "+N(e));if(null!=t&&(t=new x(t)),s=e.e>14,!h.c||!h.c[0]||1==h.c[0]&&!h.e&&1==h.c.length||!e.c||!e.c[0])return l=new x(Math.pow(+N(h),s?e.s*(2-Q(e)):+N(e))),t?l.mod(t):l;if(a=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new x(NaN);(r=!a&&h.isInteger()&&t.isInteger())&&(h=h.mod(t))}else{if(e.e>9&&(h.e>0||h.e<-1||(0==h.e?h.c[0]>1||s&&h.c[1]>=24e7:h.c[0]<8e13||s&&h.c[0]<=9999975e7)))return o=h.s<0&&Q(e)?-0:0,h.e>-1&&(o=1/o),new x(a?1/o:o);S&&(o=j(S/B+2))}for(s?(n=new x(.5),a&&(e.s=1),c=Q(e)):c=(i=Math.abs(+N(e)))%2,l=new x(f);;){if(c){if(!(l=l.times(h)).c)break;o?l.c.length>o&&(l.c.length=o):r&&(l=l.mod(t))}if(i){if(0===(i=z(i/2)))break;c=i%2}else if(P(e=e.times(n),e.e+1,1),e.e>14)c=Q(e);else{if(0==(i=+N(e)))break;c=i%2}h=h.times(h),o?h.c&&h.c.length>o&&(h.c.length=o):r&&(h=h.mod(t))}return r?l:(a&&(l=f.div(l)),t?l.mod(t):o?P(l,S,g,void 0):l)},d.integerValue=function(e){var t=new x(this);return null==e?e=g:Y(e,0,8),P(t,t.e+1,e)},d.isEqualTo=d.eq=function(e,t){return 0===Z(this,new x(e,t))},d.isFinite=function(){return!!this.c},d.isGreaterThan=d.gt=function(e,t){return Z(this,new x(e,t))>0},d.isGreaterThanOrEqualTo=d.gte=function(e,t){return 1===(t=Z(this,new x(e,t)))||0===t},d.isInteger=function(){return!!this.c&&G(this.e/B)>this.c.length-2},d.isLessThan=d.lt=function(e,t){return Z(this,new x(e,t))<0},d.isLessThanOrEqualTo=d.lte=function(e,t){return-1===(t=Z(this,new x(e,t)))||0===t},d.isNaN=function(){return!this.s},d.isNegative=function(){return this.s<0},d.isPositive=function(){return this.s>0},d.isZero=function(){return!!this.c&&0==this.c[0]},d.minus=function(e,t){var n,r,i,o,s=this,a=s.s;if(t=(e=new x(e,t)).s,!a||!t)return new x(NaN);if(a!=t)return e.s=-t,s.plus(e);var c=s.e/B,l=e.e/B,h=s.c,u=e.c;if(!c||!l){if(!h||!u)return h?(e.s=-t,e):new x(u?s:NaN);if(!h[0]||!u[0])return u[0]?(e.s=-t,e):new x(h[0]?s:3==g?-0:0)}if(c=G(c),l=G(l),h=h.slice(),a=c-l){for((o=a<0)?(a=-a,i=h):(l=c,i=u),i.reverse(),t=a;t--;i.push(0));i.reverse()}else for(r=(o=(a=h.length)<(t=u.length))?a:t,a=t=0;t0)for(;t--;h[n++]=0);for(t=D-1;r>a;){if(h[--r]=0;){for(n=0,d=v[i]%y,f=v[i]/y|0,o=i+(s=c);o>i;)n=((l=d*(l=m[--s]%y)+(a=f*l+(h=m[s]/y|0)*d)%y*y+p[o]+n)/g|0)+(a/y|0)+f*h,p[o--]=l%g;p[o]=n}return n?++r:p.splice(0,1),O(e,p,r)},d.negated=function(){var e=new x(this);return e.s=-e.s||null,e},d.plus=function(e,t){var n,r=this,i=r.s;if(t=(e=new x(e,t)).s,!i||!t)return new x(NaN);if(i!=t)return e.s=-t,r.minus(e);var o=r.e/B,s=e.e/B,a=r.c,c=e.c;if(!o||!s){if(!a||!c)return new x(i/0);if(!a[0]||!c[0])return c[0]?e:new x(a[0]?r:0*i)}if(o=G(o),s=G(s),a=a.slice(),i=o-s){for(i>0?(s=o,n=c):(i=-i,n=a),n.reverse();i--;n.push(0));n.reverse()}for((i=a.length)-(t=c.length)<0&&(n=c,c=a,a=n,t=i),i=0;t;)i=(a[--t]=a[t]+c[t]+i)/D|0,a[t]=D===a[t]?0:a[t]%D;return i&&(a=[i].concat(a),++s),O(e,a,s)},d.precision=d.sd=function(e,t){var n,r,i,o=this;if(null!=e&&e!==!!e)return Y(e,1,H),null==t?t=g:Y(t,0,8),P(new x(o),e,t);if(!(n=o.c))return null;if(r=(i=n.length-1)*B+1,i=n[i]){for(;i%10==0;i/=10,r--);for(i=n[0];i>=10;i/=10,r++);}return e&&o.e+1>r&&(r=o.e+1),r},d.shiftedBy=function(e){return Y(e,-9007199254740991,W),this.times("1e"+e)},d.squareRoot=d.sqrt=function(){var e,t,r,i,o,s=this,a=s.c,c=s.s,l=s.e,h=p+4,u=new x("0.5");if(1!==c||!a||!a[0])return new x(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);if(0==(c=Math.sqrt(+N(s)))||c==1/0?(((t=J(a)).length+l)%2==0&&(t+="0"),c=Math.sqrt(+t),l=G((l+1)/2)-(l<0||l%2),r=new x(t=c==1/0?"5e"+l:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new x(c+""),r.c[0])for((c=(l=r.e)+h)<3&&(c=0);;)if(o=r,r=u.times(o.plus(n(s,o,h,1))),J(o.c).slice(0,c)===(t=J(r.c)).slice(0,c)){if(r.e0&&p>0){for(o=p%a||a,h=f.substr(0,o);o0&&(h+=l+f.slice(o)),d&&(h="-"+h)}r=u?h+(n.decimalSeparator||"")+((c=+n.fractionGroupSize)?u.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(n.fractionGroupSeparator||"")):u):h}return(n.prefix||"")+r+(n.suffix||"")},d.toFraction=function(e){var t,r,i,o,s,a,c,l,h,u,d,p,y=this,b=y.c;if(null!=e&&(!(c=new x(e)).isInteger()&&(c.c||1!==c.s)||c.lt(f)))throw Error(K+"Argument "+(c.isInteger()?"out of range: ":"not an integer: ")+N(c));if(!b)return new x(y);for(t=new x(f),h=r=new x(f),i=l=new x(f),p=J(b),s=t.e=p.length-y.e-1,t.c[0]=F[(a=s%B)<0?B+a:a],e=!e||c.comparedTo(t)>0?s>0?t:h:c,a=v,v=1/0,c=new x(p),l.c[0]=0;u=n(c,t,0,1),1!=(o=r.plus(u.times(i))).comparedTo(e);)r=i,i=o,h=l.plus(u.times(o=h)),l=o,t=c.minus(u.times(o=t)),c=o;return o=n(e.minus(r),i,0,1),l=l.plus(o.times(h)),r=r.plus(o.times(i)),l.s=h.s=y.s,d=n(h,i,s*=2,g).minus(y).abs().comparedTo(n(l,r,s,g).minus(y).abs())<1?[h,i]:[l,r],v=a,d},d.toNumber=function(){return+N(this)},d.toPrecision=function(e,t){return null!=e&&Y(e,1,H),M(this,e,t,2)},d.toString=function(e){var t,n=this,i=n.s,o=n.e;return null===o?i?(t="Infinity",i<0&&(t="-"+t)):t="NaN":(null==e?t=o<=y||o>=b?X(J(n.c),o):_(J(n.c),o,"0"):10===e&&A?t=_(J((n=P(new x(n),p+o+1,g)).c),n.e,"0"):(Y(e,2,R.length,"Base"),t=r(_(J(n.c),o,"0"),10,e,i,!0)),i<0&&n.c[0]&&(t="-"+t)),t},d.valueOf=d.toJSON=function(){return N(this)},d._isBigNumber=!0,d[Symbol.toStringTag]="BigNumber",d[Symbol.for("nodejs.util.inspect.custom")]=d.valueOf,null!=t&&x.set(t),x}(),n(6266),n(5054),function(e){e.TZ1="tz1",e.TZ2="tz2",e.TZ3="tz3",e.TZ4="tz4",e.KT="KT",e.KT1="KT1",e.EDSK2="edsk2",e.SPSK="spsk",e.P2SK="p2sk",e.EDPK="edpk",e.SPPK="sppk",e.P2PK="p2pk",e.BLPK="BLpk",e.EDESK="edesk",e.SPESK="spesk",e.P2ESK="p2esk",e.EDSK="edsk",e.EDSIG="edsig",e.SPSIG="spsig",e.P2SIG="p2sig",e.SIG="sig",e.NET="Net",e.NCE="nce",e.B="B",e.O="o",e.LO="Lo",e.LLO="LLo",e.P="P",e.CO="Co",e.ID="id",e.EXPR="expr",e.TZ="TZ",e.VH="vh",e.SASK="sask",e.ZET1="zet1",e.TXR1="txr1",e.TXI="txi",e.TXM="txm",e.TXC="txc",e.TXMR="txmr",e.TXRL="txM",e.TXW="txw",e.SR1="sr1",e.SRC1="src1"}(g||(g={})),g.TZ1,new Uint8Array([6,161,159]),g.TZ2,new Uint8Array([6,161,161]),g.TZ3,new Uint8Array([6,161,164]),g.TZ4,new Uint8Array([6,161,166]),g.KT,new Uint8Array([2,90,121]),g.KT1,new Uint8Array([2,90,121]),g.EDSK,new Uint8Array([43,246,78,7]),g.EDSK2,new Uint8Array([13,15,58,7]),g.SPSK,new Uint8Array([17,162,224,201]),g.P2SK,new Uint8Array([16,81,238,189]),g.EDPK,new Uint8Array([13,15,37,217]),g.SPPK,new Uint8Array([3,254,226,86]),g.P2PK,new Uint8Array([3,178,139,127]),g.BLPK,new Uint8Array([6,149,135,204]),g.EDESK,new Uint8Array([7,90,60,179,41]),g.SPESK,new Uint8Array([9,237,241,174,150]),g.P2ESK,new Uint8Array([9,48,57,115,171]),g.EDSIG,new Uint8Array([9,245,205,134,18]),g.SPSIG,new Uint8Array([13,115,101,19,63]),g.P2SIG,new Uint8Array([54,240,44,52]),g.SIG,new Uint8Array([4,130,43]),g.NET,new Uint8Array([87,82,0]),g.NCE,new Uint8Array([69,220,169]),g.B,new Uint8Array([1,52]),g.O,new Uint8Array([5,116]),g.LO,new Uint8Array([133,233]),g.LLO,new Uint8Array([29,159,109]),g.P,new Uint8Array([2,170]),g.CO,new Uint8Array([79,179]),g.ID,new Uint8Array([153,103]),g.EXPR,new Uint8Array([13,44,64,27]),g.TZ,new Uint8Array([2,90,121]),g.VH,new Uint8Array([1,106,242]),g.SASK,new Uint8Array([11,237,20,92]),g.ZET1,new Uint8Array([18,71,40,223]),g.TXR1,new Uint8Array([1,128,120,31]),g.TXI,new Uint8Array([79,148,196]),g.TXM,new Uint8Array([79,149,30]),g.TXC,new Uint8Array([79,148,17]),g.TXMR,new Uint8Array([18,7,206,87]),g.TXRL,new Uint8Array([79,146,82]),g.TXW,new Uint8Array([79,150,72]),g.SR1,new Uint8Array([6,124,117]),g.SRC1,new Uint8Array([17,165,134,138]),g.TZ1,g.TZ2,g.TZ3,g.TZ4,g.KT,g.KT1,g.EDPK,g.SPPK,g.P2PK,g.BLPK,g.EDSIG,g.SPSIG,g.P2SIG,g.SIG,g.NET,g.B,g.P,g.O,g.VH,g.SASK,g.ZET1,g.TXR1,g.TXI,g.TXM,g.TXC,g.TXMR,g.TXRL,g.TXW,g.SR1,g.SRC1,function(e){e[e.NO_PREFIX_MATCHED=0]="NO_PREFIX_MATCHED",e[e.INVALID_CHECKSUM=1]="INVALID_CHECKSUM",e[e.INVALID_LENGTH=2]="INVALID_LENGTH",e[e.VALID=3]="VALID"}(y||(y={})),g.TZ1,g.TZ2,g.TZ3,g.TZ4,g.KT1,g.TXR1,g.EDSIG,g.P2SIG,g.SPSIG,g.SIG,g.EDPK,g.SPPK,g.P2PK,g.BLPK,g.O,g.P,g.B,(P=b||(b={})).BlockchainRequest="blockchain_request",P.PermissionRequest="permission_request",P.SignPayloadRequest="sign_payload_request",P.OperationRequest="operation_request",P.BroadcastRequest="broadcast_request",P.BlockchainResponse="blockchain_response",P.PermissionResponse="permission_response",P.SignPayloadResponse="sign_payload_response",P.OperationResponse="operation_response",P.BroadcastResponse="broadcast_response",P.Acknowledge="acknowledge",P.Disconnect="disconnect",P.Error="error",function(e){e.SIGN="sign",e.OPERATION_REQUEST="operation_request",e.ENCRYPT="encrypt",e.NOTIFICATION="notification",e.THRESHOLD="threshold"}(m||(m={})),function(e){e.MAINNET="mainnet",e.GHOSTNET="ghostnet",e.MONDAYNET="mondaynet",e.DAILYNET="dailynet",e.DELPHINET="delphinet",e.EDONET="edonet",e.FLORENCENET="florencenet",e.GRANADANET="granadanet",e.HANGZHOUNET="hangzhounet",e.ITHACANET="ithacanet",e.JAKARTANET="jakartanet",e.KATHMANDUNET="kathmandunet",e.LIMANET="limanet",e.MUMBAINET="mumbainet",e.NAIROBINET="nairobinet",e.CUSTOM="custom"}(v||(v={})),function(e){e.ENDORSEMENT="endorsement",e.SEED_NONCE_REVELATION="seed_nonce_revelation",e.DOUBLE_ENDORSEMENT_EVIDENCE="double_endorsement_evidence",e.DOUBLE_BAKING_EVIDENCE="double_baking_evidence",e.ACTIVATE_ACCOUNT="activate_account",e.PROPOSALS="proposals",e.BALLOT="ballot",e.REVEAL="reveal",e.TRANSACTION="transaction",e.ORIGINATION="origination",e.DELEGATION="delegation"}(w||(w={})),function(e){e.WEBSITE="website",e.EXTENSION="extension",e.P2P="p2p",e.WALLETCONNECT="walletconnect"}(E||(E={})),function(e){e.BACKGROUND="toBackground",e.PAGE="toPage",e.EXTENSION="toExtension"}(S||(S={})),(O=I||(I={})).BROADCAST_ERROR="BROADCAST_ERROR",O.NETWORK_NOT_SUPPORTED="NETWORK_NOT_SUPPORTED",O.NO_ADDRESS_ERROR="NO_ADDRESS_ERROR",O.NO_PRIVATE_KEY_FOUND_ERROR="NO_PRIVATE_KEY_FOUND_ERROR",O.NOT_GRANTED_ERROR="NOT_GRANTED_ERROR",O.PARAMETERS_INVALID_ERROR="PARAMETERS_INVALID_ERROR",O.TOO_MANY_OPERATIONS="TOO_MANY_OPERATIONS",O.TRANSACTION_INVALID_ERROR="TRANSACTION_INVALID_ERROR",O.SIGNATURE_TYPE_NOT_SUPPORTED="SIGNATURE_TYPE_NOT_SUPPORTED",O.ABORTED_ERROR="ABORTED_ERROR",O.UNKNOWN_ERROR="UNKNOWN_ERROR",(T=R||(R={})).NOT_CONNECTED="NOT_CONNECTED",T.CONNECTING="CONNECTING",T.CONNECTED="CONNECTED",function(e){e.CHROME_MESSAGE="chrome_message",e.WALLETCONNECT="walletconnect",e.POST_MESSAGE="post_message",e.LEDGER="ledger",e.P2P="p2p"}(A||(A={})),(M=x||(x={})).TRANSPORT_P2P_PEERS_DAPP="beacon:communication-peers-dapp",M.TRANSPORT_P2P_PEERS_WALLET="beacon:communication-peers-wallet",M.TRANSPORT_POSTMESSAGE_PEERS_DAPP="beacon:postmessage-peers-dapp",M.TRANSPORT_POSTMESSAGE_PEERS_WALLET="beacon:postmessage-peers-wallet",M.TRANSPORT_WALLETCONNECT_PEERS_DAPP="beacon:walletconnect-peers-dapp",M.LAST_SELECTED_WALLET="beacon:last-selected-wallet",M.ACCOUNTS="beacon:accounts",M.ACTIVE_ACCOUNT="beacon:active-account",M.PUSH_TOKENS="beacon:push-tokens",M.BEACON_SDK_SECRET_SEED="beacon:sdk-secret-seed",M.APP_METADATA_LIST="beacon:app-metadata-list",M.PERMISSION_LIST="beacon:permissions",M.BEACON_SDK_VERSION="beacon:sdk_version",M.MATRIX_PRESERVED_STATE="beacon:sdk-matrix-preserved-state",M.MATRIX_PEER_ROOM_IDS="beacon:matrix-peer-rooms",M.MATRIX_SELECTED_NODE="beacon:matrix-selected-node",M.MULTI_NODE_SETUP_DONE="beacon:multi-node-setup";const $={[x.TRANSPORT_P2P_PEERS_DAPP]:[],[x.TRANSPORT_P2P_PEERS_WALLET]:[],[x.TRANSPORT_POSTMESSAGE_PEERS_DAPP]:[],[x.TRANSPORT_POSTMESSAGE_PEERS_WALLET]:[],[x.TRANSPORT_WALLETCONNECT_PEERS_DAPP]:[],[x.LAST_SELECTED_WALLET]:void 0,[x.ACCOUNTS]:[],[x.ACTIVE_ACCOUNT]:void 0,[x.PUSH_TOKENS]:[],[x.BEACON_SDK_SECRET_SEED]:void 0,[x.APP_METADATA_LIST]:[],[x.PERMISSION_LIST]:[],[x.BEACON_SDK_VERSION]:void 0,[x.MATRIX_PRESERVED_STATE]:{},[x.MATRIX_PEER_ROOM_IDS]:{},[x.MATRIX_SELECTED_NODE]:void 0,[x.MULTI_NODE_SETUP_DONE]:void 0};var ee,te,ne;!function(e){e.RAW="raw",e.OPERATION="operation",e.MICHELINE="micheline"}(ee||(ee={})),function(e){e.LIGHT="light",e.DARK="dark"}(te||(te={})),function(e){e.EUROPE_EAST="europe-east",e.EUROPE_WEST="europe-west",e.NORTH_AMERICA_EAST="north-america-east",e.NORTH_AMERICA_WEST="north-america-west",e.CENTRAL_AMERICA="central-america",e.SOUTH_AMERICA="south-america",e.ASIA_EAST="asia-east",e.ASIA_WEST="asia-west",e.AFRICA="africa",e.AUSTRALIA="australia"}(ne||(ne={}));var re=function(){function e(){}return e.prototype.CallUnityOnAccountFailedToConnect=function(e){this.CallUnityMethod("OnAccountFailedToConnect",e)},e.prototype.CallUnityOnContractCallCompleted=function(e){this.CallUnityMethod("OnContractCallCompleted",e)},e.prototype.CallUnityOnContractCallFailed=function(e){this.CallUnityMethod("OnContractCallFailed",e)},e.prototype.CallUnityOnPayloadSigned=function(e){this.CallUnityMethod("OnPayloadSigned",e)},e.prototype.CallUnityOnAccountDisconnected=function(e){this.CallUnityMethod("OnAccountDisconnected",e)},e.prototype.CallUnityOnAccountConnected=function(e){this.CallUnityMethod("OnAccountConnected",{accountInfo:e})},e.prototype.CallUnityMethod=function(e,t){window.unityInstance.SendMessage("UnityBeacon",e,"string"==typeof t?t:JSON.stringify(t))},e.prototype.GetHexPayloadString=function(e,t){var n,r=(n=t,N.Buffer.from(n,"utf8").toString("hex")),i=(r.length/2).toString(16),o="00000000".concat(i),s=o.slice(o.length-8);return(e===ee.MICHELINE?"0501":"0300")+s+r},e.prototype.NumToSigningType=function(e){return 0==e?ee.RAW:1==e?ee.OPERATION:2==e?ee.MICHELINE:void 0},e.prototype.GetOperationsList=function(e,t,n,r){return[{kind:w.TRANSACTION,amount:t,destination:e,parameters:{entrypoint:n,value:JSON.parse(r)}}]},e.prototype.GetOriginationOperationsList=function(e,t){return[{kind:w.ORIGINATION,balance:"0",delegate:t,script:JSON.parse(e)}]},e}();const ie=re;var oe,se,ae;function ce(e){return Object.keys(e)}!function(e){e.transfer_request="transfer_request",e.sign_payload_request="sign_payload_request"}(oe||(oe={})),function(e){e.transfer="transfer",e.sign_payload_json="sign_payload_json",e.sign_payload_raw="sign_payload_raw"}(se||(se={})),function(e){e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(ae||(ae={}));const le=()=>{throw new Error("ExposedPromise not initialized yet.")};class he{constructor(){this._resolve=le,this._reject=le,this._status=ae.PENDING,this._promise=new Promise(((e,t)=>{this._resolve=t=>{this.isSettled()||(this._promiseResult=t,e(t),this._status=ae.RESOLVED)},this._reject=e=>{this.isSettled()||(this._promiseError=e,t(e),this._status=ae.REJECTED)}}))}get promise(){return this._promise}get resolve(){return this._resolve}get reject(){return this._reject}get status(){return this._status}get promiseResult(){return this._promiseResult}get promiseError(){return this._promiseError}static resolve(e){const t=new he;return t.resolve(e),t}static reject(e){const t=new he;return t.reject(e),t}isPending(){return this.status===ae.PENDING}isResolved(){return this.status===ae.RESOLVED}isRejected(){return this.status===ae.REJECTED}isSettled(){return this.isResolved()||this.isRejected()}}var ue=n(450),de=n(1416),fe=n(6249),pe=n(3683),ge=n(8764).Buffer,ye=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function be(e){return ge.from(e).toString("hex")}function me(e){return ye(this,void 0,void 0,(function*(){return be("string"==typeof e?(0,C.hash)((0,fe.cv)(e),32):(0,C.hash)(e,32))}))}function ve(e){return ye(this,void 0,void 0,(function*(){return(0,k._w)((0,C.hash)((0,fe.cv)(e),32))}))}function we(e,t){return ye(this,void 0,void 0,(function*(){const n=ge.from((0,de.randomBytes)(24));return be(ge.concat([n,ge.from((0,ue.secretBox)(t,n,ge.from(e,"utf8")))]))}))}function Ee(e,t){return ye(this,void 0,void 0,(function*(){const n=e.slice(0,24),r=e.slice(24),i=(0,ue.openSecretBox)(t,n,r);if(!i)throw new Error("Decryption failed");return ge.from(i).toString("utf8")}))}function Se(e,t,n){return ye(this,void 0,void 0,(function*(){const r=(0,k.zh)(ge.from(n)),i=(0,k.SH)(ge.from(t)),o="string"==typeof e?(0,fe.cv)(e):e,s=o.slice(0,32),a=o.slice(32),c=new C.BLAKE2b(24).update(s,32).update(i,32).digest(),l=(0,ue.openBox)(s,r,c,a);if(!l)throw new Error("Decryption failed");return ge.from(l).toString()}))}function Ie(e,t){return`@${e}:${t}`}var Re=n(8764).Buffer;function Ae(){return e=this,t=void 0,r=function*(){const e=(0,de.randomBytes)(16);return[e.slice(0,4),e.slice(4,6),e.slice(6,8),e.slice(8,10),e.slice(10,16)].map((function(e){return Re.from(e).toString("hex")})).join("-")},new((n=void 0)||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}));var e,t,n,r}var xe=n(5108);const Me=[e=>{}];let Te={postMessage:(e,t)=>{xe.log("GOT MOCK POST MESSAGE",e),Me.forEach((t=>{t({data:e})}))},addEventListener:(e,t)=>{Me.push(t)},removeEventListener:(e,t)=>{Me.splice(Me.indexOf((e=>e===t)),1)},location:{origin:"*"}};try{"undefined"!=typeof window&&(Te=window)}catch(e){xe.log(`not defined: ${e}`)}class Oe{track(e,t,n,r){}}var Pe=n(5108),Ne=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class ke{constructor(e){var t,n;if(this._beaconId=new he,this._keyPair=new he,!e.name)throw new Error("Name not set");if(!e.storage)throw new Error("Storage not set");this.name=e.name,this.iconUrl=e.iconUrl,this.appUrl=null!==(t=e.appUrl)&&void 0!==t?t:Te.location.origin,this.storage=e.storage,this.analytics=null!==(n=e.analytics)&&void 0!==n?n:new Oe,Te.beaconCreatedClientInstance?Pe.error("[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere."):Te.beaconCreatedClientInstance=!0,this.initSDK().catch(Pe.error)}get beaconId(){return this._beaconId.promise}get keyPair(){return this._keyPair.promise}destroy(){return Ne(this,void 0,void 0,(function*(){yield this.removeBeaconEntriesFromStorage(),Te.beaconCreatedClientInstance=!1}))}initSDK(){return Ne(this,void 0,void 0,(function*(){return this.storage.set(x.BEACON_SDK_VERSION,"4.0.4").catch(Pe.error),this.loadOrCreateBeaconSecret().catch(Pe.error),this.keyPair.then((e=>{this._beaconId.resolve(be(e.publicKey))}))}))}removeBeaconEntriesFromStorage(){return Ne(this,void 0,void 0,(function*(){const e=Object.values(x);yield Promise.all(e.map((e=>this.storage.delete(e))))}))}loadOrCreateBeaconSecret(){return Ne(this,void 0,void 0,(function*(){const e=yield this.storage.get(x.BEACON_SDK_SECRET_SEED);if(e&&"string"==typeof e)this._keyPair.resolve(yield ve(e));else{const e=yield Ae();yield this.storage.set(x.BEACON_SDK_SECRET_SEED,e),this._keyPair.resolve(yield ve(e))}}))}}var Ce=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Ue{constructor(e,t){this.storage=e,this.storageKey=t}getAll(){return Ce(this,void 0,void 0,(function*(){return this.storage.get(this.storageKey)}))}getOne(e){return Ce(this,void 0,void 0,(function*(){return(yield this.storage.get(this.storageKey)).find(e)}))}addOne(e,t,n=!0){return Ce(this,void 0,void 0,(function*(){const r=yield this.storage.get(this.storageKey);if(r.some(t)){if(n)for(let n=0;n!e(t)));return this.storage.set(this.storageKey,t)}))}removeAll(){return Ce(this,void 0,void 0,(function*(){return this.storage.delete(this.storageKey)}))}}var Le=n(8764).Buffer;const je=(e,t)=>{return n=void 0,r=void 0,o=function*(){const n=[e,t.type];t.name&&n.push(`name:${t.name}`),t.rpcUrl&&n.push(`rpc:${t.rpcUrl}`);const r=Le.from((0,C.hash)((0,fe.cv)(n.join("-")),10));return U.encode(r)},new((i=void 0)||(i=Promise))((function(e,t){function s(e){try{c(o.next(e))}catch(e){t(e)}}function a(e){try{c(o.throw(e))}catch(e){t(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof i?n:new i((function(e){e(n)}))).then(s,a)}c((o=o.apply(n,r||[])).next())}));var n,r,i,o};class ze{static hasPermission(e,t,n){return r=this,i=void 0,s=function*(){switch(e.type){case b.PermissionRequest:case b.BroadcastRequest:return!0;case b.OperationRequest:{const n=yield je(e.sourceAddress,e.network),r=yield t(n);return!!r&&r.scopes.includes(m.OPERATION_REQUEST)}case b.SignPayloadRequest:{const t=(yield n()).filter((t=>t.address===e.sourceAddress));return 0!==t.length&&t.some((e=>e.scopes.includes(m.SIGN)))}default:throw new Error("Message not handled")}},new((o=void 0)||(o=Promise))((function(e,t){function n(e){try{c(s.next(e))}catch(e){t(e)}}function a(e){try{c(s.throw(e))}catch(e){t(e)}}function c(t){var r;t.done?e(t.value):(r=t.value,r instanceof o?r:new o((function(e){e(r)}))).then(n,a)}c((s=s.apply(r,i||[])).next())}));var r,i,o,s}}var Ke=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class qe{constructor(e){this.storageManager=new Ue(e,x.ACCOUNTS)}getAccounts(){return Ke(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getAccount(e){return Ke(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.accountIdentifier===e))}))}addAccount(e){return Ke(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.accountIdentifier===e.accountIdentifier))}))}removeAccount(e){return Ke(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.accountIdentifier===e))}))}removeAccounts(e){return Ke(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.accountIdentifier)))}))}removeAllAccounts(){return Ke(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}hasPermission(e){return Ke(this,void 0,void 0,(function*(){return ze.hasPermission(e,this.getAccount.bind(this),this.getAccounts.bind(this))}))}}var De=n(8764).Buffer;const Be=e=>{return t=void 0,n=void 0,i=function*(){const t=De.from((0,C.hash)(De.from(e,"hex"),5));return U.encode(t)},new((r=void 0)||(r=Promise))((function(e,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r((function(e){e(n)}))).then(s,a)}c((i=i.apply(t,n||[])).next())}));var t,n,r,i};var We=n(5108);let Fe=!!Te.beaconSdkDebugEnabled;Fe&&We.log("[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)");var Ve=n(5108);class He{constructor(e){this.name=e}debug(e,...t){Ge.debug(this.name,e,t)}log(e,...t){Ge.log(this.name,e,t)}warn(e,...t){Ge.warn(this.name,e,t)}error(e,...t){Ge.error(this.name,e,t)}}new He("");let Ge=new class{constructor(){}debug(e,t,...n){this._log("debug",e,t,n)}log(e,t,...n){this._log("log",e,t,n)}warn(e,t,...n){this._log("warn",e,t,n)}error(e,t,...n){this._log("error",e,t,n)}_log(e,t,n,r=[]){if(!Fe)return;let i=`[BEACON] ${(new Date).toISOString()} [${t}](${n})`,o=r;switch(r[0]&&"string"==typeof r[0]&&(i+=` ${r[0]}`,o=r.slice(1)),e){case"error":Ve.group(i),Ve.error(...o);break;case"warn":Ve.group(i),Ve.warn(...o);break;case"debug":Ve.groupCollapsed(i),Ve.debug(...o);break;default:Ve.group(i),Ve.log(...o)}Ve.groupEnd()}};var Je=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Ze=new He("Client");class Ye extends ke{constructor(e){var t;super(e),this.rateLimit=2,this.rateLimitWindowInSeconds=5,this.requestCounter=[],this._transport=new he,this.accountManager=new qe(e.storage),this.matrixNodes=null!==(t=e.matrixNodes)&&void 0!==t?t:{},this.handleResponse=(e,t)=>{throw new Error(`not overwritten${JSON.stringify(e)} - ${JSON.stringify(t)}`)}}get transport(){return this._transport.promise}get connectionStatus(){var e,t;return null!==(t=null===(e=this._transport.promiseResult)||void 0===e?void 0:e.connectionStatus)&&void 0!==t?t:R.NOT_CONNECTED}get ready(){return this.transport.then((()=>{}))}getAccounts(){return Je(this,void 0,void 0,(function*(){return this.accountManager.getAccounts()}))}getAccount(e){return Je(this,void 0,void 0,(function*(){return this.accountManager.getAccount(e)}))}removeAccount(e){return Je(this,void 0,void 0,(function*(){return this.accountManager.removeAccount(e)}))}removeAllAccounts(){return Je(this,void 0,void 0,(function*(){return this.accountManager.removeAllAccounts()}))}addRequestAndCheckIfRateLimited(){return Je(this,void 0,void 0,(function*(){const e=(new Date).getTime();return this.requestCounter=this.requestCounter.filter((t=>t+1e3*this.rateLimitWindowInSeconds>e)),this.requestCounter.push(e),this.requestCounter.length>this.rateLimit}))}init(e){return Je(this,void 0,void 0,(function*(){return this._transport.status===ae.RESOLVED?(yield this.transport).type:(yield this.setTransport(e),e.type)}))}getOwnAppMetadata(){return Je(this,void 0,void 0,(function*(){return{senderId:yield Be(yield this.beaconId),name:this.name,icon:this.iconUrl}}))}getPeers(){return Je(this,void 0,void 0,(function*(){return(yield this.transport).getPeers()}))}addPeer(e){return Je(this,void 0,void 0,(function*(){return(yield this.transport).addPeer(e)}))}destroy(){const e=Object.create(null,{destroy:{get:()=>super.destroy}});return Je(this,void 0,void 0,(function*(){this._transport.status===ae.RESOLVED&&(yield(yield this.transport).disconnect()),yield e.destroy.call(this)}))}setTransport(e){return Je(this,void 0,void 0,(function*(){e?this._transport.isSettled()?this._transport=he.resolve(e):this._transport.resolve(e):this._transport.isSettled()&&(this._transport=new he)}))}addListener(e){return Je(this,void 0,void 0,(function*(){e.addListener(((e,t)=>Je(this,void 0,void 0,(function*(){if("string"==typeof e){const n=yield(new ft).deserialize(e);this.handleResponse(n,t)}})))).catch((e=>Ze.error("addListener",e)))}))}sendDisconnectToPeer(e,t){return Je(this,void 0,void 0,(function*(){const n={id:yield Ae(),version:e.version,senderId:yield Be(yield this.beaconId),type:b.Disconnect},r=yield(new ft).serialize(n),i=null!=t?t:yield this.transport;yield i.send(r,e)}))}}class Qe{constructor(e,t){this.name="BeaconError",this.title="Error",this.message=`[${e}]:${t}`,this.description=t}get fullDescription(){return{description:this.description}}static getError(e,t){switch(e){case I.BROADCAST_ERROR:return new Xe;case I.NETWORK_NOT_SUPPORTED:return new _e;case I.NO_ADDRESS_ERROR:return new $e;case I.NO_PRIVATE_KEY_FOUND_ERROR:return new et;case I.NOT_GRANTED_ERROR:return new tt;case I.PARAMETERS_INVALID_ERROR:return new nt;case I.TOO_MANY_OPERATIONS:return new rt;case I.TRANSACTION_INVALID_ERROR:return new it(t);case I.SIGNATURE_TYPE_NOT_SUPPORTED:return new Mt;case I.ABORTED_ERROR:return new yt;case I.UNKNOWN_ERROR:return new ot}}}class Xe extends Qe{constructor(){super(I.BROADCAST_ERROR,"The transaction could not be broadcast to the network. Please try again."),this.name="BroadcastBeaconError",this.title="Broadcast Error"}}class _e extends Qe{constructor(){super(I.NETWORK_NOT_SUPPORTED,"The wallet does not support this network. Please select another one."),this.name="NetworkNotSupportedBeaconError",this.title="Network Error"}}class $e extends Qe{constructor(){super(I.NO_ADDRESS_ERROR,"The wallet does not have an account set up. Please make sure to set up your wallet and try again."),this.name="NoAddressBeaconError",this.title="No Address"}}class et extends Qe{constructor(){super(I.NO_PRIVATE_KEY_FOUND_ERROR,"The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again."),this.name="NoPrivateKeyBeaconError",this.title="Account Not Found"}}class tt extends Qe{constructor(){super(I.NOT_GRANTED_ERROR,"You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions."),this.name="NotGrantedBeaconError",this.title="Permission Not Granted"}}class nt extends Qe{constructor(){super(I.PARAMETERS_INVALID_ERROR,"Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again."),this.name="ParametersInvalidBeaconError",this.title="Parameters Invalid"}}class rt extends Qe{constructor(){super(I.TOO_MANY_OPERATIONS,"The request contains too many transactions. Please include fewer operations and try again."),this.name="TooManyOperationsBeaconError",this.title="Too Many Operations"}}class it extends Qe{constructor(e){super(I.TRANSACTION_INVALID_ERROR,"The transaction is invalid and the node did not accept it."),this.data=e,this.name="TransactionInvalidBeaconError",this.title="Transaction Invalid",this.data=e}get fullDescription(){return{description:this.description,data:JSON.stringify(this.data,void 0,2)}}}class ot extends Qe{constructor(){super(I.UNKNOWN_ERROR,"An unknown error occured. Please try again or report it to a developer."),this.name="UnknownBeaconError",this.title="Error"}}var st=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const at=new He("Transport");class ct{constructor(e,t,n){this.type=A.POST_MESSAGE,this._isConnected=R.NOT_CONNECTED,this.listeners=[],this.name=e,this.client=t,this.peerManager=n}get connectionStatus(){return this._isConnected}static isAvailable(){return st(this,void 0,void 0,(function*(){return Promise.resolve(!1)}))}connect(){return st(this,void 0,void 0,(function*(){at.log("connect"),this._isConnected=R.CONNECTED}))}disconnect(){return st(this,void 0,void 0,(function*(){at.log("disconnect"),this._isConnected=R.NOT_CONNECTED}))}send(e,t){return st(this,void 0,void 0,(function*(){if(t)return this.client.sendMessage(e,t);{const t=(yield this.getPeers()).map((t=>this.client.sendMessage(e,t)));return(yield Promise.all(t))[0]}}))}addListener(e){return st(this,void 0,void 0,(function*(){at.debug("addListener"),this.listeners.push(e)}))}removeListener(e){return st(this,void 0,void 0,(function*(){at.log("removeListener"),this.listeners=this.listeners.filter((t=>t!==e))}))}getPeers(){return st(this,void 0,void 0,(function*(){return this.peerManager.getPeers()}))}addPeer(e,t=!0){return st(this,void 0,void 0,(function*(){at.log("addPeer","adding peer",e),yield this.peerManager.addPeer(e),yield this.listen(e.publicKey)}))}removePeer(e){return st(this,void 0,void 0,(function*(){at.log("removePeer","removing peer",e),yield this.peerManager.removePeer(e.publicKey),this.client&&(yield this.client.unsubscribeFromEncryptedMessage(e.publicKey))}))}removeAllPeers(){return st(this,void 0,void 0,(function*(){at.log("removeAllPeers"),yield this.peerManager.removeAllPeers(),this.client&&(yield this.client.unsubscribeFromEncryptedMessages())}))}notifyListeners(e,t){return st(this,void 0,void 0,(function*(){0===this.listeners.length?at.warn("notifyListeners","0 listeners notified!",this):at.log("notifyListeners",`Notifying ${this.listeners.length} listeners`,this),this.listeners.forEach((n=>{n(e,t)}))}))}}var lt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class ht{constructor(e){this.prefix=e}static isSupported(){return lt(this,void 0,void 0,(function*(){return Promise.resolve(Boolean("undefined"!=typeof window)&&Boolean(window.localStorage))}))}get(e){return lt(this,void 0,void 0,(function*(){const t=localStorage.getItem(this.getPrefixedKey(e));if(!t)return"object"==typeof $[e]?JSON.parse(JSON.stringify($[e])):$[e];try{return JSON.parse(t)}catch(e){return t}}))}set(e,t){return lt(this,void 0,void 0,(function*(){return"string"==typeof t?localStorage.setItem(this.getPrefixedKey(e),t):localStorage.setItem(this.getPrefixedKey(e),JSON.stringify(t))}))}delete(e){return lt(this,void 0,void 0,(function*(){return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(e)))}))}getPrefixedKey(e){return this.prefix?`${this.prefix}-${e}`:e}}new He("STORAGE");var ut=n(8764).Buffer,dt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class ft{serialize(e){return dt(this,void 0,void 0,(function*(){const t=JSON.stringify(e);return U.encode(ut.from(t))}))}deserialize(e){return dt(this,void 0,void 0,(function*(){if("string"!=typeof e)throw new Error("Encoded payload needs to be a string");return JSON.parse(U.decode(e).toString())}))}}var pt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class gt{constructor(e){this.storageManager=new Ue(e,x.APP_METADATA_LIST)}getAppMetadataList(){return pt(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getAppMetadata(e){return pt(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.senderId===e))}))}addAppMetadata(e){return pt(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.senderId===e.senderId))}))}removeAppMetadata(e){return pt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.senderId===e))}))}removeAppMetadatas(e){return pt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.senderId)))}))}removeAllAppMetadata(){return pt(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}class yt extends Qe{constructor(){super(I.ABORTED_ERROR,"The action was aborted by the user."),this.name="UnknownBeaconError",this.title="Aborted"}}var bt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class mt{constructor(e,t){this.storageManager=new Ue(e,t)}hasPeer(e){return bt(this,void 0,void 0,(function*(){return!!(yield this.getPeer(e))}))}getPeers(){return bt(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getPeer(e){return bt(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.publicKey===e))}))}addPeer(e){return bt(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.publicKey===e.publicKey))}))}removePeer(e){return bt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.publicKey===e))}))}removePeers(e){return bt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.publicKey)))}))}removeAllPeers(){return bt(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}var vt=n(4826),wt=n(8764).Buffer,Et=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class St{constructor(e){this.keyPair=e}getPublicKey(){var e;return Et(this,void 0,void 0,(function*(){return be(null===(e=this.keyPair)||void 0===e?void 0:e.publicKey)}))}getPublicKeyHash(){return Et(this,void 0,void 0,(function*(){return me(this.keyPair.publicKey)}))}createCryptoBoxServer(e,t){return Et(this,void 0,void 0,(function*(){return(0,vt.serverSessionKeys)({publicKey:(0,k.SH)(t.publicKey),secretKey:(0,k.zh)(t.secretKey)},(0,k.SH)(wt.from(e,"hex")))}))}createCryptoBoxClient(e,t){return Et(this,void 0,void 0,(function*(){return(0,vt.clientSessionKeys)({publicKey:(0,k.SH)(t.publicKey),secretKey:(0,k.zh)(t.secretKey)},(0,k.SH)(wt.from(e,"hex")))}))}encryptMessageAsymmetric(e,t){return Et(this,void 0,void 0,(function*(){return function(e,t){return ye(this,void 0,void 0,(function*(){const n=(0,k.SH)(ge.from(t)),r=(0,ue.generateKeyPair)(),i=new C.BLAKE2b(24).update(r.publicKey,32).update(n,32).digest(),o="string"==typeof e?(0,fe.cv)(e):e,s=(0,ue.box)(n,r.secretKey,i,o);return be((0,pe.z)(r.publicKey,s))}))}(t,wt.from(e,"hex"))}))}}var It=n(5108),Rt=n(8764).Buffer,At=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class xt extends St{constructor(e,t){super(t),this.name=e,this.init().catch(It.error)}start(){return At(this,void 0,void 0,(function*(){yield Promise.resolve()}))}getPairingRequestInfo(){return At(this,void 0,void 0,(function*(){return{id:yield Ae(),type:"postmessage-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey()}}))}getPairingResponseInfo(e){return At(this,void 0,void 0,(function*(){return{id:e.id,type:"postmessage-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey()}}))}unsubscribeFromEncryptedMessage(e){return At(this,void 0,void 0,(function*(){this.activeListeners.get(e)&&this.activeListeners.delete(e)}))}unsubscribeFromEncryptedMessages(){return At(this,void 0,void 0,(function*(){this.activeListeners.clear()}))}decryptMessage(e,t){return At(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxServer(e,this.keyPair),r=Rt.from(t,"hex");if(r.length>=40)try{return yield Ee(r,n.receive)}catch(e){}throw new Error("Could not decrypt message")}))}encryptMessage(e,t){return At(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(e,this.keyPair);return we(t,n.send)}))}}class Mt extends Qe{constructor(){super(I.SIGNATURE_TYPE_NOT_SUPPORTED,"The wallet is not able to sign payloads of this type."),this.name="SignatureTypeNotSupportedBeaconError",this.title="Signature Type Not Supported"}}var Tt,Ot=n(9669),Pt=n.n(Ot);!function(e){e.TEXT="m.text"}(Tt||(Tt={}));class Nt{constructor(e,t,n,r){this.type=e,this.sender=t,this.content=n,this.timestamp=r}static from(e){if(Ct(e))return new Nt(e.content.msgtype,e.sender,e.content.body,e.origin_server_ts)}}const kt=e=>"m.room.message"===e.type,Ct=e=>kt(e)&&e.content instanceof Object&&"msgtype"in e.content&&e.content.msgtype===Tt.TEXT;var Ut;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.JOINED=1]="JOINED",e[e.INVITED=2]="INVITED",e[e.LEFT=3]="LEFT"}(Ut||(Ut={}));class Lt{constructor(e,t=Ut.UNKNOWN,n=[],r=[]){this.id=e,this.status=t,this.members=n,this.messages=r}static fromSync(e){var t,n,r;if(!e)return[];function i(e,t){return Object.entries(e).map((([e,n])=>t(e,n)))}return[...i(null!==(t=e.join)&&void 0!==t?t:{},Lt.fromJoined),...i(null!==(n=e.invite)&&void 0!==n?n:{},Lt.fromInvited),...i(null!==(r=e.leave)&&void 0!==r?r:{},Lt.fromLeft)]}static from(e,t){return"string"==typeof e?new Lt(e,t||Ut.UNKNOWN):void 0!==t?new Lt(e.id,t,e.members,e.messages):e}static merge(e,t){return t&&t.id===e.id?new Lt(e.id,e.status,[...t.members,...e.members].filter(((e,t,n)=>n.indexOf(e)===t)),[...t.messages,...e.messages]):Lt.from(e)}static fromJoined(e,t){const n=[...t.state.events,...t.timeline.events],r=Lt.getMembersFromEvents(n),i=Lt.getMessagesFromEvents(n);return new Lt(e,Ut.JOINED,r,i)}static fromInvited(e,t){const n=Lt.getMembersFromEvents(t.invite_state.events);return new Lt(e,Ut.INVITED,n)}static fromLeft(e,t){const n=[...t.state.events,...t.timeline.events],r=Lt.getMembersFromEvents(n),i=Lt.getMessagesFromEvents(n);return new Lt(e,Ut.LEFT,r,i)}static getMembersFromEvents(e){return Lt.getUniqueEvents(e.filter((e=>(e=>"m.room.create"===e.type&&e.content instanceof Object&&"creator"in e.content)(e)||(e=>"m.room.member"===e.type&&e.content instanceof Object&&"membership"in e.content&&"join"===e.content.membership)(e)))).map((e=>e.sender)).filter(((e,t,n)=>n.indexOf(e)===t))}static getMessagesFromEvents(e){return Lt.getUniqueEvents(e.filter(kt)).map((e=>Nt.from(e))).filter(Boolean)}static getUniqueEvents(e){const t={},n=[];return e.forEach(((e,r)=>{const i=e.event_id;void 0!==i&&i in t||(void 0!==i&&(t[i]=r),n.push(e))})),n}}var jt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const zt=["syncToken","rooms"];class Kt{constructor(e){this.storage=e,this.state={isRunning:!1,userId:void 0,deviceId:void 0,txnNo:0,accessToken:void 0,syncToken:void 0,pollingTimeout:void 0,pollingRetries:0,rooms:{}},this.onStateChangedListeners=new Map,this.waitReadyPromise=new Promise(((e,t)=>jt(this,void 0,void 0,(function*(){try{yield this.initFromStorage(),e()}catch(e){t(e)}}))))}get(e){return this.state[e]}getRoom(e){const t=Lt.from(e,Ut.UNKNOWN);return this.state.rooms[t.id]||t}update(e){return jt(this,void 0,void 0,(function*(){yield this.waitReady();const t=Object.assign({},this.state);this.setState(e),this.updateStorage(e),this.notifyListeners(t,this.state,e)}))}onStateChanged(e,...t){t.length>0?t.forEach((t=>{this.onStateChangedListeners.set(t,e)})):this.onStateChangedListeners.set("all",e)}waitReady(){return jt(this,void 0,void 0,(function*(){return this.waitReadyPromise}))}initFromStorage(){return jt(this,void 0,void 0,(function*(){const e=yield this.storage.get(x.MATRIX_PRESERVED_STATE);this.setState(e)}))}prepareData(e){const t=["rooms"].some((t=>void 0!==e[t]))?JSON.parse(JSON.stringify(e)):e;return Object.values(t.rooms||{}).forEach((e=>{e.messages=[]})),t}updateStorage(e){if(Object.entries(e).filter((([e,t])=>zt.includes(e)&&Boolean(t))).length>0){const e={};zt.forEach((t=>{e[t]=this.state[t]})),this.storage.set(x.MATRIX_PRESERVED_STATE,this.prepareData(e))}}setState(e){this.state={isRunning:e.isRunning||this.state.isRunning,userId:e.userId||this.state.userId,deviceId:e.deviceId||this.state.deviceId,txnNo:e.txnNo||this.state.txnNo,accessToken:e.accessToken||this.state.accessToken,syncToken:e.syncToken||this.state.syncToken,pollingTimeout:e.pollingTimeout||this.state.pollingTimeout,pollingRetries:e.pollingRetries||this.state.pollingRetries,rooms:this.mergeRooms(this.state.rooms,e.rooms)}}mergeRooms(e,t){if(!t)return e;const n=Array.isArray(t)?t:Object.values(t),r=Object.assign({},e);return n.forEach((t=>{r[t.id]=Lt.merge(t,e[t.id])})),r}notifyListeners(e,t,n){const r=this.onStateChangedListeners.get("all");r&&r(e,t,n),ce(n).filter((e=>void 0!==n[e])).forEach((r=>{const i=this.onStateChangedListeners.get(r);i&&i(e,t,n)}))}}var qt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Dt=new He("MatrixHttpClient");class Bt{constructor(e){this.baseUrl=e,this.cancelTokenSource=Pt().CancelToken.source()}get(e,t,n){return qt(this,void 0,void 0,(function*(){return this.send("GET",e,n,t)}))}post(e,t,n,r){return qt(this,void 0,void 0,(function*(){return this.send("POST",e,n,r,t)}))}put(e,t,n,r){return qt(this,void 0,void 0,(function*(){return this.send("PUT",e,n,r,t)}))}cancelAllRequests(){return qt(this,void 0,void 0,(function*(){return this.cancelTokenSource.cancel("Manually cancelled")}))}send(e,t,n,r,i){return qt(this,void 0,void 0,(function*(){const o=n?this.getHeaders(n):void 0,s=r?this.getParams(r):void 0;let a;try{a=yield Pt().request({method:e,url:t,baseURL:this.apiUrl("/_matrix/client/r0"),headers:o,data:i,params:s,cancelToken:this.cancelTokenSource.token})}catch(e){const t=e;throw Dt.error("send",t.code,t.message,t.response.data),e.response.data}return a.data}))}getHeaders(e){const t={},n=[];if(e.accessToken&&n.push(["Authorization",`Bearer ${e.accessToken}`]),0!==n.length){for(const[e,r]of n)t[e]=r;return t}}getParams(e){if(!e)return;const t=Object.assign(e,{});return ce(t).forEach((e=>void 0===t[e]&&delete t[e])),t}apiUrl(...e){return[this.baseUrl.endsWith("/")?this.baseUrl.substr(0,this.baseUrl.length-1):this.baseUrl,...e.map((e=>e.startsWith("/")?e.substr(1):e))].join("/")}}var Wt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Ft{constructor(e){this.httpClient=e}createRoom(e,t={}){return Wt(this,void 0,void 0,(function*(){return this.httpClient.post("/createRoom",t,{accessToken:e})}))}inviteToRoom(e,t,n){return Wt(this,void 0,void 0,(function*(){return n.status!==Ut.JOINED&&n.status!==Ut.UNKNOWN?Promise.reject(`User is not a member of room ${n.id}.`):this.httpClient.post(`/rooms/${encodeURIComponent(n.id)}/invite`,{user_id:t},{accessToken:e})}))}joinRoom(e,t){return Wt(this,void 0,void 0,(function*(){return t.status===Ut.JOINED?Promise.resolve({room_id:t.id}):this.httpClient.post(`/rooms/${encodeURIComponent(t.id)}/join`,{},{accessToken:e})}))}getJoinedRooms(e){return Wt(this,void 0,void 0,(function*(){return this.httpClient.get("/joined_rooms",void 0,{accessToken:e})}))}}class Vt{constructor(e){this.httpClient=e}login(e,t,n){return r=this,i=void 0,s=function*(){return this.httpClient.post("/login",{type:"m.login.password",identifier:{type:"m.id.user",user:e},password:t,device_id:n})},new((o=void 0)||(o=Promise))((function(e,t){function n(e){try{c(s.next(e))}catch(e){t(e)}}function a(e){try{c(s.throw(e))}catch(e){t(e)}}function c(t){var r;t.done?e(t.value):(r=t.value,r instanceof o?r:new o((function(e){e(r)}))).then(n,a)}c((s=s.apply(r,i||[])).next())}));var r,i,o,s}}var Ht,Gt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Jt{constructor(e){this.httpClient=e,this.cachedPromises=new Map}sync(e,t){return Gt(this,void 0,void 0,(function*(){return this.withCache("sync",(()=>this.httpClient.get("/sync",{timeout:t?t.pollingTimeout:void 0,since:t?t.syncToken:void 0},{accessToken:e})))}))}sendMessage(e,t,n,r){return Gt(this,void 0,void 0,(function*(){return new Promise(((i,o)=>this.scheduleEvent({accessToken:e,roomId:t,type:"m.room.message",content:n,txnId:r,onSuccess:i,onError:o})))}))}scheduleEvent(e){this.sendEvent(e)}sendEvent(e){return Gt(this,void 0,void 0,(function*(){const{roomId:t,type:n,txnId:r,content:i,accessToken:o}=e;try{const s=yield this.httpClient.put(`/rooms/${encodeURIComponent(t)}/send/${n}/${encodeURIComponent(r)}`,i,{accessToken:o});e.onSuccess(s)}catch(t){e.onError(t)}}))}withCache(e,t){let n=this.cachedPromises.get(e);return n||(n=t().finally((()=>{this.cachedPromises.delete(e)})),this.cachedPromises.set(e,n)),n}}class Zt{constructor(){this.events={}}on(e,t){return"object"!=typeof this.events[e]&&(this.events[e]=[]),this.events[e].push(t),()=>this.removeListener(e,t)}removeListener(e,t){if("object"!=typeof this.events[e])return;if(!t)return void(this.events[e]=[]);const n=this.events[e].indexOf(t);n>-1&&this.events[e].splice(n,1)}removeAllListeners(){Object.keys(this.events).forEach((e=>this.events[e].splice(0,this.events[e].length)))}emit(e,...t){"object"==typeof this.events[e]&&[...this.events[e]].forEach((e=>e.apply(this,t)))}once(e,t){const n=this.on(e,((...e)=>{n(),t.apply(this,e)}));return n}}!function(e){e.INVITE="invite",e.MESSAGE="message"}(Ht||(Ht={}));class Yt extends Zt{constructor(){super(...arguments),this.eventEmitProviders=new Map([[Ht.INVITE,()=>[this.isInvite,this.emitInvite.bind(this)]],[Ht.MESSAGE,()=>[this.isMessage,this.emitMessage.bind(this)]]])}onStateChanged(e,t,n){for(const e of ce(Ht))this.emitIfEvent(Ht[e],n)}emitIfEvent(e,t){const n=this.eventEmitProviders.get(e);if(n){const[r,i]=n();r(t)&&i(e,t)}}emitClientEvent(e,t,n){this.emit(e,{type:e,content:t,timestamp:n})}isInvite(e){return!!e.rooms&&e.rooms.some((e=>e.status===Ut.INVITED))}emitInvite(e,t){t.rooms.filter((e=>e.status===Ut.INVITED)).map((e=>[e.id,e.members])).forEach((([t,n])=>{this.emitClientEvent(e,{roomId:t,members:n})}))}isMessage(e){return!!e.rooms&&e.rooms.some((e=>e.messages.length>0))}emitMessage(e,t){t.rooms.filter((e=>e.messages.length>0)).map((e=>e.messages.map((t=>[e.id,t,t.timestamp])))).reduce(((e,t)=>e.concat(t)),[]).forEach((([t,n,r])=>{this.emitClientEvent(e,{roomId:t,message:n},r)}))}}var Qt=n(5108),Xt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const _t=new He("MatrixClient");class $t{constructor(e,t,n,r,i,o){this.store=e,this.eventEmitter=t,this.userService=n,this.roomService=r,this.eventService=i,this.httpClient=o,this.isActive=!0,this._isReady=new he,this.store.onStateChanged(((e,t,n)=>{this.eventEmitter.onStateChanged(e,t,n)}),"rooms")}static create(e){const t=new Kt(e.storage),n=new Yt,r=new Bt(e.baseUrl),i=new Vt(r),o=new Ft(r),s=new Jt(r);return new $t(t,n,i,o,s,r)}get joinedRooms(){return new Promise((e=>Xt(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ut.JOINED)))}))))}get invitedRooms(){return new Promise((e=>Xt(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ut.INVITED)))}))))}get leftRooms(){return new Promise((e=>Xt(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Ut.LEFT)))}))))}start(e){return Xt(this,void 0,void 0,(function*(){const t=yield this.userService.login(e.id,e.password,e.deviceId);yield this.store.update({accessToken:t.access_token});const n=new Promise(((e,t)=>Xt(this,void 0,void 0,(function*(){yield this.poll(0,(t=>Xt(this,void 0,void 0,(function*(){this.store.get("isRunning")||e(),yield this.store.update({isRunning:!0,syncToken:t.next_batch,pollingTimeout:3e4,pollingRetries:0,rooms:Lt.fromSync(t.rooms)})}))),(e=>Xt(this,void 0,void 0,(function*(){this.store.get("isRunning")||t(e),yield this.store.update({isRunning:!1,pollingRetries:this.store.get("pollingRetries")+1})}))))}))));return n.then((()=>{this._isReady.resolve()})).catch(Qt.error),n}))}isConnected(){return Xt(this,void 0,void 0,(function*(){return this._isReady.promise}))}stop(){return Xt(this,void 0,void 0,(function*(){return _t.log("MATRIX CLIENT STOPPED"),this.isActive=!1,this._isReady=new he,this.httpClient.cancelAllRequests()}))}subscribe(e,t){this.eventEmitter.on(e,t)}unsubscribe(e,t){t&&this.eventEmitter.removeListener(e,t)}unsubscribeAll(e){this.eventEmitter.removeListener(e)}getRoomById(e){return Xt(this,void 0,void 0,(function*(){return yield this.isConnected(),this.store.getRoom(e)}))}createTrustedPrivateRoom(...e){return Xt(this,void 0,void 0,(function*(){return yield this.isConnected(),this.requiresAuthorization("createRoom",(t=>Xt(this,void 0,void 0,(function*(){return(yield this.roomService.createRoom(t,{room_version:"5",invite:e,preset:"public_chat",is_direct:!0})).room_id}))))}))}inviteToRooms(e,...t){return Xt(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("invite",(n=>Promise.all(t.map((t=>{const r=this.store.getRoom(t);this.roomService.inviteToRoom(n,e,r).catch((e=>_t.warn("inviteToRooms",e)))})))))}))}joinRooms(...e){return Xt(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("join",(t=>Promise.all(e.map((e=>{const n=this.store.getRoom(e);return this.roomService.joinRoom(t,n)})))))}))}sendTextMessage(e,t){return Xt(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("send",(n=>Xt(this,void 0,void 0,(function*(){const r=yield this.createTxnId();return this.eventService.sendMessage(n,e,{msgtype:"m.text",body:t},r)}))))}))}poll(e,t,n){return Xt(this,void 0,void 0,(function*(){const r=this.store,i=this.sync.bind(this),o=(s,a)=>Xt(this,void 0,void 0,(function*(){let c=0;try{const e=yield i();t(e)}catch(e){n(e),c=r.get("pollingRetries"),this.isActive&&_t.log(`Retry syncing... ${c} retries so far`)}finally{this.isActive?setTimeout((()=>Xt(this,void 0,void 0,(function*(){yield o(s,a)}))),c>3?5e3+e:e):a(new Error("Syncing stopped manually."))}}));return new Promise(o)}))}sync(){return Xt(this,void 0,void 0,(function*(){return this.requiresAuthorization("sync",(e=>Xt(this,void 0,void 0,(function*(){return this.eventService.sync(e,{pollingTimeout:this.store.get("pollingTimeout"),syncToken:this.store.get("syncToken")})}))))}))}requiresAuthorization(e,t){return Xt(this,void 0,void 0,(function*(){const n=this.store.get("accessToken");return n?t(n):Promise.reject(`${e} requires authorization but no access token has been provided.`)}))}createTxnId(){return Xt(this,void 0,void 0,(function*(){const e=(new Date).getTime(),t=this.store.get("txnNo");return yield this.store.update({txnNo:t+1}),`m${e}.${t}`}))}}var en=n(8764).Buffer,tn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const nn=new He("P2PCommunicationClient"),rn={[ne.EUROPE_WEST]:["beacon-node-1.diamond.papers.tech","beacon-node-1.sky.papers.tech","beacon-node-2.sky.papers.tech","beacon-node-1.hope.papers.tech","beacon-node-1.hope-2.papers.tech","beacon-node-1.hope-3.papers.tech","beacon-node-1.hope-4.papers.tech","beacon-node-1.hope-5.papers.tech"]};class on extends St{constructor(e,t,n,r,i,o,s){super(t),this.name=e,this.replicationCount=n,this.storage=r,this.iconUrl=o,this.appUrl=s,this.client=new he,this.activeListeners=new Map,this.ignoredRooms=[],this.loginCounter=0,nn.log("constructor","P2PCommunicationClient created"),this.ENABLED_RELAY_SERVERS=rn,i&&(this.ENABLED_RELAY_SERVERS=Object.assign(Object.assign({},rn),i))}getPairingRequestInfo(){return tn(this,void 0,void 0,(function*(){const e={id:yield Ae(),type:"p2p-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(e.icon=this.iconUrl),this.appUrl&&(e.appUrl=this.appUrl),e}))}getPairingResponseInfo(e){return tn(this,void 0,void 0,(function*(){const t={id:e.id,type:"p2p-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(t.icon=this.iconUrl),this.appUrl&&(t.appUrl=this.appUrl),t}))}findBestRegion(){return tn(this,void 0,void 0,(function*(){if(this.selectedRegion)return this.selectedRegion;const e=Object.keys(this.ENABLED_RELAY_SERVERS),t=[];e.forEach((e=>{var n;const r=null!==(n=this.ENABLED_RELAY_SERVERS[e])&&void 0!==n?n:[],i=Math.floor(Math.random()*r.length);t.push(this.getBeaconInfo(r[i]).then((t=>({region:e,server:r[i],response:t}))).catch((e=>new Promise(((t,n)=>{setTimeout((()=>n(e)),2e3)})))))}));const n=yield Promise.race(t);return this.selectedRegion=n.region,n.region}))}getRelayServer(){return tn(this,void 0,void 0,(function*(){if(this.relayServer){const e=yield this.relayServer.promise;if(Date.now()-e.localTimestamp<6e4)return{server:e.server,timestamp:e.timestamp};const t=yield this.getBeaconInfo(e.server);return this.relayServer.resolve({server:e.server,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e.server,timestamp:t.timestamp}}this.relayServer=new he;const e=yield this.storage.get(x.MATRIX_SELECTED_NODE);if(e&&e.length>0){const t=yield this.getBeaconInfo(e);return this.relayServer.resolve({server:e,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e,timestamp:t.timestamp}}const t=yield this.findBestRegion(),n=this.ENABLED_RELAY_SERVERS[t];if(!n)throw new Error(`No servers found for region ${t}`);const r=[...n];for(;r.length>0;){const e=Math.floor(Math.random()*r.length),t=r[e];try{const e=yield this.getBeaconInfo(t);return this.storage.set(x.MATRIX_SELECTED_NODE,t).catch((e=>nn.log(e))),this.relayServer.resolve({server:t,timestamp:e.timestamp,localTimestamp:(new Date).getTime()}),{server:t,timestamp:e.timestamp}}catch(n){nn.log(`Ignoring server "${t}", trying another one...`),r.splice(e,1)}}throw this.relayServer.reject("No matrix server reachable!"),new Error("No matrix server reachable!")}))}getBeaconInfo(e){return tn(this,void 0,void 0,(function*(){return Pt().get(`https://${e}/_synapse/client/beacon/info`).then((e=>({region:e.data.region,known_servers:e.data.known_servers,timestamp:Math.floor(e.data.timestamp)})))}))}tryJoinRooms(e,t=1){return tn(this,void 0,void 0,(function*(){try{yield(yield this.client.promise).joinRooms(e)}catch(n){t<=10&&"M_FORBIDDEN"===n.errcode?(nn.log("Retrying to join...",n),setTimeout((()=>tn(this,void 0,void 0,(function*(){yield this.tryJoinRooms(e,t+1)}))),200)):nn.log(`Failed to join after ${t} tries.`,n)}}))}start(){var e,t;return tn(this,void 0,void 0,(function*(){nn.log("start","starting client"),nn.log("start","connecting to server");const n=yield this.getRelayServer(),r=$t.create({baseUrl:`https://${n.server}`,storage:this.storage});if(this.initialListener=e=>tn(this,void 0,void 0,(function*(){this.initialEvent&&this.initialEvent.timestamp&&e&&e.timestamp?this.initialEvent.timestamptn(this,void 0,void 0,(function*(){let t;1===e.content.members.length&&(t=e.content.members[0]),yield this.tryJoinRooms(e.content.roomId),t&&(yield this.updateRelayServer(t),yield this.updatePeerRoom(t,e.content.roomId))})))),!n.timestamp)throw new Error("No timestamp received from relay server");const i=Math.floor(n.timestamp),o=`login:${Math.floor(i/300)}`;nn.log("start",`login ${o}, ${yield this.getPublicKeyHash()} on ${n.server}`);const s=(0,C.hash)((0,fe.cv)(o),32),a=null!==(e=this.keyPair.secretKey)&&void 0!==e?e:this.keyPair.privateKey,c=(0,k.Xx)(a,s);try{yield r.start({id:yield this.getPublicKeyHash(),password:`ed:${be(c)}:${yield this.getPublicKey()}`,deviceId:be(this.keyPair.publicKey)})}catch(e){if(nn.error("start","Could not log in, retrying"),yield this.reset(),!this.selectedRegion)throw new Error("No region selected.");if(this.loginCounter<=(null!==(t=this.ENABLED_RELAY_SERVERS[this.selectedRegion])&&void 0!==t?t:[]).length)return this.loginCounter++,void this.start();throw nn.error("start","Tried to log in to every known beacon node, but no login was successful."),new Error("Could not connect to any beacon nodes. Try again later.")}nn.log("start","login successful, client is ready"),this.client.resolve(r)}))}stop(){return tn(this,void 0,void 0,(function*(){nn.log("stop","stopping client"),this.client.isResolved()&&(yield(yield this.client.promise).stop().catch((e=>nn.error(e)))),yield this.reset()}))}reset(){return tn(this,void 0,void 0,(function*(){nn.log("reset","resetting connection"),yield this.storage.delete(x.MATRIX_PEER_ROOM_IDS).catch((e=>nn.log(e))),yield this.storage.delete(x.MATRIX_PRESERVED_STATE).catch((e=>nn.log(e))),yield this.storage.delete(x.MATRIX_SELECTED_NODE).catch((e=>nn.log(e))),this.relayServer=void 0,this.client=new he,this.initialEvent=void 0,this.initialListener=void 0}))}listenForEncryptedMessage(e,t){return tn(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;nn.log("listenForEncryptedMessage",`start listening for encrypted messages from publicKey ${e}`);const n=yield this.createCryptoBoxServer(e,this.keyPair),r=r=>tn(this,void 0,void 0,(function*(){if(this.isTextMessage(r.content)&&(yield this.isSender(r,e))){let i;yield this.updateRelayServer(r.content.message.sender),yield this.updatePeerRoom(r.content.message.sender,r.content.roomId);try{i=en.from(r.content.message.content,"hex")}catch(e){}if(i&&i.length>=40)try{const r=yield Ee(i,n.receive);nn.log("listenForEncryptedMessage",`received a message from ${e}`,r),t(r)}catch(e){}}}));this.activeListeners.set(e,r),(yield this.client.promise).subscribe(Ht.MESSAGE,r);const i=this.initialEvent;i&&i.timestamp&&(new Date).getTime()-i.timestamp<3e5?(nn.log("listenForEncryptedMessage","Handling previous event"),yield r(i)):nn.log("listenForEncryptedMessage","No previous event found");const o=this.initialListener;o&&(yield this.client.promise).unsubscribe(Ht.MESSAGE,o),this.initialListener=void 0,this.initialEvent=void 0}))}unsubscribeFromEncryptedMessage(e){return tn(this,void 0,void 0,(function*(){const t=this.activeListeners.get(e);t&&((yield this.client.promise).unsubscribe(Ht.MESSAGE,t),this.activeListeners.delete(e))}))}unsubscribeFromEncryptedMessages(){return tn(this,void 0,void 0,(function*(){(yield this.client.promise).unsubscribeAll(Ht.MESSAGE),this.activeListeners.clear()}))}sendMessage(e,t){return tn(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(t.publicKey,this.keyPair),r=Ie(yield me(en.from(t.publicKey,"hex")),t.relayServer),i=yield this.getRelevantRoom(r);yield this.waitForJoin(i);const o=yield we(e,n.send);nn.log("sendMessage","sending encrypted message",t.publicKey,i,e),(yield this.client.promise).sendTextMessage(i,o).catch((e=>tn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){nn.log("sendMessage","M_FORBIDDEN",i,e),yield this.deleteRoomIdFromRooms(i);const t=yield this.getRelevantRoom(r);nn.log("sendMessage","Old room deleted, new room created",t),(yield this.client.promise).sendTextMessage(t,o).catch((e=>tn(this,void 0,void 0,(function*(){nn.log("sendMessage","inner error",t,e)}))))}else nn.log("sendMessage","unexpected error",e)}))))}))}updatePeerRoom(e,t){return tn(this,void 0,void 0,(function*(){nn.log("updatePeerRoom",e,t);const n=e.split(":");if(n.length<2||!n[0].startsWith("@"))throw new Error("Invalid sender");const r=yield this.storage.get(x.MATRIX_PEER_ROOM_IDS),i=r[e];i===t&&nn.debug("updatePeerRoom","rooms are the same, not updating"),nn.debug("updatePeerRoom","current room",i,"new room",t),i&&i[1]&&(nn.log("updatePeerRoom",`adding room "${i[1]}" to ignored array`),this.ignoredRooms.push(i[1])),r[e]=t,yield this.storage.set(x.MATRIX_PEER_ROOM_IDS,r)}))}deleteRoomIdFromRooms(e){return tn(this,void 0,void 0,(function*(){const t=yield this.storage.get(x.MATRIX_PEER_ROOM_IDS),n=Object.entries(t).filter((t=>t[1]!==e)).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t[0]]:t[1]})),{});yield this.storage.set(x.MATRIX_PEER_ROOM_IDS,n),this.ignoredRooms.push(e)}))}listenForChannelOpening(e){return tn(this,void 0,void 0,(function*(){nn.debug("listenForChannelOpening"),(yield this.client.promise).subscribe(Ht.MESSAGE,(t=>tn(this,void 0,void 0,(function*(){if(this.isTextMessage(t.content)&&(yield this.isChannelOpenMessage(t.content))){nn.log("listenForChannelOpening","channel opening received, trying to decrypt",JSON.stringify(t)),yield this.updateRelayServer(t.content.message.sender),yield this.updatePeerRoom(t.content.message.sender,t.content.roomId);const n=t.content.message.content.split(":"),r=en.from(n[n.length-1],"hex");if(r.length>=40)try{const t=JSON.parse(yield Se(r,this.keyPair.publicKey,this.keyPair.secretKey));nn.log("listenForChannelOpening","channel opening received and decrypted",JSON.stringify(t)),e(Object.assign(Object.assign({},t),{senderId:yield Be(t.publicKey)}))}catch(e){}}}))))}))}waitForJoin(e,t=0){return tn(this,void 0,void 0,(function*(){const n=yield(yield this.client.promise).getRoomById(e);if(nn.log("waitForJoin",`Currently ${n.members.length} members, we need at least 2`),!(n.members.length>=2||0===n.members.length)){if(t<=200)return nn.log(`Waiting for join... Try: ${t}`),new Promise((n=>{setTimeout((()=>tn(this,void 0,void 0,(function*(){n(this.waitForJoin(e,t+1))}))),100*(t>50?10:1))}));throw new Error(`No one joined after ${t} tries.`)}}))}sendPairingResponse(e){return tn(this,void 0,void 0,(function*(){nn.log("sendPairingResponse");const t=Ie(yield me(en.from(e.publicKey,"hex")),e.relayServer),n=yield(yield this.client.promise).createTrustedPrivateRoom(t);nn.debug("sendPairingResponse",`Connecting to room "${n}"`),yield this.updatePeerRoom(t,n),yield this.waitForJoin(n),nn.debug("sendPairingResponse","Successfully joined room.");const r=void 0===e.version?yield this.getPublicKey():JSON.stringify(yield this.getPairingResponseInfo(e));nn.debug("sendPairingResponse","Sending pairing response",r);const i=yield this.encryptMessageAsymmetric(e.publicKey,r),o=["@channel-open",t,i].join(":");(yield this.client.promise).sendTextMessage(n,o).catch((e=>tn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){nn.log("sendPairingResponse","M_FORBIDDEN",n,e),yield this.deleteRoomIdFromRooms(n);const r=yield this.getRelevantRoom(t);nn.log("sendPairingResponse","Old room deleted, new room created",r),(yield this.client.promise).sendTextMessage(r,o).catch((e=>tn(this,void 0,void 0,(function*(){nn.log("sendPairingResponse","inner error",r,e)}))))}else nn.log("sendPairingResponse","unexpected error",e)}))))}))}isTextMessage(e){return e.message.type===Tt.TEXT}updateRelayServer(e){return tn(this,void 0,void 0,(function*(){nn.log("updateRelayServer",e);const t=e.split(":");if(t.length<2||!t[0].startsWith("@"))throw new Error("Invalid sender");const n=t.shift(),r=t.join(":"),i=localStorage.getItem("beacon:communication-peers-dapp")?new mt(this.storage,x.TRANSPORT_P2P_PEERS_DAPP):new mt(this.storage,x.TRANSPORT_P2P_PEERS_WALLET),o=(yield i.getPeers()).map((e=>tn(this,void 0,void 0,(function*(){`@${yield me(en.from(e.publicKey,"hex"))}`===n&&e.relayServer!==r&&(e.relayServer=r,yield i.addPeer(e))}))));yield Promise.all(o)}))}isChannelOpenMessage(e){return tn(this,void 0,void 0,(function*(){return e.message.content.startsWith(`@channel-open:@${yield me(en.from(yield this.getPublicKey(),"hex"))}`)}))}isSender(e,t){return tn(this,void 0,void 0,(function*(){return e.content.message.sender.startsWith(`@${yield me(en.from(t,"hex"))}`)}))}getRelevantRoom(e){return tn(this,void 0,void 0,(function*(){const t=yield this.storage.get(x.MATRIX_PEER_ROOM_IDS);let n=t[e];if(!n){nn.log("getRelevantRoom",`No room found for peer ${e}, checking joined ones.`);const r=yield this.getRelevantJoinedRoom(e);n=r.id,t[e]=r.id,yield this.storage.set(x.MATRIX_PEER_ROOM_IDS,t)}return nn.log("getRelevantRoom",`Using room ${n}`),n}))}getRelevantJoinedRoom(e){return tn(this,void 0,void 0,(function*(){const t=yield(yield this.client.promise).joinedRooms;nn.log("checking joined rooms",t,e);const n=t.filter((e=>!this.ignoredRooms.some((t=>e.id===t)))).filter((t=>t.members.some((t=>t===e))));let r;if(0===n.length||this.ignoredRooms.length>0){nn.log("getRelevantJoinedRoom","no relevant rooms found, creating new one");const t=yield(yield this.client.promise).createTrustedPrivateRoom(e);r=yield(yield this.client.promise).getRoomById(t),nn.log("getRelevantJoinedRoom",`waiting for other party to join room: ${r.id}`),yield this.waitForJoin(t),nn.log("getRelevantJoinedRoom",`new room created and peer invited: ${r.id}`)}else r=n[0],nn.log("getRelevantJoinedRoom",`channel already open, reusing room ${r.id}`);return r}))}}var sn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const an=new He("P2PTransport");class cn extends ct{constructor(e,t,n,r,i,o,s){super(e,new on(e,t,1,n,r,o,s),new mt(n,i)),this.type=A.P2P}static isAvailable(){return sn(this,void 0,void 0,(function*(){return Promise.resolve(!0)}))}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return sn(this,void 0,void 0,(function*(){if(this._isConnected!==R.NOT_CONNECTED)return;an.log("connect"),this._isConnected=R.CONNECTING,yield this.client.start();const t=yield this.getPeers();if(t.length>0){an.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>sn(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>an.error("connect",e)))}return yield this.startOpenChannelListener(),e.connect.call(this)}))}disconnect(){const e=Object.create(null,{disconnect:{get:()=>super.disconnect}});return sn(this,void 0,void 0,(function*(){return yield this.client.stop(),e.disconnect.call(this)}))}startOpenChannelListener(){return sn(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return sn(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return sn(this,void 0,void 0,(function*(){yield this.client.listenForEncryptedMessage(e,(t=>{const n={origin:E.P2P,id:e};this.notifyListeners(t,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}var ln=n(5108),hn=n(8764).Buffer,un=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class dn extends xt{constructor(){super(...arguments),this.activeListeners=new Map}init(){return un(this,void 0,void 0,(function*(){this.subscribeToMessages().catch(ln.error)}))}listenForEncryptedMessage(e,t){return un(this,void 0,void 0,(function*(){this.activeListeners.has(e)||this.activeListeners.set(e,((n,r)=>un(this,void 0,void 0,(function*(){try{const i=yield this.decryptMessage(e,n.encryptedPayload);t(i,r)}catch(e){}}))))}))}sendMessage(e,t){return un(this,void 0,void 0,(function*(){const n=yield this.encryptMessage(t.publicKey,e),r=null==t?void 0:t.extensionId,i={target:S.EXTENSION,encryptedPayload:n,targetId:r};Te.postMessage(i,Te.location.origin)}))}listenForChannelOpening(e){return un(this,void 0,void 0,(function*(){Te.addEventListener("message",(t=>un(this,void 0,void 0,(function*(){var n,r;if(t.source!==Te||t.origin!==Te.location.origin)return;const i=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.message;if(i&&i.target===S.PAGE&&(yield this.isChannelOpenMessage(i))){const n=hn.from(i.payload,"hex");if(n.length>=40)try{const i=JSON.parse(yield Se(n,this.keyPair.publicKey,this.keyPair.secretKey));e(Object.assign(Object.assign({},i),{senderId:yield Be(i.publicKey),extensionId:null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.sender.id}))}catch(e){}}}))))}))}sendPairingRequest(e){return un(this,void 0,void 0,(function*(){const t={target:S.EXTENSION,payload:yield(new ft).serialize(yield this.getPairingRequestInfo()),targetId:e};Te.postMessage(t,Te.location.origin)}))}isChannelOpenMessage(e){return un(this,void 0,void 0,(function*(){return"object"==typeof e&&e.hasOwnProperty("payload")}))}subscribeToMessages(){return un(this,void 0,void 0,(function*(){Te.addEventListener("message",(e=>{if(e.source===Te&&e.origin===Te.location.origin&&"object"==typeof e&&e){const t=e.data;t.message&&t.message.target===S.PAGE&&this.activeListeners.forEach((e=>{e(t.message,{origin:E.EXTENSION,id:t.sender.id||""})}))}}))}))}}var fn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const pn=new He("PostMessageTransport");let gn,yn,bn=!1;class mn extends ct{constructor(e,t,n,r){super(e,new dn(e,t),new mt(n,r)),this.type=A.POST_MESSAGE}static isAvailable(){return fn(this,void 0,void 0,(function*(){return new Promise((e=>{const t=n=>{const r=n.data;r&&"pong"===r.payload&&(e(!0),Te.removeEventListener("message",t))};Te.addEventListener("message",t);const n={target:S.EXTENSION,payload:"ping"};Te.postMessage(n,Te.location.origin)}))}))}static getAvailableExtensions(){return fn(this,void 0,void 0,(function*(){return gn||yn||(yn=[],gn=new Promise((e=>{mn.listenForExtensions(),setTimeout((()=>{e(null!=yn?yn:[])}),1e3)})).finally((()=>{gn=void 0})),gn)}))}static listenForExtensions(){if(bn)return;Te.addEventListener("message",(e=>{if(e.source!==Te||e.origin!==Te.location.origin)return;const t=e.data,n=t.sender;var r;t&&"pong"===t.payload&&n&&(pn.log("getAvailableExtensions",`extension "${n.name}" is available`,n),r=n,yn||(yn=[]),yn.some((e=>e.id===r.id))||(yn.push(r),Te.postMessage("extensionsUpdated",Te.location.origin)))}));const e={target:S.EXTENSION,payload:"ping"};Te.postMessage(e,Te.location.origin),bn=!0}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return fn(this,void 0,void 0,(function*(){if(pn.log("connect"),this._isConnected!==R.NOT_CONNECTED)return;this._isConnected=R.CONNECTING;const t=yield this.getPeers();if(t.length>0){pn.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>fn(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>pn.error("connect",e)))}yield this.startOpenChannelListener(),yield e.connect.call(this)}))}startOpenChannelListener(){return fn(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return fn(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return fn(this,void 0,void 0,(function*(){pn.log("listen",e),yield this.client.listenForEncryptedMessage(e,((e,t)=>{const n={origin:E.EXTENSION,id:t.id};this.notifyListeners(e,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}const vn={context:void 0,registry:void 0};function wn(e){vn.context=e}const En=(Symbol("solid-proxy"),Symbol("solid-track")),Sn=(Symbol("solid-dev-component"),{equals:(e,t)=>e===t});let In=null,Rn=er;const An=1,xn=2,Mn={owned:null,cleanups:null,context:null,owner:null};var Tn=null;let On=null,Pn=null,Nn=null,kn=null,Cn=null,Un=null,Ln=0;const[jn,zn]=qn(!1);function Kn(e,t){const n=kn,r=Tn,i=0===e.length,o=i?Mn:{owned:null,cleanups:null,context:null,owner:void 0===t?r:t},s=i?e:()=>e((()=>Fn((()=>ir(o)))));Tn=o,kn=null;try{return $n(s,!0)}finally{kn=n,Tn=r}}function qn(e,t){const n={value:e,observers:null,observerSlots:null,comparator:(t=t?Object.assign({},Sn,t):Sn).equals||void 0};return[Jn.bind(n),e=>("function"==typeof e&&(e=On&&On.running&&On.sources.has(n)?e(n.tValue):e(n.value)),Zn(n,e))]}function Dn(e,t,n){const r=Xn(e,t,!1,An);Pn&&On&&On.running?Cn.push(r):Yn(r)}function Bn(e,t,n){Rn=tr;const r=Xn(e,t,!1,An),i=Gn&&cr(Tn,Gn.id);i&&(r.suspense=i),n&&n.render||(r.user=!0),Un?Un.push(r):Yn(r)}function Wn(e,t,n){n=n?Object.assign({},Sn,n):Sn;const r=Xn(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,Pn&&On&&On.running?(r.tState=An,Cn.push(r)):Yn(r),Jn.bind(r)}function Fn(e){if(null===kn)return e();const t=kn;kn=null;try{return e()}finally{kn=t}}function Vn(e){return null===Tn||(null===Tn.cleanups?Tn.cleanups=[e]:Tn.cleanups.push(e)),e}function Hn(e){const t=Wn(e),n=Wn((()=>lr(t())));return n.toArray=()=>{const e=n();return Array.isArray(e)?e:null!=e?[e]:[]},n}let Gn;function Jn(){const e=On&&On.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===An)Yn(this);else{const e=Cn;Cn=null,$n((()=>nr(this)),!1),Cn=e}if(kn){const e=this.observers?this.observers.length:0;kn.sources?(kn.sources.push(this),kn.sourceSlots.push(e)):(kn.sources=[this],kn.sourceSlots=[e]),this.observers?(this.observers.push(kn),this.observerSlots.push(kn.sources.length-1)):(this.observers=[kn],this.observerSlots=[kn.sources.length-1])}return e&&On.sources.has(this)?this.tValue:this.value}function Zn(e,t,n){let r=On&&On.running&&On.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(On){const r=On.running;(r||!n&&On.sources.has(e))&&(On.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&$n((()=>{for(let t=0;t1e6)throw Cn=[],new Error}),!1)}return t}function Yn(e){if(!e.fn)return;ir(e);const t=Tn,n=kn,r=Ln;kn=Tn=e,Qn(e,On&&On.running&&On.sources.has(e)?e.tValue:e.value,r),On&&!On.running&&On.sources.has(e)&&queueMicrotask((()=>{$n((()=>{On&&(On.running=!0),kn=Tn=e,Qn(e,e.tValue,r),kn=Tn=null}),!1)})),kn=n,Tn=t}function Qn(e,t,n){let r;try{r=e.fn(t)}catch(t){return e.pure&&(On&&On.running?(e.tState=An,e.tOwned&&e.tOwned.forEach(ir),e.tOwned=void 0):(e.state=An,e.owned&&e.owned.forEach(ir),e.owned=null)),e.updatedAt=n+1,ar(t)}(!e.updatedAt||e.updatedAt<=n)&&(null!=e.updatedAt&&"observers"in e?Zn(e,r,!0):On&&On.running&&e.pure?(On.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function Xn(e,t,n,r=An,i){const o={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Tn,context:null,pure:n};if(On&&On.running&&(o.state=0,o.tState=r),null===Tn||Tn!==Mn&&(On&&On.running&&Tn.pure?Tn.tOwned?Tn.tOwned.push(o):Tn.tOwned=[o]:Tn.owned?Tn.owned.push(o):Tn.owned=[o]),Nn){const[e,t]=qn(void 0,{equals:!1}),n=Nn(o.fn,t);Vn((()=>n.dispose()));const r=()=>function(e){if(On&&On.running)return e(),On.done;const t=kn,n=Tn;return Promise.resolve().then((()=>{let r;return kn=t,Tn=n,(Pn||Gn)&&(r=On||(On={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise((e=>r.resolve=e))),r.running=!0),$n(e,!1),kn=Tn=null,r?r.done:void 0}))}(t).then((()=>i.dispose())),i=Nn(o.fn,r);o.fn=t=>(e(),On&&On.running?i.track(t):n.track(t))}return o}function _n(e){const t=On&&On.running;if(0===(t?e.tState:e.state))return;if((t?e.tState:e.state)===xn)return nr(e);if(e.suspense&&Fn(e.suspense.inFallback))return e.suspense.effects.push(e);const n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(On.disposed.has(t))return}if((t?e.tState:e.state)===An)Yn(e);else if((t?e.tState:e.state)===xn){const t=Cn;Cn=null,$n((()=>nr(e,n[0])),!1),Cn=t}}}function $n(e,t){if(Cn)return e();let n=!1;t||(Cn=[]),Un?n=!0:Un=[],Ln++;try{const t=e();return function(e){if(Cn&&(Pn&&On&&On.running?function(e){for(let t=0;t{r.delete(n),$n((()=>{On.running=!0,_n(n)}),!1),On&&(On.running=!1)})))}}(Cn):er(Cn),Cn=null),e)return;let t;if(On)if(On.promises.size||On.queue.size){if(On.running)return On.running=!1,On.effects.push.apply(On.effects,Un),Un=null,void zn(!0)}else{const e=On.sources,n=On.disposed;Un.push.apply(Un,On.effects),t=On.resolve;for(const e of Un)"tState"in e&&(e.state=e.tState),delete e.tState;On=null,$n((()=>{for(const e of n)ir(e);for(const t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;eRn(n)),!1),t&&t()}(n),t}catch(e){n||(Un=null),Cn=null,ar(e)}}function er(e){for(let t=0;t=0;t--)ir(e.tOwned[t]);delete e.tOwned}or(e,!0)}else if(e.owned){for(t=e.owned.length-1;t>=0;t--)ir(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}On&&On.running?e.tState=0:e.state=0,e.context=null}function or(e,t){if(t||(e.tState=0,On.disposed.add(e)),e.owned)for(let t=0;tn=Fn((()=>(Tn.context={[e]:t.value},Hn((()=>t.children)))))),void 0),n}}const ur=Symbol("fallback");function dr(e){for(let t=0;te(t||{})))}function pr(e){const t="fallback"in e&&{fallback:()=>e.fallback};return Wn(function(e,t,n={}){let r=[],i=[],o=[],s=0,a=t.length>1?[]:null;return Vn((()=>dr(o))),()=>{let c,l,h=e()||[];return h[En],Fn((()=>{let e,t,d,f,p,g,y,b,m,v=h.length;if(0===v)0!==s&&(dr(o),o=[],r=[],i=[],s=0,a&&(a=[])),n.fallback&&(r=[ur],i[0]=Kn((e=>(o[0]=e,n.fallback()))),s=1);else if(0===s){for(i=new Array(v),l=0;l=g&&b>=g&&r[y]===h[b];y--,b--)d[b]=i[y],f[b]=o[y],a&&(p[b]=a[y]);for(e=new Map,t=new Array(b+1),l=b;l>=g;l--)m=h[l],c=e.get(m),t[l]=void 0===c?-1:c,e.set(m,l);for(c=g;c<=y;c++)m=r[c],l=e.get(m),void 0!==l&&-1!==l?(d[l]=i[c],f[l]=o[c],a&&(p[l]=a[c]),l=t[l],e.set(m,l)):o[c]();for(l=g;le.each),e.children,t||void 0))}!function(e,t){const n=Symbol("context");hr(n)}();var gr=n(5108);Object.create(null),Object.create(null);const yr="_$DX_DELEGATE";function br(e,t,n,r={}){let i;return Kn((r=>{i=r,t===document?e():Rr(t,e(),t.firstChild?null:void 0,n)}),r.owner),()=>{i(),t.textContent=""}}function mr(e,t,n){let r;const i=()=>{const t=document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:t.content.firstChild},o=t?()=>(r||(r=i())).cloneNode(!0):()=>Fn((()=>document.importNode(r||(r=i()),!0)));return o.cloneNode=o,o}function vr(e,t=window.document){const n=t[yr]||(t[yr]=new Set);for(let r=0,i=e.length;rr.call(e,n[1],t))}else e.addEventListener(t,n)}function Ir(e,t,n){if(!t)return n?wr(e,"style"):t;const r=e.style;if("string"==typeof t)return r.cssText=t;let i,o;for(o in"string"==typeof n&&(r.cssText=n=void 0),n||(n={}),t||(t={}),n)null==t[o]&&r.removeProperty(o),delete n[o];for(o in t)i=t[o],i!==n[o]&&(r.setProperty(o,i),n[o]=i);return n}function Rr(e,t,n,r){if(void 0===n||r||(r=[]),"function"!=typeof t)return xr(e,t,r,n);Dn((r=>xr(e,t(),r,n)),r)}function Ar(e){const t=`$$${e.type}`;let n=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==n&&Object.defineProperty(e,"target",{configurable:!0,value:n}),Object.defineProperty(e,"currentTarget",{configurable:!0,get:()=>n||document}),vn.registry&&!vn.done&&(vn.done=_$HY.done=!0);n;){const r=n[t];if(r&&!n.disabled){const i=n[`${t}Data`];if(void 0!==i?r.call(n,i,e):r.call(n,e),e.cancelBubble)return}n=n._$host||n.parentNode||n.host}}function xr(e,t,n,r,i){if(vn.context){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e{let i=t();for(;"function"==typeof i;)i=i();n=xr(e,i,n,r)})),()=>n;if(Array.isArray(t)){const o=[],a=n&&Array.isArray(n);if(Mr(o,t,n,i))return Dn((()=>n=xr(e,o,n,r,!0))),()=>n;if(vn.context){if(!o.length)return n;for(let e=0;er-a){const i=t[s];for(;a=0;o--){const s=t[o];if(i!==s){const t=s.parentNode===e;r||o?t&&s.remove():t?e.replaceChild(i,s):e.insertBefore(i,n)}else r=!0}}else e.insertBefore(i,n);return[i]}var Pr=n(7304),Nr=n.n(Pr),kr=n(5108);function Cr(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}const Ur=[{key:"spire_chrome",id:"gpfndedineagiepkpinficbcbbgjoenn",name:"Spire",shortName:"Spire",color:"",logo:"data:image/png;base64,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",link:"https://spirewallet.com/"},{key:"temple_chrome",id:"ookjlbkiijinhpmnjffcofjonbfbgaoc",name:"Temple Wallet Chrome",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"},{key:"temple_firefox",id:"{34ac229e-1cf5-4e4c-8a77-988155c4360f}",name:"Temple Wallet Firefox",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"}],Lr=[{key:"infinity_wallet",name:"Infinity Wallet",shortName:"Infinity Wallet",color:"rgb(52, 147, 218)",logo:"data:image/png;base64,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",deepLink:"infinity://",downloadLink:"https://infinitywallet.io/download"},{key:"galleon_desktop",name:"Galleon",shortName:"Galleon",color:"",logo:"data:image/png;base64,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",deepLink:"galleon://",downloadLink:"https://cryptonomic.tech/galleon.html"},{key:"umami_desktop",name:"Umami",shortName:"Umami",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",downloadLink:"https://umamiwallet.com/#download"},{key:"atomex_desktop",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,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",deepLink:"atomex://",downloadLink:"https://atomex.me/"}],jr=[{key:"kukai_web",name:"Kukai Wallet",shortName:"Kukai",color:"",logo:"data:image/png;base64,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",links:{mainnet:"https://wallet.kukai.app",ghostnet:"https://ghostnet.kukai.app",mondaynet:"https://dailynet.kukai.app",delphinet:"https://testnet.kukai.app",edonet:"https://edonet.kukai.app",florencenet:"https://florencenet.kukai.app",granadanet:"https://granadanet.kukai.app",hangzhounet:"https://hangzhounet.kukai.app",ithacanet:"https://ithacanet.kukai.app",jakartanet:"https://jakartanet.kukai.app",kathmandunet:"https://kathmandunet.kukai.app",limanet:"https://limanet.kukai.app",mumbainet:"https://mumbainet.kukai.app",nairobinet:"https://nairobinet.kukai.app"}}],zr=[{key:"airgap_ios",name:"AirGap Wallet",shortName:"AirGap",color:"rgb(4, 235, 204)",logo:"data:image/png;base64,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",universalLink:"https://wallet.airgap.it",deepLink:"airgap-wallet://"},{key:"naan_ios",name:"naan - your portal to web3 ",shortName:"naan",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAFa0lEQVR4Ae3BQWjeBwHG4V/e/E2ydV3jFlinCcsgh1EEcxjYy1hheFIQRA8DDzvPy7yIB3WXeRAPneAO4mEehCF42M0iHhwoiHRQsHRFahNbEWmZ7WJrkrVJvI6PFLp9aZbw/p5nAthBUqUgqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCp1kCJ1xcWWJya5qBb/XCTV65eZdT3jh/n5JFHGNfv19b42fVr7ObrT5/myGcep917N3/H2Wu/osFAieePPsryQw9x0J1bX2c3J488wtdmZxnXja0tuM6ulo49z+z0Au3+s3mFFkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0B3ZeLGxu8ePkyo04vLHDq6FGkw2hA92VjZ4dz6/9j1AdbW0iHVZBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoNSPvs6q13+e+da4zjmdkvk4kBjWdA2mfv/OunXLjxW8bxw2f/zszko2g8QVKtIKlWkFQrSKo1IO2zrzz1I16Y/y4f9eHWbX5+4auMeu7Jl1me+yajpvIwGt+AtM8+O70ALPBRG1sfsJtjU5/jyYe/gB6MIKlWkFQrSKoVJNUKkmoFSbUGdKDMTk7y0uNzjHpqegpprw3oQFmcmuLNxUWk/RAk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUaKHH29m1u3r3LJ3Vpc5PdnF9f59jkJIfFxY117uXKrbPc2LzCp2Fz+za7eX9jhZW1P7Gf3t9YocUEsIOkSkFSrSCpVpBUK0iqFSTVGijxC15giVnanWGVH/Muu3nrBzMcf2yCg+7cpW2+88Ymo05/e5rlpTCu37xzlzfevkODgRLP8gTLzNFulTXu5eSJSRafmOCwWl4Kp744ybjOXdqmRZBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVGtA2iN/vrDNi69tMOqt789w8kTQwTMg7ZGNOzus/nubURt3dtDBFCTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFoD2lNn+AcXucE4vsUzzDGD9KANaE/9mr/xS95jHKeYZ44ZpActSKoVJNUKkmoFSbUGtKd+wnO8yklGPc2bjHqJE7zKlxg1zxGk/TCgPTXHDHPMcD9mmWaRo0ifliCpVpBUK0iqFSTVCpJqBUm1BqRDZn5ugle+McWo+bkJ9PEMSIfM0ufD6Zen0PiCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaAyX+wD9ZZY2D5BI3eZvL7KdzXOdezvzlLscfC5/U+ZUtdvPHv25x8xaHxvmVbVpMADtIqhQk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTV+j8sK7GEReHhkAAAAABJRU5ErkJggg==",universalLink:"https://www.naan.app/",deepLink:"naan://"},{key:"altme_wallet",name:"Altme Wallet",shortName:"Altme",color:"",logo:"data:image/png;base64,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",universalLink:"https://app.altme.io/app/download"},{key:"autonomy-app",name:"Autonomy: Digital Art Wallet",shortName:"Autonomy",color:"",logo:"data:image/png;base64,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",universalLink:"https://autonomy.io/apps/tezos",deepLink:"autonomy-tezos://"},{key:"temple_ios",name:"Temple Wallet",shortName:"Temple",color:"",logo:"data:image/png;base64,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",universalLink:"https://templewallet.com",deepLink:"temple://"},{key:"atomex_ios",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,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",universalLink:"https://atomex.me",deepLink:"atomex://"},{key:"umami_ios",name:"Umami Mobile",shortName:"Umami Mobile",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",universalLink:"https://umamiwallet.com/"},{key:"trust_ios",name:"Trust Wallet",shortName:"Trust Wallet",color:"",supportedInteractionStandards:["wallet_connect"],logo:"data:image/png;base64,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",universalLink:"https://trustwallet.com",deepLink:"trust://"}],Kr=mr('',4),qr=mr('',4),Dr=mr('',12);function Br(e){return(()=>{const t=Kr.cloneNode(!0);return Dn((n=>Ir(t,e.style?Object.assign({overflow:"visible","font-size":"22px"},e.style):{overflow:"visible","font-size":"22px"},n))),t})()}function Wr(e){return(()=>{const t=qr.cloneNode(!0);return Dn((n=>Ir(t,e.style?Object.assign({overflow:"visible"},e.style):{overflow:"visible"},n))),t})()}function Fr(e){return(()=>{const t=Dr.cloneNode(!0);return Dn((n=>Ir(t,e.style?Object.assign({},e.style):{},n))),t})()}var Vr=".loader {\n height: 3px;\n position: relative;\n background-color: #ddd;\n position: absolute;\n width: 100%;\n left: 0px;\n bottom: 0px;\n overflow: hidden;\n}\n\n.loader:before {\n content: '';\n position: absolute;\n left: -50%;\n height: 3px;\n width: 40%;\n background-color: #3880ff;\n -webkit-animation: lineAnim 1s linear infinite;\n -moz-animation: lineAnim 1s linear infinite;\n animation: lineAnim 1s linear infinite;\n}\n\n@keyframes lineAnim {\n 0% {\n left: -40%;\n }\n 50% {\n left: 20%;\n width: 80%;\n }\n 100% {\n left: 100%;\n width: 100%;\n }\n}\n";const Hr=mr('
',2),Gr=e=>Hr.cloneNode(!0),Jr=mr('
',14),Zr=mr('
',2),Yr=mr('
',2),Qr=mr("
",2),Xr=mr('
',2),_r=mr('',2),$r=e=>{let t=null;var n;n=()=>{t=document.body.style.overflow,document.body.style.overflow="hidden"},Bn((()=>Fn(n))),Vn((()=>{document.body.style.overflow=t}));const r=window.innerWidth<=800;return(()=>{const t=Jr.cloneNode(!0),n=t.firstChild,i=n.firstChild,o=i.firstChild,s=o.nextSibling,a=i.nextSibling,c=a.nextSibling;return t.$$click=()=>{e.onCloseClick()},n.$$click=e=>{e.stopPropagation()},Rr(i,(()=>{const t=Wn((()=>!!e.onBackClick));return()=>t()&&(()=>{const t=Zr.cloneNode(!0);return Sr(t,"click",e.onBackClick,!0),Rr(t,fr(Wr,{})),t})()})(),o),Rr(i,(()=>{const t=Wn((()=>!e.onBackClick));return()=>t()&&Yr.cloneNode(!0)})(),o),Rr(o,fr(Fr,{})),Sr(s,"click",e.onCloseClick,!0),Rr(s,fr(Br,{})),Rr(a,fr(Gr,{})),Rr(c,(()=>e.content),null),Rr(c,!r&&(()=>{const t=Qr.cloneNode(!0);return Rr(t,(()=>{const t=Wn((()=>!!e.extraContent));return()=>t()&&Xr.cloneNode(!0)})(),null),Rr(t,(()=>e.extraContent),null),Dn((()=>Er(t,e.showMore?"alert-body-extra-show":"alert-body-extra-hide"))),t})(),null),Rr(n,(()=>{const t=Wn((()=>!(r||!e.extraContent)));return()=>t()&&(()=>{const t=_r.cloneNode(!0);return t.$$click=()=>{e.onClickShowMore&&e.onClickShowMore()},Rr(t,(()=>e.showMore?"Show less":"Show more")),t})()})(),null),Dn((r=>{const i=e.open?"alert-wrapper-show":"alert-wrapper-hide",o=e.open?"alert-modal-show":"alert-modal-hide",s=e.loading?{opacity:1,transition:"all ease 0.3s",height:"14px",overflow:"unset",width:"unset"}:{opacity:0,transition:"all ease 0.3s",height:0,overflow:"hidden",width:0},l=e.extraContent?"":"1.8em";return i!==r._v$&&Er(t,r._v$=i),o!==r._v$2&&Er(n,r._v$2=o),r._v$3=Ir(a,s,r._v$3),l!==r._v$4&&c.style.setProperty("margin-bottom",r._v$4=l),r}),{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})()};vr(["click"]);const ei=mr("
",2),ti=mr('

',9),ni=mr("

",2),ri=mr('
',2),ii=mr('',2),oi=mr('

',5),si=e=>(()=>{const t=ei.cloneNode(!0);return Rr(t,(()=>{const t=Wn((()=>!e.small));return()=>t()&&(()=>{const t=ti.cloneNode(!0),n=t.firstChild,r=n.firstChild,i=n.nextSibling.firstChild;return Sr(t,"click",e.onClick,!0),Rr(r,(()=>e.name)),Rr(n,(()=>{const t=Wn((()=>!!e.description));return()=>t()&&(()=>{const t=ni.cloneNode(!0);return Rr(t,(()=>e.description)),t})()})(),null),Rr(n,(()=>{const t=Wn((()=>!!(e.tags&&e.tags.length>0)));return()=>t()&&(()=>{const t=ri.cloneNode(!0);return Rr(t,fr(pr,{get each(){return e.tags},children:e=>(()=>{const t=ii.cloneNode(!0);return Rr(t,e),t})()})),t})()})(),null),Dn((r=>{const o="wallet-main "+(e.mobile?"wallet-main-mobile":""),s="wallet-main-left "+(e.mobile?"wallet-main-left-mobile":""),a=e.image;return o!==r._v$&&Er(t,r._v$=o),s!==r._v$2&&Er(n,r._v$2=s),a!==r._v$3&&wr(i,"src",r._v$3=a),r}),{_v$:void 0,_v$2:void 0,_v$3:void 0}),t})()})(),null),Rr(t,(()=>{const t=Wn((()=>!!e.small));return()=>t()&&(()=>{const t=oi.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Sr(t,"click",e.onClick,!0),Rr(r,(()=>e.name)),Dn((()=>wr(n,"src",e.image))),t})()})(),null),Dn((()=>Er(t,e.disabled?"wallet-disabled":""))),t})();vr(["click"]);const ai=mr('

Connect Wallet

If you don\'t have a wallet, you can select a provider and create one now. Learn more
',12),ci=mr('

Other Wallets

See other wallets you can use to connect

',13),li=e=>{const t=window.innerWidth<=800;return(()=>{const n=ai.cloneNode(!0),r=n.firstChild,i=r.firstChild.nextSibling.firstChild.nextSibling,o=r.nextSibling;return i.$$click=()=>e.onClickLearnMore(),Rr(o,fr(pr,{get each(){return e.wallets},children:n=>fr(si,{get disabled(){return e.disabled},mobile:t,get name(){return n.name},get description(){return n.descriptions.join(" & ")},get image(){return n.image},onClick:()=>e.onClickWallet(n.id),get tags(){return n.tags}})}),null),Rr(o,(()=>{const t=Wn((()=>!!e.otherWallets));return()=>t()&&(()=>{const t=ci.cloneNode(!0),n=t.firstChild.nextSibling.firstChild,r=n.nextSibling,i=r.nextSibling;return t.$$click=()=>{e.otherWallets&&e.otherWallets.onClick()},Dn((t=>{const o=e.otherWallets.images[0],s=e.otherWallets.images[1],a=e.otherWallets.images[2];return o!==t._v$&&wr(n,"src",t._v$=o),s!==t._v$2&&wr(r,"src",t._v$2=s),a!==t._v$3&&wr(i,"src",t._v$3=a),t}),{_v$:void 0,_v$2:void 0,_v$3:void 0}),t})()})(),null),n})()};vr(["click"]);const hi=mr('
',6),ui=e=>(()=>{const t=hi.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Rr(n,fr(pr,{get each(){return e.wallets},children:t=>fr(si,{get disabled(){return e.disabled},get name(){return t.name},get description(){return t.descriptions.join(" & ")},get image(){return t.image},get small(){return e.small},onClick:()=>{e.onClickWallet&&e.onClickWallet(t.id)}})})),r.$$click=()=>e.onClickOther(),t})();vr(["click"]);const di=mr('

',6),fi=mr("
",2),pi=mr('
',2),gi=mr('
',2),yi=mr("",2),bi=e=>(()=>{const t=di.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Rr(t,(()=>{const t=Wn((()=>!!e.icon));return()=>t()&&(()=>{const t=fi.cloneNode(!0);return Rr(t,(()=>e.icon)),Dn((n=>{const r="info-icon "+(e.iconBadge?"info-badge":""),i=e.bigIcon?{"font-size":"3.4em"}:{};return r!==n._v$&&Er(t,n._v$=r),n._v$2=Ir(t,i,n._v$2),n}),{_v$:void 0,_v$2:void 0}),t})()})(),n),Rr(n,(()=>e.title)),Rr(t,(()=>{const t=Wn((()=>!!e.description));return()=>t()&&(()=>{const t=pi.cloneNode(!0);return Rr(t,(()=>e.description)),t})()})(),r),Rr(t,(()=>{const t=Wn((()=>!!e.data));return()=>t()&&(()=>{const t=gi.cloneNode(!0);return Rr(t,(()=>e.data)),t})()})(),r),Rr(r,fr(pr,{get each(){return e.buttons},children:e=>(()=>{const t=yi.cloneNode(!0);return Sr(t,"click",e.onClick,!0),Rr(t,(()=>e.label)),Dn((()=>Er(t,"secondary"!==e.type?"info-button":"info-button-secondary"))),t})()})),Dn((()=>Er(t,"info-wrapper "+(e.border?"info-border":"")))),t})();vr(["click"]);const mi=(e,t)=>`${e}?type=tzip10&data=${t}`,vi=new He("QR"),wi=(e,t,n)=>{e.length>500&&vi.warn("getQrData",'The size of the payload in the QR code is quite long and some devices might not be able to scan it anymore. To reduce the QR size, try using a shorter "name", "appUrl" and "iconUrl"');try{return new(Nr())({color:"black",content:e,join:!0,ecl:"L",height:t,width:n}).svg()}catch(e){throw kr.error("error",e),e}},Ei=mr('
',6),Si=mr("

Or scan to connect

",2),Ii=mr("",2),Ri=mr('Learn more',2),Ai=mr('

Copied!

',8),xi=mr('

Copy to clipboard

',8),Mi=e=>{const[t,n]=qn(!1),r=document.createElement("div");function i(){return Cr(this,void 0,void 0,(function*(){e.onClickQrCode&&e.onClickQrCode(),navigator.clipboard.writeText(e.code).then((()=>{t()||(n(!0),setTimeout((()=>{n(!1)}),3e3))})).catch((e=>{kr.error("Error copying text: ",e)}))}))}return r.classList.add("qr-svg-wrapper"),Bn((()=>{const t=e.code.startsWith("wc:")?e.code:mi("tezos://",e.code),n=e.isMobile?wi(t,300,300):wi(t,160,160);r.innerHTML=n})),(()=>{const n=Ei.cloneNode(!0),o=n.firstChild,s=o.nextSibling;return Rr(o,(()=>{const t=Wn((()=>!e.isMobile));return()=>t()&&Si.cloneNode(!0)})(),null),Rr(o,(()=>{const t=Wn((()=>!e.isMobile));return()=>t()&&(()=>{const t=Ii.cloneNode(!0);return Rr(t,(()=>`Open ${e.walletName} Wallet on your mobile phone and scan.`)),t})()})(),null),Rr(o,(()=>{const t=Wn((()=>!!e.isMobile));return()=>t()&&(()=>{const t=Ii.cloneNode(!0);return Rr(t,(()=>`Scan QR code with a ${e.isWalletConnect?"WalletConnect":"Beacon"}-compatible wallet.`),null),Rr(t,(()=>{const t=Wn((()=>!!e.onClickLearnMore));return()=>t()&&(()=>{const t=Ri.cloneNode(!0);return t.$$click=()=>{e.onClickLearnMore&&e.onClickLearnMore()},t})()})(),null),t})()})(),null),Rr(o,(()=>{const t=Wn((()=>!(e.isMobile||!e.onClickLearnMore)));return()=>t()&&(()=>{const t=Ri.cloneNode(!0);return t.$$click=()=>{e.onClickLearnMore&&e.onClickLearnMore()},t.style.setProperty("margin-top","auto"),t})()})(),null),s.$$click=i,Rr(s,r,null),Rr(s,(()=>{const e=Wn((()=>!!t()));return()=>e()&&Ai.cloneNode(!0)})(),null),Rr(s,(()=>{const e=Wn((()=>!t()));return()=>e()&&xi.cloneNode(!0)})(),null),Dn((t=>{const r=e.isMobile?{"flex-direction":"column","align-items":"center","justify-content":"center",height:"340px","text-align":"center",border:"none"}:{},i=e.isMobile?{"background-color":"transparent"}:{};return t._v$=Ir(n,r,t._v$),t._v$2=Ir(s,i,t._v$2),t}),{_v$:void 0,_v$2:void 0}),n})()};vr(["click"]);const Ti=(e,t)=>t.test(e.navigator.userAgent),Oi=e=>((e,t)=>e.matchMedia("(any-pointer:coarse)").matches)(e),Pi=e=>Ti(e,/iPhone|iPod/i)||(e=>!!Ti(e,/iPad/i)||!(!Ti(e,/Macintosh/i)||!Oi(e)))(e),Ni=e=>Ti(e,/android|sink/i);let ki=te.LIGHT;const Ci=e=>{ki=e},Ui=()=>ki,Li=mr("
",2),ji=mr("
",10),zi=mr('',6),Ki=mr('',8),qi=mr('',8),[Di,Bi]=qn(!1),[Wi,Fi]=qn(!1),[Vi,Hi]=qn(!1),[Gi,Ji]=qn(""),[Zi,Yi]=qn(void 0),[Qi,Xi]=qn("top-wallets"),[_i,$i]=qn("top-wallets"),[eo,to]=qn(void 0);let no=null;const ro=()=>Cr(void 0,void 0,void 0,(function*(){return new Promise((e=>Cr(void 0,void 0,void 0,(function*(){no&&Di()&&(Bi(!1),setTimeout((()=>{no&&no(),document.getElementById("beacon-alert-wrapper")&&document.getElementById("beacon-alert-wrapper").remove()}),500)),e()}))))})),io=e=>Cr(void 0,void 0,void 0,(function*(){var t,n,r;const i=null===(t=e.pairingPayload)||void 0===t?void 0:t.p2pSyncCode(),o=null===(n=e.pairingPayload)||void 0===n?void 0:n.walletConnectSyncCode();if(to(e.analytics),null==i||i.then((()=>{kr.log("P2P LOADED")})),null==o||o.then((()=>{kr.log("WC LOADED")})),!Di()){const t=yield mn.getAvailableExtensions(),n=()=>Cr(void 0,void 0,void 0,(function*(){if(e.pairingPayload){const e=new ft,t=yield e.serialize(yield i);Ji(t)}}));$i("top-wallets"),Yi(void 0),localStorage.removeItem(x.LAST_SELECTED_WALLET);const s=document.createElement("div");s.setAttribute("id","beacon-alert-wrapper"),s.style.height="0px";const a=s.attachShadow({mode:"open"}),c=document.createElement("style");c.textContent=".alert-wrapper-show {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n height: 100%;\n width: 100vw;\n overflow: hidden;\n top: 0px;\n left: 0px;\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 1;\n transition: all ease 0.3s;\n z-index: 99999;\n}\n\n.alert-wrapper-hide {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n height: 100%;\n width: 100vw;\n overflow: hidden;\n top: 0px;\n left: 0px;\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 0;\n transition: all ease 0.3s;\n z-index: 99999;\n}\n\n.theme__dark .alert-modal-show {\n background-color: #27334c;\n}\n\n.theme__dark .alert-modal-hide {\n background-color: #27334c;\n}\n\n.theme__dark .alert-footer {\n color: white;\n -webkit-box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n -moz-box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n}\n\n.theme__dark .alert-logo svg g {\n fill: white;\n}\n\n.alert-modal-show {\n background-color: white;\n border-radius: 32px;\n transition: all ease 0.3s;\n transform: translateY(0px);\n opacity: 1;\n width: 480px;\n}\n\n.alert-modal-hide {\n background-color: white;\n border-radius: 32px;\n transition: all ease 0.3s;\n transform: translateY(24px);\n opacity: 1;\n width: 480px;\n}\n\n.alert-modal-loading-wrapper {\n width: 480px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.alert-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.8em;\n padding-top: 1.2em;\n padding-bottom: 0px;\n}\n\n.alert-button-icon-empty {\n width: 24px;\n height: 24px;\n padding: 2px;\n}\n\n.alert-button-icon {\n width: 24px;\n height: 24px;\n padding: 2px;\n border-radius: 100%;\n border: 1px solid #f0f0f1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n fill: #64748b;\n transition: all ease 0.2s;\n}\n\n.alert-button-icon:hover {\n background-color: #475569;\n border: 1px solid #475569;\n fill: #e2e8f0;\n}\n\n.alert-logo {\n margin: 0px 6em;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.alert-logo svg {\n height: 28px;\n}\n\n.alert-body {\n padding: 1.8em;\n padding-bottom: 0px;\n transition: all ease 0.3s;\n}\n\n.alert-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n color: grey;\n cursor: pointer;\n -webkit-box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n -moz-box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n font-size: 0.938rem;\n font-weight: bold;\n height: 64px;\n}\n\n.alert-body-extra-show {\n transition: all ease 0.3s;\n overflow: hidden;\n max-height: 35vh;\n overflow-y: auto;\n}\n\n.alert-body-extra-hide {\n transition: all ease 0.3s;\n overflow: hidden;\n max-height: 0px;\n}\n\n.alert-divider {\n border-top: 1px solid #aaaaaa42;\n width: 100%;\n border-radius: 6px;\n}\n\n@media only screen and (max-width: 800px) {\n .alert-logo {\n margin: 0px 2em;\n }\n\n .alert-wrapper-show {\n align-items: flex-end;\n width: 100%;\n }\n\n .alert-wrapper-hide {\n align-items: flex-end;\n width: 100%;\n }\n\n .alert-modal-show {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n padding-bottom: 1.8em;\n width: 100%;\n }\n\n .alert-modal-hide {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n padding-bottom: 1.8em;\n }\n}\n\n@media only screen and (max-width: 300px) {\n .alert-wrapper-show {\n align-items: flex-end;\n width: 100vw;\n }\n\n .alert-wrapper-hide {\n align-items: flex-end;\n width: 100vw;\n }\n\n .alert-body {\n padding: 0.8em;\n }\n\n .alert-body {\n padding: 0.8em;\n padding-top: 0.4em;\n }\n\n .alert-logo {\n margin: 0px;\n transform: scale(0.8);\n }\n}\n",a.appendChild(c);const l=document.createElement("style");l.textContent=".top-wallets-wrapper {\n margin-bottom: 1.8em;\n}\n\n.top-wallets-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.theme__dark .top-wallets-info h3 {\n color: white;\n}\n\n.theme__dark .top-wallets-info span {\n color: #b5b8be;\n}\n\n.theme__dark .top-wallets-other-wallets-left h3 {\n color: white;\n}\n\n.top-wallets-info h3 {\n text-align: center;\n color: #334155;\n margin: 0px;\n font-size: 0.938rem;\n}\n\n.top-wallets-info span {\n text-align: center;\n max-width: 300px;\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 6px 0px 12px 0px;\n}\n\n.top-wallets-learn-more {\n text-decoration: underline;\n cursor: pointer;\n font-size: 0.95em !important;\n}\n\n.top-wallets-wallets-main {\n margin-top: 1em;\n grid-template-columns: repeat(2, 1fr);\n display: grid;\n gap: 1em;\n}\n\n.top-wallets-other-wallets {\n display: flex;\n gap: 1.25em;\n justify-content: space-between;\n border-radius: 12px;\n padding: 1.25em;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.top-wallets-other-wallets-left {\n max-width: 148px;\n}\n\n.top-wallets-other-wallets-left h3 {\n color: #334155;\n margin: 0px;\n font-size: 1em;\n}\n\n.top-wallets-other-wallets-left p {\n max-width: 400px;\n font-size: 0.85em;\n font-weight: 300;\n color: #94a3b8;\n line-height: 1.35em;\n margin: 0px;\n font-size: 0.75em;\n}\n\n.top-wallets-other-wallets-right {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.top-wallets-other-wallets-right img {\n border-radius: 8px;\n width: 2.4em;\n height: 2.4em;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.top-wallets-other-wallets-center-wallet {\n transform: perspective(500px) translateZ(100px);\n}\n\n@media only screen and (max-width: 800px) {\n .top-wallets-info h3 {\n font-size: 1em;\n }\n\n .top-wallets-info p {\n font-size: 0.75em;\n }\n\n .top-wallets-other-wallets {\n flex-direction: column;\n text-align: center;\n justify-content: center;\n align-items: center;\n }\n\n .top-wallets-other-wallets-left {\n order: 1;\n }\n\n .top-wallets-other-wallets-left h3 {\n font-size: 0.85em;\n }\n\n .top-wallets-other-wallets-left p {\n font-size: 0.65em;\n }\n}\n\n@media only screen and (max-width: 400px) {\n .top-wallets-other-wallets-right {\n max-width: 50px;\n transform: scale(0.8);\n }\n}\n",a.appendChild(l);const h=document.createElement("style");h.textContent=".wallets-button {\n border-radius: 6px;\n background-color: transparent;\n border: 1px solid #3880ff;\n color: #3880ff;\n width: 100%;\n padding: 12px 0px;\n margin-bottom: 1.8em;\n transition: all ease 0.2s;\n cursor: pointer;\n font-size: 0.9em;\n}\n\n.wallets-button:hover {\n color: white;\n background-color: #3880ff;\n}\n\n.wallets-list-main-wrapper {\n position: relative;\n}\n\n.wallets-list-wrapper {\n display: grid;\n overflow-y: auto;\n grid-template-columns: repeat(4, 1fr);\n padding: 1.8em 0px;\n gap: 1.2em 0em;\n max-height: 180px;\n}\n\n@media only screen and (max-width: 800px) {\n .wallets-list-wrapper {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-height: 300px;\n padding: 1.6em 0.6em;\n margin-top: 0px;\n }\n\n .wallets-list-main-wrapper::before {\n position: absolute;\n top: 0px;\n content: '';\n left: -24px;\n width: calc(100% + 48px);\n background: radial-gradient(\n circle,\n rgba(171, 171, 171, 0.7329525560224089) 0%,\n rgba(193, 193, 193, 0.1279105392156863) 100%\n );\n height: 1px;\n }\n}\n",a.appendChild(h);const u=document.createElement("style");u.textContent=".wallet-main {\n display: flex;\n gap: 1.25em;\n justify-content: space-between;\n border-radius: 12px;\n padding: 15px;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-disabled {\n opacity: 0.5;\n}\n\n.wallet-main:hover {\n transform: scale(1.01);\n}\n\n.wallet-main:active {\n transform: scale(0.99);\n}\n\n.wallet-main-left {\n max-width: 148px;\n flex: 1;\n}\n\n.theme__dark .wallet-main-left h3 {\n color: white;\n}\n\n.theme__dark .top-wallets-info p {\n color: #b5b8be;\n}\n\n.theme__dark .wallet-main-right {\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n}\n\n.theme__dark .wallet-small img {\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n}\n\n.theme__dark .wallet-small h3 {\n color: white;\n}\n\n.wallet-main-left h3 {\n color: #1c1e21;\n margin: 0px;\n font-size: 1em;\n}\n\n.wallet-main-left p {\n max-width: 400px;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 0px;\n font-size: 0.65em;\n}\n\n.wallet-main-right {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 8px;\n overflow: hidden;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-main-right img {\n width: 3.2em;\n height: 3.2em;\n}\n\n.wallet-main-tags {\n display: flex;\n gap: 6px;\n}\n\n.wallet-main-tag {\n color: #3880ff;\n margin: 0px;\n font-size: 0.75em;\n font-weight: 600;\n margin-top: 6px;\n text-transform: uppercase;\n}\n\n.wallet-small {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 0.5em;\n}\n\n.wallet-small img {\n padding: 0.4em;\n border-radius: 10px;\n width: 2.5em;\n height: 2.5em;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-small img:hover {\n transform: scale(1.01);\n}\n\n.wallet-small img:active {\n transform: scale(0.99);\n}\n\n.wallet-small h3 {\n color: #334155;\n margin: 0px;\n font-size: 0.8em;\n text-align: center;\n}\n\n.wallet-main-mobile {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 1em;\n}\n\n.wallet-main-left-mobile {\n order: 1;\n}\n\n.wallet-main-left-mobile h3 {\n font-size: 0.9em;\n text-align: center;\n}\n\n.wallet-main-left-mobile p {\n font-size: 0.65em;\n text-align: center;\n}\n\n@media only screen and (max-width: 800px) {\n .wallet-main {\n padding: 0.65em 15px;\n }\n\n .wallet-main-mobile {\n padding: 1.25em;\n }\n}\n",a.appendChild(u);const d=document.createElement("style");d.textContent=".info-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5em;\n border-radius: 10px;\n padding: 30px;\n}\n\n.info-border {\n border: 1px solid #aaaaaa42;\n}\n\n.info-icon {\n width: 40px;\n height: 40px;\n border-radius: 6px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 28px;\n margin-bottom: 0.2em;\n}\n\n.info-badge {\n background-color: #3880ff;\n font-size: 38px;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.theme__dark .info-title {\n color: white;\n}\n\n.theme__dark .info-description {\n color: #aeaeae;\n}\n\n.info-title {\n text-align: center;\n color: #334155;\n margin: 0px;\n font-size: 1em;\n}\n\n.info-description {\n text-align: center;\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.25em;\n margin: 6px 0px 12px 0px;\n margin: 0px;\n max-width: 300px;\n}\n\n.info-data {\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.25em;\n margin: 6px 0px 12px 0px;\n margin: 0px;\n overflow: scroll;\n max-height: 300px;\n}\n\n.info-buttons {\n display: flex;\n align-items: center;\n gap: 0.6em;\n}\n\n.info-button {\n border-radius: 6px;\n background-color: #3880ff;\n border: 1px solid #3880ff;\n color: white;\n padding: 0.6em 1.2em;\n width: 180px;\n transition: all ease 0.2s;\n cursor: pointer;\n margin-top: 1em;\n font-size: 0.8em;\n}\n\n.info-button:hover {\n background-color: #166afc;\n}\n\n.info-button-secondary {\n border-radius: 6px;\n background-color: transparent;\n border: 1px solid #3880ff;\n color: #3880ff;\n padding: 0.6em 1.2em;\n width: 180px;\n transition: all ease 0.2s;\n cursor: pointer;\n margin-top: 1em;\n}\n\n.info-button-secondary:hover {\n background-color: #e8f0ff;\n}\n\n@media only screen and (max-width: 800px) {\n .info-title {\n font-size: 0.9em;\n line-height: 1em;\n }\n\n .info-description {\n font-size: 0.65em;\n }\n\n .qr-more-info {\n font-size: 0.75em;\n }\n\n .info-wrapper {\n max-height: 180px;\n padding: 1.2em;\n }\n\n .info-icon {\n width: 40px;\n height: 40px;\n font-size: 1.8em;\n }\n\n .info-button {\n padding: 0.5em 1.6em;\n font-size: 0.7em;\n }\n}\n",a.appendChild(d);const f=document.createElement("style");f.textContent=".qr-wrapper {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n gap: 0.5em;\n border: 1px solid #aaaaaa42;\n border-radius: 10px;\n padding: 30px;\n height: 200px;\n}\n\n.qr-left {\n display: flex;\n flex-direction: column;\n max-width: 16em;\n height: 100%;\n}\n\n.qr-left h3 {\n color: #334155;\n margin: 0px;\n margin-bottom: 0.4em;\n font-size: 1em;\n}\n\n.theme__dark .qr-left h3 {\n color: white;\n}\n\n.theme__dark .qr-left span {\n color: #aeaeae;\n}\n\n.theme__dark .qr-copy-wrapper p {\n color: #aeaeae;\n}\n\n.qr-left span {\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 0px;\n}\n\n.qr-more-info {\n font-size: 0.95em !important;\n text-decoration: underline;\n margin-left: 6px !important;\n cursor: pointer;\n}\n\n.qr-right {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n border-radius: 6px;\n transition: all ease 0.2s;\n cursor: pointer;\n}\n\n.theme__dark .qr-right:hover {\n background-color: rgba(238, 238, 238, 0.492);\n}\n\n.qr-right:hover {\n background-color: rgb(238, 238, 238);\n}\n\n.qr-copy-wrapper {\n display: flex;\n align-items: center;\n gap: 0.6em;\n color: #7c828b;\n margin-bottom: 8px;\n margin-top: 18px;\n}\n\n.qr-copy-wrapper svg {\n font-size: 1em;\n}\n\n.qr-copy-wrapper p {\n font-size: 0.8em;\n margin: 0px;\n}\n\n.qr-svg-wrapper {\n background-color: white;\n border-radius: 10px;\n}\n\n.qr-svg-wrapper svg rect {\n fill: transparent !important;\n}\n\n@media only screen and (max-width: 800px) {\n .qr-wrapper {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 340px;\n }\n\n .qr-left {\n margin: 0.6em 0px;\n }\n\n .qr-left h3 {\n font-size: 1em;\n line-height: 1em;\n }\n\n .qr-left p {\n font-size: 0.75em;\n text-align: center;\n }\n\n .qr-left > div {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .qr-more-info {\n font-size: 0.75em;\n }\n}\n",a.appendChild(f);const p=document.createElement("style");p.textContent=Vr,a.appendChild(p);const g=document.createElement("style");g.textContent="* { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;}",a.appendChild(g);const y=[...Lr.map((e=>({id:e.key,key:e.key,name:e.shortName,image:e.logo,description:"Desktop App",type:"desktop",link:e.downloadLink,deepLink:e.deepLink}))),...Ur.map((e=>({id:e.id,key:e.key,name:e.shortName,image:e.logo,description:"Browser Extension",type:"extension",link:e.link}))),...zr.map((e=>({id:e.key,key:e.key,name:e.shortName,image:e.logo,description:"Mobile App",supportedInteractionStandards:e.supportedInteractionStandards,type:"ios",link:e.universalLink,deepLink:e.deepLink}))),...jr.map((t=>{var n,r;const i=t.links[null!==(r=null===(n=e.pairingPayload)||void 0===n?void 0:n.preferredNetwork)&&void 0!==r?r:v.MAINNET];return{id:t.key,key:t.key,name:t.shortName,image:t.logo,description:"Web App",type:"web",link:null!=i?i:t.links.mainnet}}))],b=function(e){return e.map((e=>{const t=["Web","web","App","app","Mobile","mobile"];for(let n=0;ne.name)).includes(r.name)){const e=t.findIndex((e=>e.name===r.name));e<0&&kr.error("There should be a wallet"),t[e].descriptions.includes(r.description)||t[e].descriptions.push(r.description),t[e].types.push(r.type),t[e].deepLink=r.deepLink,t[e].firefoxId=r.key.includes("firefox")?r.id:t[e].firefoxId}else t.push(Object.assign(Object.assign({},r),{descriptions:[r.description],types:[r.type],firefoxId:r.key.includes("firefox")?r.id:void 0}))}return t}(b),w=["kukai","temple","naan","umami"],E=function(e,t){const n=t.slice(0,4),r=[],i=[];for(let t of e){let e;n.some(((n,r)=>{const i=t.key.startsWith(n);return i&&(e=r),i})),void 0!==e?r[e]=t:i.push(t)}return i.sort(((e,t)=>e.namet.name?1:0)),[...r,...i]}(m,null!==(r=e.featuredWallets)&&void 0!==r?r:w),I=window.innerWidth<=800,R=()=>{var e;null===(e=eo())||void 0===e||e.track("click","ui","show more wallets"),Hi(!Vi())},A=()=>{var e;null===(e=eo())||void 0===e||e.track("click","ui","learn more"),Xi(_i()),$i("help"),Hi(!1)},M=()=>{var e;null===(e=eo())||void 0===e||e.track("click","ui","copy QR code to clipboard")},T=()=>{new Promise((e=>Cr(void 0,void 0,void 0,(function*(){no&&Di()&&(Bi(!1),setTimeout((()=>{no&&no(),document.getElementById("beacon-alert-wrapper")&&document.getElementById("beacon-alert-wrapper").remove()}),500)),e()})))),e.closeButtonCallback&&e.closeButtonCallback()},O=t=>Cr(void 0,void 0,void 0,(function*(){var r,s,a;if(Wi())return;Fi(!0),Hi(!1);const c=E.find((e=>e.id===t));if(Yi(c),(null==c?void 0:c.key)&&(null===(r=eo())||void 0===r||r.track("click","ui","opened wallet",{key:c.key}),localStorage.setItem(x.LAST_SELECTED_WALLET,c.key)),null==c?void 0:c.types.includes("web")){if(e.pairingPayload){const e=new ft,t=yield e.serialize(yield i),n=mi(c.link,t);window.open(n,"_blank","noopener")}Fi(!1)}else if(c&&(null===(s=c.supportedInteractionStandards)||void 0===s?void 0:s.includes("wallet_connect"))){const e=null===(a=yield o)||void 0===a?void 0:a.uri;if(e)if(Ni(window)||Pi(window)){let t=`https://link.trustwallet.com/wc?uri=${encodeURIComponent(e)}`;if((e=>{var t;return e&&1==(null===(t=e.ethereum)||void 0===t?void 0:t.isTrust)})(window)&&Ni(window))t=`${e}`,window.location.href=t;else if(Ni(window))window.open(t,"_blank","noopener");else if(Pi(window)){const e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("rel","noopener"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}}else Ji(e),$i("install");Fi(!1)}else if((null==c?void 0:c.types.includes("ios"))&&I){if(Ji(""),e.pairingPayload){const e=new ft,t=yield e.serialize(yield i),n=mi(Pi(window)&&c.deepLink?c.deepLink:Ni(window)?"tezos://":c.link,t);if(Ni(window))window.open(n,"_blank","noopener");else if(Pi(window)){const e=document.createElement("a");e.setAttribute("href",n),e.setAttribute("rel","noopener"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}}Fi(!1)}else yield n(),Fi(!1),$i("install")})),P=()=>Cr(void 0,void 0,void 0,(function*(){var e;null===(e=eo())||void 0===e||e.track("click","ui","other wallet"),Hi(!1),Yi(Object.assign(Object.assign({},E[0]),{name:"",types:["ios"]})),localStorage.setItem(x.LAST_SELECTED_WALLET,E[0].key),n(),$i("install")})),N=()=>Cr(void 0,void 0,void 0,(function*(){var t,n,r,i,o,s;if(null===(t=eo())||void 0===t||t.track("click","ui","open extension",{key:null===(n=Zi())||void 0===n?void 0:n.key}),Hi(!1),null===(r=e.pairingPayload)||void 0===r?void 0:r.postmessageSyncCode){const t=new ft,n=yield t.serialize(yield e.pairingPayload.postmessageSyncCode()),r={target:S.EXTENSION,payload:n,targetId:null===(i=Zi())||void 0===i?void 0:i.id};if(Te.postMessage(r,Te.location.origin),null===(o=Zi())||void 0===o?void 0:o.firefoxId){const e={target:S.EXTENSION,payload:n,targetId:null===(s=Zi())||void 0===s?void 0:s.firefoxId};Te.postMessage(e,Te.location.origin)}}})),k=()=>Cr(void 0,void 0,void 0,(function*(){var e,t,n;null===(e=eo())||void 0===e||e.track("click","ui","install extension",{key:null===(t=Zi())||void 0===t?void 0:t.key}),Hi(!1),window.open((null===(n=Zi())||void 0===n?void 0:n.link)||"","_blank","noopener")})),C=()=>Cr(void 0,void 0,void 0,(function*(){var t,n,r,i,o;if(Hi(!1),null===(t=eo())||void 0===t||t.track("click","ui","open desktop",{key:null===(n=Zi())||void 0===n?void 0:n.key}),null===(r=e.pairingPayload)||void 0===r?void 0:r.p2pSyncCode){const t=new ft,n=yield t.serialize(yield null===(i=e.pairingPayload)||void 0===i?void 0:i.p2pSyncCode()),r=mi((null===(o=Zi())||void 0===o?void 0:o.deepLink)||"",n);window.open(r,"_blank","noopener")}})),U=()=>Cr(void 0,void 0,void 0,(function*(){var e,t,n;null===(e=eo())||void 0===e||e.track("click","ui","download desktop",{key:null===(t=Zi())||void 0===t?void 0:t.key}),Hi(!1),window.open((null===(n=Zi())||void 0===n?void 0:n.link)||"","_blank","noopener")})),L=()=>{var e,n;return t.map((e=>e.id)).includes((null===(e=Zi())||void 0===e?void 0:e.firefoxId)||"")||t.map((e=>e.id)).includes((null===(n=Zi())||void 0===n?void 0:n.id)||"")},j=Ui();no=br((()=>{var t,n,r,i,o,s,a,c,l,h,u,d,f,p,g,y,b,m;return(()=>{const v=Li.cloneNode(!0);return Er(v,`theme__${j}`),Rr(v,(()=>{const v=Wn((()=>!!e.pairingPayload));return()=>v()&&fr($r,{get loading(){return Wi()},get open(){return Di()},get showMore(){return Vi()},get content(){return(()=>{const e=ji.cloneNode(!0),v=e.firstChild,w=v.nextSibling,S=w.nextSibling,R=S.nextSibling;return Rr(v,(()=>{const e=Wn((()=>!(I||!(null===(t=Zi())||void 0===t?void 0:t.types.includes("extension")))));return()=>e()&&fr(bi,{border:!0,get title(){return Wn((()=>!!L()))()?"Use Browser Extension":`Install ${null===(n=Zi())||void 0===n?void 0:n.name} Wallet`},get description(){return Wn((()=>!!L()))()?`Please connect below to use your ${null===(r=Zi())||void 0===r?void 0:r.name} Wallet browser extension.`:`To connect your ${null===(i=Zi())||void 0===i?void 0:i.name} Wallet, install the browser extension.`},get buttons(){return L()?[{label:"Connect now",type:"primary",onClick:()=>N()}]:[{label:"Install extension",type:"primary",onClick:()=>k()}]}})})(),null),Rr(v,(()=>{const e=Wn((()=>!(I||!(null===(o=Zi())||void 0===o?void 0:o.types.includes("desktop")))));return()=>e()&&fr(bi,{border:!0,title:"Open Desktop App",description:"If you don't have the desktop app installed, click below to download it.",buttons:[{label:"Open desktop app",type:"primary",onClick:()=>C()},{label:"Download desktop app",type:"secondary",onClick:()=>U()}]})})(),null),Rr(v,(()=>{const e=Wn((()=>!!(!I&&Gi().length>0&&(null===(s=Zi())||void 0===s?void 0:s.types.includes("ios"))&&(null===(a=Zi())||void 0===a?void 0:a.types.length)>1)));return()=>e()&&fr(Mi,{get isWalletConnect(){return(null===(l=null===(c=Zi())||void 0===c?void 0:c.supportedInteractionStandards)||void 0===l?void 0:l.includes("wallet_connect"))||!1},isMobile:!1,get walletName(){return(null===(h=Zi())||void 0===h?void 0:h.name)||"AirGap"},get code(){return Gi()},onClickLearnMore:A,onClickQrCode:M})})(),null),Rr(v,(()=>{const e=Wn((()=>!!(!I&&Gi().length>0&&(null===(u=Zi())||void 0===u?void 0:u.types.includes("ios"))&&(null===(d=Zi())||void 0===d?void 0:d.types.length)<=1)));return()=>e()&&fr(Mi,{get isWalletConnect(){return(null===(p=null===(f=Zi())||void 0===f?void 0:f.supportedInteractionStandards)||void 0===p?void 0:p.includes("wallet_connect"))||!1},isMobile:!0,get walletName(){return(null===(g=Zi())||void 0===g?void 0:g.name)||"Airgap"},get code(){return Gi()},onClickLearnMore:A,onClickQrCode:M})})(),null),Rr(v,(()=>{const e=Wn((()=>!!(I&&Gi().length>0)));return()=>e()&&fr(Mi,{get isWalletConnect(){return(null===(b=null===(y=Zi())||void 0===y?void 0:y.supportedInteractionStandards)||void 0===b?void 0:b.includes("wallet_connect"))||!1},isMobile:!0,get walletName(){return(null===(m=Zi())||void 0===m?void 0:m.name)||"Airgap"},get code(){return Gi()},onClickLearnMore:A,onClickQrCode:M})})(),null),Rr(w,fr(ui,{get disabled(){return Wi()},get wallets(){return E.slice(-(E.length-(I?3:4)))},onClickWallet:O,onClickOther:P})),Rr(S,fr(bi,{iconBadge:!0,get icon(){return zi.cloneNode(!0)},title:"What is a wallet?",description:"Wallets let you send, receive, store and interact with digital assets. Your wallet can be used as an easy way to login, instead of having to remember a password."}),null),Rr(S,fr(bi,{iconBadge:!0,get icon(){return Ki.cloneNode(!0)},title:"Not sure where to start?",description:"If you are new to the Web3, we recommend that you start by creating a Kukai wallet. Kukai is a fast way of creating your first wallet using your preffered social account."}),null),Rr(R,fr(li,{get disabled(){return Wi()},get wallets(){return I?E.slice(0,3):E.slice(0,4)},onClickWallet:O,onClickLearnMore:A,get otherWallets(){return I?{images:[E[3].image,E[4].image,E[5].image],onClick:()=>$i("wallets")}:void 0}})),Dn((e=>{const t="install"===_i()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"},n="wallets"===_i()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s"},r="help"===_i()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"},i="install"!==_i()&&"wallets"!==_i()&&"help"!==_i()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s"};return e._v$=Ir(v,t,e._v$),e._v$2=Ir(w,n,e._v$2),e._v$3=Ir(S,r,e._v$3),e._v$4=Ir(R,i,e._v$4),e}),{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),e})()},get extraContent(){return Wn((()=>!("top-wallets"===_i()&&!I)))()?void 0:fr(ui,{get disabled(){return Wi()},small:!0,get wallets(){return E.slice(-(E.length-4))},onClickWallet:O,onClickOther:P})},onClickShowMore:R,onCloseClick:()=>T(),get onBackClick(){return Wn((()=>!("install"!==_i()||I)))()?()=>$i("top-wallets"):Wn((()=>!("install"!==_i()||!I)))()?()=>$i("wallets"):Wn((()=>!("wallets"!==_i()||!I)))()?()=>$i("top-wallets"):"help"===_i()?()=>$i(Qi()):void 0}})})(),null),Rr(v,(()=>{const t=Wn((()=>!e.pairingPayload));return()=>t()&&fr($r,{get open(){return Di()},get content(){return fr(bi,{bigIcon:!0,get icon(){return qi.cloneNode(!0)},get title(){return e.title||"No title"},get description(){return e.body||"No description"},get data(){return e.data},buttons:[{label:"Close",type:"primary",onClick:()=>T()}]})},onCloseClick:()=>T()})})(),null),v})()}),a),document.body.prepend(s),setTimeout((()=>{Bi(!0)}),50)}return""}));let oo=Lr,so=Ur,ao=jr,co=zr;const lo=()=>oo,ho=()=>so,uo=()=>ao,fo=()=>co;var po,go;!function(e){e[e.DESKTOP=0]="DESKTOP",e[e.IOS=1]="IOS",e[e.ANDROID=2]="ANDROID"}(po||(po={})),function(e){e.IOS="ios",e.ANDROID="android",e.EXTENSION="extension",e.DESKTOP="desktop",e.WEB="web"}(go||(go={}));const yo=mr("",1),bo=mr("

",2),mo=mr('

',2),vo=mr('
',6),wo=mr('

props.label

',2),Eo=mr('
',2),So=mr('

',4),Io=mr('
',2),Ro=e=>{const t=e.label.includes("{{wallet}}")&&e.walletInfo;return(()=>{const n=vo.cloneNode(!0),r=n.firstChild,i=r.firstChild;return Rr(r,fr(Gr,{}),i),Rr(r,(()=>{const n=Wn((()=>!(!t||!e.walletInfo)));return()=>n()&&Wn((()=>function(e,t){const n=/({{\s*wallet\s*}})/g;return e.split(n).map((e=>e.match(n)?[(()=>{const e=yo.cloneNode(!0);return Dn((()=>wr(e,"src",t.icon))),e})(),(()=>{const e=bo.cloneNode(!0);return Rr(e,(()=>t.name)),e})()]:(()=>{const t=mo.cloneNode(!0);return Rr(t,e),t})()))}(e.label,e.walletInfo)))})(),i),Rr(r,!t&&wo.cloneNode(!0),i),Sr(i,"click",e.onClickClose,!0),Rr(i,fr(Br,{})),Rr(n,(()=>{const t=Wn((()=>!!e.actions));return()=>t()&&(()=>{const t=Eo.cloneNode(!0);return Rr(t,fr(pr,{get each(){return e.actions},children:e=>(()=>{const t=So.cloneNode(!0),n=t.firstChild;return Rr(n,(()=>e.text)),Rr(t,(()=>{const t=Wn((()=>!!e.actionText));return()=>t()&&(()=>{const t=Io.cloneNode(!0);return t.$$click=()=>{e.actionCallback&&e.actionCallback()},Rr(t,(()=>e.actionText)),t})()})(),null),Dn((()=>Er(n,"toast-action-label "+(e.isBold?"toast-action-bold":"")))),t})()})),t})()})(),null),Dn((()=>Er(n,e.open?"toast-wrapper-show":"toast-wrapper-hide"))),n})()};vr(["click"]);let Ao=null;const[xo,Mo]=qn(!1),[To,Oo]=qn("");let Po;const No=()=>new Promise((e=>{Mo(!1),setTimeout((()=>{Ao&&Ao(),document.getElementById("beacon-toast-wrapper")&&document.getElementById("beacon-toast-wrapper").remove(),e()}),300)})),ko=e=>Cr(void 0,void 0,void 0,(function*(){const t=yield Ae();Oo(t),yield No(),t===To()&&(e=>{const t=document.createElement("div");t.setAttribute("id","beacon-toast-wrapper"),t.style.height="0px";const n=t.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=".toast-wrapper-show {\n max-width: 460px;\n overflow: hidden;\n background-color: white;\n position: fixed;\n top: 12px;\n right: 12px;\n border-radius: 6px;\n transition: all ease 0.3s;\n transform: translateY(0px) scale(1);\n z-index: 1000000;\n -webkit-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n -moz-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n}\n\n.toast-wrapper-hide {\n max-width: 460px;\n overflow: hidden;\n background-color: white;\n position: fixed;\n top: 12px;\n right: 12px;\n border-radius: 6px;\n transition: all ease 0.3s;\n transform: translateY(-150px) scale(0.2);\n z-index: 1000000;\n -webkit-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n -moz-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n}\n\n.toast-header {\n padding: 0px 0.6em 0px 1.2em;\n display: flex;\n align-items: center;\n gap: 6px;\n overflow: hidden;\n position: relative;\n}\n\n.toast-header img {\n width: 24px;\n}\n\n.toast-header h3 {\n font-weight: bold;\n color: #334155;\n font-size: 0.8em;\n margin-right: auto;\n}\n\n.toast-label {\n margin: 1em 0em 1em 0em;\n color: #334155;\n font-size: 0.9em;\n}\n\n.toast-button-icon {\n width: 24px;\n height: 24px;\n padding: 2px;\n border-radius: 100%;\n border: 1px solid #cbd5e1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n fill: #64748b;\n transition: all ease 0.2s;\n margin-left: auto;\n}\n\n.toast-button-icon:hover {\n background-color: #475569;\n border: 1px solid #475569;\n fill: #e2e8f0;\n}\n\n.toast-body {\n padding: 0.6em 1.2em;\n}\n\n.toast-action-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.toast-action-label {\n margin: 0.8em 0em;\n font-size: 0.8em;\n color: #64748b;\n}\n\n.toast-action-bold {\n font-weight: bold;\n color: #334155;\n}\n\n.toast-action-button {\n cursor: pointer;\n font-size: 0.8em;\n font-weight: 600;\n color: #3880ff;\n transition: all ease 0.2s;\n border-radius: 6px;\n padding: 0.4em 0.8em;\n}\n\n.toast-action-button:hover {\n background-color: #e4eeff;\n transition: all ease 0.2s;\n}\n\n@media only screen and (max-width: 800px) {\n .toast-wrapper-show {\n width: calc(100% - 24px);\n }\n\n .toast-wrapper-hide {\n width: calc(100% - 24px);\n }\n}\n",n.appendChild(r);const i=document.createElement("style");i.textContent=Vr,n.appendChild(i);const o=document.createElement("style");o.textContent="* { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;}",n.appendChild(o),Ao=br((()=>fr(Ro,{get label(){return e.body},get open(){return xo()},onClickClose:()=>{No()},get actions(){return e.actions},get walletInfo(){return e.walletInfo}})),n),document.body.prepend(t),setTimeout((()=>{Mo(!0)}),50),clearTimeout(Po),e.timer&&(Po=setTimeout((()=>No()),e.timer))})(e)})),Co=e=>e.length>=12?`${e.substr(0,5)}...${e.substr(-5)}`:e;var Uo=n(5108),Lo=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const jo=new He("BeaconEvents"),zo=5e3;var Ko;!function(e){e.PERMISSION_REQUEST_SENT="PERMISSION_REQUEST_SENT",e.PERMISSION_REQUEST_SUCCESS="PERMISSION_REQUEST_SUCCESS",e.PERMISSION_REQUEST_ERROR="PERMISSION_REQUEST_ERROR",e.OPERATION_REQUEST_SENT="OPERATION_REQUEST_SENT",e.OPERATION_REQUEST_SUCCESS="OPERATION_REQUEST_SUCCESS",e.OPERATION_REQUEST_ERROR="OPERATION_REQUEST_ERROR",e.SIGN_REQUEST_SENT="SIGN_REQUEST_SENT",e.SIGN_REQUEST_SUCCESS="SIGN_REQUEST_SUCCESS",e.SIGN_REQUEST_ERROR="SIGN_REQUEST_ERROR",e.BROADCAST_REQUEST_SENT="BROADCAST_REQUEST_SENT",e.BROADCAST_REQUEST_SUCCESS="BROADCAST_REQUEST_SUCCESS",e.BROADCAST_REQUEST_ERROR="BROADCAST_REQUEST_ERROR",e.ACKNOWLEDGE_RECEIVED="ACKNOWLEDGE_RECEIVED",e.LOCAL_RATE_LIMIT_REACHED="LOCAL_RATE_LIMIT_REACHED",e.NO_PERMISSIONS="NO_PERMISSIONS",e.ACTIVE_ACCOUNT_SET="ACTIVE_ACCOUNT_SET",e.ACTIVE_TRANSPORT_SET="ACTIVE_TRANSPORT_SET",e.SHOW_PREPARE="SHOW_PREPARE",e.HIDE_UI="HIDE_UI",e.PAIR_INIT="PAIR_INIT",e.PAIR_SUCCESS="PAIR_SUCCESS",e.CHANNEL_CLOSED="CHANNEL_CLOSED",e.INTERNAL_ERROR="INTERNAL_ERROR",e.UNKNOWN="UNKNOWN"}(Ko||(Ko={}));const qo=e=>Lo(void 0,void 0,void 0,(function*(){let t;const n=[];if(e.walletInfo.deeplink&&("web"===e.walletInfo.type||"mobile"===e.walletInfo.type&&Oi(window)||"desktop"===e.walletInfo.type&&!Oi(window))){const n=e.walletInfo.deeplink;t=()=>Lo(void 0,void 0,void 0,(function*(){const e=document.createElement("a");e.setAttribute("rel","noopener"),e.setAttribute("href",n),e.setAttribute("target","_blank"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}))}n.push({text:"No answer from your wallet received yet. Please make sure the wallet is open.",isBold:!0}),n.push({text:"Did you make a mistake?",actionText:"Cancel Request",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){yield No()}))}),n.push({text:"Wallet not receiving request?",actionText:"Reset Connection",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){yield No();const t=e.extraInfo.resetCallback;t&&(jo.log("showSentToast","resetCallback invoked"),yield t())}))}),ko({body:"Request sent to  {{wallet}}",walletInfo:e.walletInfo,state:"loading",actions:n,openWalletAction:t}).catch((e=>Uo.error(e)))})),Do=(e,t)=>Lo(void 0,void 0,void 0,(function*(){var n,r,i,o,s,a;const c=e.errorResponse.errorType?Qe.getError(e.errorResponse.errorType,e.errorResponse.errorData):new ot,l=[{text:c.title,isBold:!0}];if(e.errorResponse.errorType===I.TRANSACTION_INVALID_ERROR&&e.errorResponse.errorData){const h=e.errorResponse.errorData,u=e.errorMessages;let d=!1;if((null===(n=h[0])||void 0===n?void 0:n.contract_handle)&&u&&(null==u?void 0:u[h[0].contract_handle])){const e=null!==(o=null===(i=null===(r=h[1])||void 0===r?void 0:r.with)||void 0===i?void 0:i.int)&&void 0!==o?o:null===(a=null===(s=h[1])||void 0===s?void 0:s.with)||void 0===a?void 0:a.string,t=null==u?void 0:u[h[0].contract_handle];e&&(null==t?void 0:t[e])&&(l.push({text:null==t?void 0:t[e],isBold:!0}),d=!0)}d||l.push({text:c.description}),l.push({text:"",actionText:"Show Details",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){yield No(),yield io({title:c.title,body:c.fullDescription.description,data:c.fullDescription.data,buttons:t})}))})}yield ko({body:"{{wallet}}  has returned an error",timer:e.errorResponse.errorType===I.ABORTED_ERROR?zo:void 0,state:"finished",walletInfo:e.walletInfo,actions:l})})),Bo=()=>()=>Lo(void 0,void 0,void 0,(function*(){})),Wo={[Ko.PERMISSION_REQUEST_SENT]:qo,[Ko.PERMISSION_REQUEST_SUCCESS]:e=>Lo(void 0,void 0,void 0,(function*(){const{output:t}=e;yield ko({body:"{{wallet}}  has granted permission",timer:zo,walletInfo:e.walletInfo,state:"finished",actions:[{text:"Address",actionText:Co(t.address),isBold:!0},{text:"Network",actionText:`${t.network.type}`},{text:"Permissions",actionText:t.scopes.join(", ")}]})})),[Ko.PERMISSION_REQUEST_ERROR]:Do,[Ko.OPERATION_REQUEST_SENT]:qo,[Ko.OPERATION_REQUEST_SUCCESS]:e=>Lo(void 0,void 0,void 0,(function*(){const{account:t,output:n,blockExplorer:r}=e;yield ko({body:"{{wallet}}  successfully submitted operation",timer:zo,state:"finished",walletInfo:e.walletInfo,actions:[{text:Co(n.transactionHash),isBold:!0,actionText:"Open Blockexplorer",actionLogo:"external",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){const e=yield r.getTransactionLink(n.transactionHash,t.network);window.open(e,"_blank","noopener"),yield No()}))}]})})),[Ko.OPERATION_REQUEST_ERROR]:Do,[Ko.SIGN_REQUEST_SENT]:qo,[Ko.SIGN_REQUEST_SUCCESS]:e=>Lo(void 0,void 0,void 0,(function*(){const t=e.output;yield ko({body:"{{wallet}}  successfully signed payload",timer:zo,state:"finished",walletInfo:e.walletInfo,actions:[{text:`Signature: ${Co(t.signature)}`,actionText:"Copy to clipboard",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){navigator.clipboard.writeText(t.signature).then((()=>{jo.log("showSignSuccessAlert","Copying to clipboard was successful!")}),(e=>{jo.error("showSignSuccessAlert","Could not copy text to clipboard: ",e)})),yield No()}))}]})})),[Ko.SIGN_REQUEST_ERROR]:Do,[Ko.BROADCAST_REQUEST_SENT]:qo,[Ko.BROADCAST_REQUEST_SUCCESS]:e=>Lo(void 0,void 0,void 0,(function*(){const{network:t,output:n,blockExplorer:r}=e;yield ko({body:"{{wallet}}  successfully injected operation",timer:zo,state:"finished",walletInfo:e.walletInfo,actions:[{text:Co(n.transactionHash),isBold:!0,actionText:"Open Blockexplorer",actionLogo:"external",actionCallback:()=>Lo(void 0,void 0,void 0,(function*(){const e=yield r.getTransactionLink(n.transactionHash,t);window.open(e,"_blank","noopener"),yield No()}))}]})})),[Ko.BROADCAST_REQUEST_ERROR]:Do,[Ko.ACKNOWLEDGE_RECEIVED]:e=>Lo(void 0,void 0,void 0,(function*(){ko({body:"Awaiting confirmation in  {{wallet}}",state:"acknowledge",walletInfo:e.walletInfo}).catch((e=>Uo.error(e)))})),[Ko.LOCAL_RATE_LIMIT_REACHED]:()=>Lo(void 0,void 0,void 0,(function*(){io({title:"Error",body:"Rate limit reached. Please slow down",buttons:[{text:"Done",style:"outline"}],timer:3e3}).catch((e=>Uo.error(e)))})),[Ko.NO_PERMISSIONS]:()=>Lo(void 0,void 0,void 0,(function*(){yield io({title:"No Permission",body:"Please allow the wallet to handle this type of request."})})),[Ko.ACTIVE_ACCOUNT_SET]:Bo(),[Ko.ACTIVE_TRANSPORT_SET]:Bo(),[Ko.SHOW_PREPARE]:e=>Lo(void 0,void 0,void 0,(function*(){const t=e.walletInfo?"Preparing Request for  {{wallet}}...":"Preparing Request...";ko({body:t,state:"prepare",walletInfo:e.walletInfo}).catch((e=>Uo.error(e)))})),[Ko.HIDE_UI]:e=>Lo(void 0,void 0,void 0,(function*(){e?(e.includes("alert")&&ro(),e.includes("toast")&&No()):No()})),[Ko.PAIR_INIT]:e=>Lo(void 0,void 0,void 0,(function*(){Uo.log("showPairAlert");const t={title:"Choose your preferred wallet",body:"

",pairingPayload:{p2pSyncCode:e.p2pPeerInfo,walletConnectSyncCode:e.walletConnectPeerInfo,postmessageSyncCode:e.postmessagePeerInfo,preferredNetwork:e.preferredNetwork},closeButtonCallback:e.abortedHandler,disclaimerText:e.disclaimerText,analytics:e.analytics,featuredWallets:e.featuredWallets};yield io(t)})),[Ko.PAIR_SUCCESS]:()=>Lo(void 0,void 0,void 0,(function*(){yield ro()})),[Ko.CHANNEL_CLOSED]:()=>Lo(void 0,void 0,void 0,(function*(){yield io({title:"Channel closed",body:"Your peer has closed the connection.",buttons:[{text:"Done",style:"outline"}],timer:1500})})),[Ko.INTERNAL_ERROR]:e=>Lo(void 0,void 0,void 0,(function*(){var t;const n=[...null!==(t=e.buttons)&&void 0!==t?t:[]];n.push({text:"Done",style:"outline"});const r={title:"Internal Error",body:e.text,buttons:n};yield io(r)})),[Ko.UNKNOWN]:Bo()};class Fo{constructor(e={},t){this.callbackMap={[Ko.PERMISSION_REQUEST_SENT]:[Wo.PERMISSION_REQUEST_SENT],[Ko.PERMISSION_REQUEST_SUCCESS]:[Wo.PERMISSION_REQUEST_SUCCESS],[Ko.PERMISSION_REQUEST_ERROR]:[Wo.PERMISSION_REQUEST_ERROR],[Ko.OPERATION_REQUEST_SENT]:[Wo.OPERATION_REQUEST_SENT],[Ko.OPERATION_REQUEST_SUCCESS]:[Wo.OPERATION_REQUEST_SUCCESS],[Ko.OPERATION_REQUEST_ERROR]:[Wo.OPERATION_REQUEST_ERROR],[Ko.SIGN_REQUEST_SENT]:[Wo.SIGN_REQUEST_SENT],[Ko.SIGN_REQUEST_SUCCESS]:[Wo.SIGN_REQUEST_SUCCESS],[Ko.SIGN_REQUEST_ERROR]:[Wo.SIGN_REQUEST_ERROR],[Ko.BROADCAST_REQUEST_SENT]:[Wo.BROADCAST_REQUEST_SENT],[Ko.BROADCAST_REQUEST_SUCCESS]:[Wo.BROADCAST_REQUEST_SUCCESS],[Ko.BROADCAST_REQUEST_ERROR]:[Wo.BROADCAST_REQUEST_ERROR],[Ko.ACKNOWLEDGE_RECEIVED]:[Wo.ACKNOWLEDGE_RECEIVED],[Ko.LOCAL_RATE_LIMIT_REACHED]:[Wo.LOCAL_RATE_LIMIT_REACHED],[Ko.NO_PERMISSIONS]:[Wo.NO_PERMISSIONS],[Ko.ACTIVE_ACCOUNT_SET]:[Wo.ACTIVE_ACCOUNT_SET],[Ko.ACTIVE_TRANSPORT_SET]:[Wo.ACTIVE_TRANSPORT_SET],[Ko.SHOW_PREPARE]:[Wo.SHOW_PREPARE],[Ko.HIDE_UI]:[Wo.HIDE_UI],[Ko.PAIR_INIT]:[Wo.PAIR_INIT],[Ko.PAIR_SUCCESS]:[Wo.PAIR_SUCCESS],[Ko.CHANNEL_CLOSED]:[Wo.CHANNEL_CLOSED],[Ko.INTERNAL_ERROR]:[Wo.INTERNAL_ERROR],[Ko.UNKNOWN]:[Wo.UNKNOWN]},t&&this.setAllHandlers(),this.overrideDefaults(e)}on(e,t){return Lo(this,void 0,void 0,(function*(){const n=this.callbackMap[e]||[];n.push(t),this.callbackMap[e]=n}))}emit(e,t,n){return Lo(this,void 0,void 0,(function*(){const r=this.callbackMap[e];r&&r.length>0&&r.forEach((r=>Lo(this,void 0,void 0,(function*(){try{yield r(t,n)}catch(t){jo.error(`error handling event ${e}`,t)}}))))}))}overrideDefaults(e){Object.keys(e).forEach((t=>{const n=t,r=e[n];r&&(this.callbackMap[n]=[r.handler])}))}setAllHandlers(e){Object.keys(this.callbackMap).forEach((t=>{const n=t;this.callbackMap[n]=[],e?this.callbackMap[n].push(e):this.callbackMap[n].push(((...e)=>{jo.log(t,...e)}))}))}}const Vo={[b.BlockchainRequest]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.BlockchainResponse]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.PermissionRequest]:{sent:Ko.PERMISSION_REQUEST_SENT,success:Ko.PERMISSION_REQUEST_SUCCESS,error:Ko.PERMISSION_REQUEST_ERROR},[b.PermissionResponse]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.OperationRequest]:{sent:Ko.OPERATION_REQUEST_SENT,success:Ko.OPERATION_REQUEST_SUCCESS,error:Ko.OPERATION_REQUEST_ERROR},[b.OperationResponse]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.SignPayloadRequest]:{sent:Ko.SIGN_REQUEST_SENT,success:Ko.SIGN_REQUEST_SUCCESS,error:Ko.SIGN_REQUEST_ERROR},[b.SignPayloadResponse]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.BroadcastRequest]:{sent:Ko.BROADCAST_REQUEST_SENT,success:Ko.BROADCAST_REQUEST_SUCCESS,error:Ko.BROADCAST_REQUEST_ERROR},[b.BroadcastResponse]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.Acknowledge]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.Disconnect]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN},[b.Error]:{sent:Ko.UNKNOWN,success:Ko.UNKNOWN,error:Ko.UNKNOWN}};class Ho{constructor(e){this.rpcUrls=e}getLinkForNetwork(e){return t=this,n=void 0,i=function*(){return this.rpcUrls[e.type]},new((r=void 0)||(r=Promise))((function(e,o){function s(e){try{c(i.next(e))}catch(e){o(e)}}function a(e){try{c(i.throw(e))}catch(e){o(e)}}function c(t){var n;t.done?e(t.value):(n=t.value,n instanceof r?n:new r((function(e){e(n)}))).then(s,a)}c((i=i.apply(t,n||[])).next())}));var t,n,r,i}}var Go=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Jo extends Ho{constructor(e={[v.MAINNET]:"https://tzkt.io",[v.GHOSTNET]:"https://ghostnet.tzkt.io",[v.MONDAYNET]:"https://mondaynet.tzkt.io",[v.DAILYNET]:"https://dailynet.tzkt.io",[v.DELPHINET]:"https://delphinet.tzkt.io",[v.EDONET]:"https://edonet.tzkt.io",[v.FLORENCENET]:"https://florencenet.tzkt.io",[v.GRANADANET]:"https://granadanet.tzkt.io",[v.HANGZHOUNET]:"https://hangzhounet.tzkt.io",[v.ITHACANET]:"https://ithacanet.tzkt.io",[v.JAKARTANET]:"https://jakartanet.tzkt.io",[v.KATHMANDUNET]:"https://kathmandunet.tzkt.io",[v.LIMANET]:"https://limanet.tzkt.io",[v.MUMBAINET]:"https://mumbainet.tzkt.io",[v.NAIROBINET]:"https://nairobinet.tzkt.io",[v.CUSTOM]:"https://nairobinet.tzkt.io"}){super(e),this.rpcUrls=e}getAddressLink(e,t){return Go(this,void 0,void 0,(function*(){return`${yield this.getLinkForNetwork(t)}/${e}`}))}getTransactionLink(e,t){return Go(this,void 0,void 0,(function*(){return`${yield this.getLinkForNetwork(t)}/${e}`}))}}var Zo=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Yo=new He("DappPostMessageTransport");class Qo extends mn{constructor(e,t,n){super(e,t,n,x.TRANSPORT_POSTMESSAGE_PEERS_DAPP)}startOpenChannelListener(){return Zo(this,void 0,void 0,(function*(){return this.client.listenForChannelOpening((e=>Zo(this,void 0,void 0,(function*(){Yo.log("connect","received PostMessagePairingResponse",e),yield this.addPeer(e),this._isConnected=R.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}))}listenForNewPeer(e){return Zo(this,void 0,void 0,(function*(){Yo.log("listenForNewPeer"),this.newPeerListener=e}))}stopListeningForNewPeers(){return Zo(this,void 0,void 0,(function*(){Yo.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var Xo=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const _o=new He("DappP2PTransport");class $o extends cn{constructor(e,t,n,r,i,o){super(e,t,n,r,x.TRANSPORT_P2P_PEERS_DAPP,i,o)}startOpenChannelListener(){return Xo(this,void 0,void 0,(function*(){return this.client.listenForChannelOpening((e=>Xo(this,void 0,void 0,(function*(){_o.log("listenForNewPeer","new publicKey",e.publicKey),yield this.addPeer(e),this._isConnected=R.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}))}listenForNewPeer(e){return Xo(this,void 0,void 0,(function*(){_o.log("listenForNewPeer"),this.newPeerListener=e}))}stopListeningForNewPeers(){return Xo(this,void 0,void 0,(function*(){_o.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var es=n(7187),ts=n.n(es),ns=n(5150),rs=n(159),is=n(9107),os=n(8200);class ss extends os.q{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}}class as extends os.q{constructor(e,t){super(),this.core=e,this.logger=t,this.records=new Map}}class cs{constructor(e,t){this.logger=e,this.core=t}}class ls extends os.q{constructor(e,t){super(),this.relayer=e,this.logger=t}}class hs extends os.q{constructor(e){super()}}class us{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}}class ds extends os.q{constructor(e,t){super(),this.relayer=e,this.logger=t}}class fs extends os.q{constructor(e,t){super(),this.core=e,this.logger=t}}class ps{constructor(e,t){this.projectId=e,this.logger=t}}class gs{constructor(e){this.opts=e,this.protocol="wc",this.version=2}}class ys{constructor(e){this.client=e}}const bs=e=>JSON.stringify(e,((e,t)=>"bigint"==typeof t?t.toString()+"n":t));function ms(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return(e=>{const t=e.replace(/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,'$1"$2n"$3');return JSON.parse(t,((e,t)=>"string"==typeof t&&t.match(/^\d+n$/)?BigInt(t.substring(0,t.length-1)):t))})(e)}catch(t){return e}}function vs(e){return"string"==typeof e?e:bs(e)||""}var ws=n(6736);const Es="base64url",Ss="utf8",Is=":",Rs="did",As="key",xs="base58btc",Ms="z",Ts="K36";function Os(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ps(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?Os(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Ns(e,t){t||(t=e.reduce(((e,t)=>e+t.length),0));const n=Ps(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return Os(n)}const ks=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r>>0,s=new Uint8Array(o);e[t];){var h=n[e.charCodeAt(t)];if(255===h)return;for(var u=0,d=o-1;(0!==h||u>>0,s[d]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");i=u,t++}if(" "!==e[t]){for(var f=o-i;f!==o&&0===s[f];)f++;for(var p=new Uint8Array(r+(o-f)),g=r;f!==o;)p[g++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var n=0,r=0,i=0,o=t.length;i!==o&&0===t[i];)i++,n++;for(var s=(o-i)*h+1>>>0,l=new Uint8Array(s);i!==o;){for(var u=t[i],d=0,f=s-1;(0!==u||d>>0,l[f]=u%a>>>0,u=u/a>>>0;if(0!==u)throw new Error("Non-zero carry");r=d,i++}for(var p=s-r;p!==s&&0===l[p];)p++;for(var g=c.repeat(n);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class Us{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class Ls{constructor(e,t,n){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return zs(this,e)}}class js{constructor(e){this.decoders=e}or(e){return zs(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const zs=(e,t)=>new js({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class Ks{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new Us(e,t,n),this.decoder=new Ls(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const qs=({name:e,prefix:t,encode:n,decode:r})=>new Ks(e,t,n,r),Ds=({prefix:e,name:t,alphabet:n})=>{const{encode:r,decode:i}=ks(n,t);return qs({prefix:e,name:t,encode:r,decode:e=>Cs(i(e))})},Bs=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>qs({prefix:t,name:e,encode:e=>((e,t,n)=>{const r="="===t[t.length-1],i=(1<n;)s-=n,o+=t[i&a>>s];if(s&&(o+=t[i&a<((e,t,n,r)=>{const i={};for(let e=0;e=8&&(a-=8,s[l++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(t,r,n,e)}),Ws=qs({prefix:"\0",name:"identity",encode:e=>(e=>(new TextDecoder).decode(e))(e),decode:e=>(e=>(new TextEncoder).encode(e))(e)}),Fs=Bs({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),Vs=Bs({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),Hs=Ds({prefix:"9",name:"base10",alphabet:"0123456789"}),Gs=Bs({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Js=Bs({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),Zs=Bs({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ys=Bs({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Qs=Bs({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Xs=Bs({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),_s=Bs({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),$s=Bs({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),ea=Bs({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ta=Bs({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),na=Bs({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),ra=Ds({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ia=Ds({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),oa=Ds({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),sa=Ds({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),aa=Bs({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ca=Bs({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),la=Bs({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ha=Bs({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),ua=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),da=ua.reduce(((e,t,n)=>(e[n]=t,e)),[]),fa=ua.reduce(((e,t,n)=>(e[t.codePointAt(0)]=n,e)),[]),pa=qs({prefix:"🚀",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+da[t]),"")},decode:function(e){const t=[];for(const n of e){const e=fa[n.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}});var ga=128,ya=-128,ba=Math.pow(2,31),ma=Math.pow(2,7),va=Math.pow(2,14),wa=Math.pow(2,21),Ea=Math.pow(2,28),Sa=Math.pow(2,35),Ia=Math.pow(2,42),Ra=Math.pow(2,49),Aa=Math.pow(2,56),xa=Math.pow(2,63);const Ma=function e(t,n,r){n=n||[];for(var i=r=r||0;t>=ba;)n[r++]=255&t|ga,t/=128;for(;t&ya;)n[r++]=255&t|ga,t>>>=7;return n[r]=0|t,e.bytes=r-i+1,n},Ta=function(e){return e(Ma(e,t,n),t),Pa=e=>Ta(e),Na=(e,t)=>{const n=t.byteLength,r=Pa(e),i=r+Pa(n),o=new Uint8Array(i+n);return Oa(e,o,0),Oa(n,o,r),o.set(t,i),new ka(e,n,t,o)};class ka{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}}const Ca=({name:e,code:t,encode:n})=>new Ua(e,t,n);class Ua{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?Na(this.code,t):t.then((e=>Na(this.code,e)))}throw Error("Unknown type, must be binary type")}}const La=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),ja=Ca({name:"sha2-256",code:18,encode:La("SHA-256")}),za=Ca({name:"sha2-512",code:19,encode:La("SHA-512")}),Ka=Cs,qa={code:0,name:"identity",encode:Ka,digest:e=>Na(0,Ka(e))},Da="raw",Ba=85,Wa=e=>Cs(e),Fa=e=>Cs(e),Va=new TextEncoder,Ha=new TextDecoder,Ga="json",Ja=512,Za=e=>Va.encode(JSON.stringify(e)),Ya=e=>JSON.parse(Ha.decode(e));n(5108),Symbol.toStringTag,Symbol.for("nodejs.util.inspect.custom"),Symbol.for("@ipld/js-cid/CID");const Qa={...e,...t,...r,...i,...o,...s,...a,...c,...l,...h};function Xa(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}const _a=Xa("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),$a=Xa("ascii","a",(e=>{let t="a";for(let n=0;n{const t=Ps((e=e.substring(1)).length);for(let n=0;n"u")throw new Error("missing sender public key");if(typeof e?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Kc(e){return 1===e.type&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}var qc=Object.defineProperty,Dc=Object.getOwnPropertySymbols,Bc=Object.prototype.hasOwnProperty,Wc=Object.prototype.propertyIsEnumerable,Fc=(e,t,n)=>t in e?qc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Vc=(e,t)=>{for(var n in t||(t={}))Bc.call(t,n)&&Fc(e,n,t[n]);if(Dc)for(var n of Dc(t))Wc.call(t,n)&&Fc(e,n,t[n]);return e};const Hc="ReactNative",Gc={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Jc="js";function Zc(){return typeof Mc<"u"&&typeof Mc.versions<"u"&&typeof Mc.versions.node<"u"}function Yc(){return!(0,Ic.getDocument)()&&!!(0,Ic.getNavigator)()&&navigator.product===Hc}function Qc(){return!Zc()&&!!(0,Ic.getNavigator)()}function Xc(e,t,n){const r=function(){const e=t?Sc(t):"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product?new bc:"undefined"!=typeof navigator?Sc(navigator.userAgent):void 0!==uc&&uc.version?new pc(uc.version.slice(1)):null;var t;if(null===e)return"unknown";const n=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[n,e.name,e.version].join("-"):[n,e.version].join("-")}(),i=function(){var e;const t=Yc()?Gc.reactNative:Zc()?Gc.node:Qc()?Gc.browser:Gc.unknown;return t===Gc.browser?[t,(null==(e=(0,Ic.getLocation)())?void 0:e.host)||"unknown"].join(":"):t}();return[[e,t].join("-"),[Jc,n].join("-"),r,i].join("/")}function _c(e,t){return e.filter((e=>t.includes(e))).length===e.length}function $c(e){return Object.fromEntries(e.entries())}function el(e){return new Map(Object.entries(e))}function tl(e=ws.FIVE_MINUTES,t){const n=(0,ws.toMiliseconds)(e||ws.FIVE_MINUTES);let r,i,o;return{resolve:e=>{o&&r&&(clearTimeout(o),r(e))},reject:e=>{o&&i&&(clearTimeout(o),i(e))},done:()=>new Promise(((e,s)=>{o=setTimeout((()=>{s(new Error(t))}),n),r=e,i=s}))}}function nl(e,t,n){return new Promise((async(r,i)=>{const o=setTimeout((()=>i(new Error(n))),t);try{r(await e)}catch(e){i(e)}clearTimeout(o)}))}function rl(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw new Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw new Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw new Error(`Unknown expirer target type: ${e}`)}function il(e){const[t,n]=e.split(":"),r={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof n)r.topic=n;else{if("id"!==t||!Number.isInteger(Number(n)))throw new Error(`Invalid target, expected id:number or topic:string, got ${t}:${n}`);r.id=Number(n)}return r}function ol(e,t){return(0,ws.fromMiliseconds)((t||Date.now())+(0,ws.toMiliseconds)(e))}function sl(e){return Date.now()>=(0,ws.toMiliseconds)(e)}function al(e,t){return`${e}${t?`:${t}`:""}`}function cl(e){return e?.relay||{protocol:"irn"}}function ll(e){const t=xc[e];if(typeof t>"u")throw new Error(`Relay Protocol not supported: ${e}`);return t}var hl=Object.defineProperty,ul=Object.getOwnPropertySymbols,dl=Object.prototype.hasOwnProperty,fl=Object.prototype.propertyIsEnumerable,pl=(e,t,n)=>t in e?hl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function gl(e,t="-"){const n={},r="relay"+t;return Object.keys(e).forEach((t=>{if(t.startsWith(r)){const i=t.replace(r,""),o=e[t];n[i]=o}})),n}function yl(e){return e.startsWith("//")?e.substring(2):e}function bl(e){const t=[];return e.forEach((e=>{const[n,r]=e.split(":");t.push(`${n}:${r}`)})),t}Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;const ml={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},vl={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function wl(e,t){const{message:n,code:r}=vl[e];return{message:t?`${n} ${t}`:n,code:r}}function El(e,t){const{message:n,code:r}=ml[e];return{message:t?`${n} ${t}`:n,code:r}}function Sl(e,t){return!!Array.isArray(e)&&(!(typeof t<"u"&&e.length)||e.every(t))}function Il(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function Rl(e){return typeof e>"u"}function Al(e,t){return!(!t||!Rl(e))||"string"==typeof e&&Boolean(e.trim().length)}function xl(e,t){return!(!t||!Rl(e))||"number"==typeof e&&!isNaN(e)}function Ml(e){return!(!Al(e,!1)||!e.includes(":"))&&2===e.split(":").length}function Tl(e){let t=!0;return Sl(e)?e.length&&(t=e.every((e=>Al(e,!1)))):t=!1,t}function Ol(e,t){let n=null;return Object.values(e).forEach((e=>{if(n)return;const r=function(e,t){let n=null;return Tl(e?.methods)?Tl(e?.events)||(n=El("UNSUPPORTED_EVENTS",`${t}, events should be an array of strings or empty array for no events`)):n=El("UNSUPPORTED_METHODS",`${t}, methods should be an array of strings or empty array for no methods`),n}(e,`${t}, namespace`);r&&(n=r)})),n}function Pl(e,t){let n=null;if(e&&Il(e)){const r=Ol(e,t);r&&(n=r);const i=function(e,t){let n=null;return Object.values(e).forEach((e=>{if(n)return;const r=function(e,t){let n=null;return Sl(e)?e.forEach((e=>{n||function(e){if(Al(e,!1)&&e.includes(":")){const t=e.split(":");if(3===t.length){const e=t[0]+":"+t[1];return!!t[2]&&Ml(e)}}return!1}(e)||(n=El("UNSUPPORTED_ACCOUNTS",`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))})):n=El("UNSUPPORTED_ACCOUNTS",`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}(e?.accounts,`${t} namespace`);r&&(n=r)})),n}(e,t);i&&(n=i)}else n=wl("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return n}function Nl(e){return Al(e.protocol,!0)}function kl(e){return typeof e<"u"&&null!==typeof e}function Cl(e,t){return!(!Ml(t)||!function(e){const t=[];return Object.values(e).forEach((e=>{t.push(...bl(e.accounts))})),t}(e).includes(t))}function Ul(e,t,n){let r=null;const i=function(e){const t={};return Object.keys(e).forEach((n=>{var r;n.includes(":")?t[n]=e[n]:null==(r=e[n].chains)||r.forEach((r=>{t[r]={methods:e[n].methods,events:e[n].events}}))})),t}(e),o=function(e){const t={};return Object.keys(e).forEach((n=>{if(n.includes(":"))t[n]=e[n];else{const r=bl(e[n].accounts);r?.forEach((r=>{t[r]={accounts:e[n].accounts.filter((e=>e.includes(`${r}:`))),methods:e[n].methods,events:e[n].events}}))}})),t}(t),s=Object.keys(i),a=Object.keys(o),c=Ll(Object.keys(e)),l=Ll(Object.keys(t)),h=c.filter((e=>!l.includes(e)));return h.length&&(r=wl("NON_CONFORMING_NAMESPACES",`${n} namespaces keys don't satisfy requiredNamespaces.\n Required: ${h.toString()}\n Received: ${Object.keys(t).toString()}`)),_c(s,a)||(r=wl("NON_CONFORMING_NAMESPACES",`${n} namespaces chains don't satisfy required namespaces.\n Required: ${s.toString()}\n Approved: ${a.toString()}`)),Object.keys(t).forEach((e=>{if(!e.includes(":")||r)return;const i=bl(t[e].accounts);i.includes(e)||(r=wl("NON_CONFORMING_NAMESPACES",`${n} namespaces accounts don't satisfy namespace accounts for ${e}\n Required: ${e}\n Approved: ${i.toString()}`))})),s.forEach((e=>{r||(_c(i[e].methods,o[e].methods)?_c(i[e].events,o[e].events)||(r=wl("NON_CONFORMING_NAMESPACES",`${n} namespaces events don't satisfy namespace events for ${e}`)):r=wl("NON_CONFORMING_NAMESPACES",`${n} namespaces methods don't satisfy namespace methods for ${e}`))})),r}function Ll(e){return[...new Set(e.map((e=>e.includes(":")?e.split(":")[0]:e)))]}const jl="INTERNAL_ERROR",zl="SERVER_ERROR",Kl=[-32700,-32600,-32601,-32602,-32603],ql={PARSE_ERROR:{code:-32700,message:"Parse error"},INVALID_REQUEST:{code:-32600,message:"Invalid Request"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"},INVALID_PARAMS:{code:-32602,message:"Invalid params"},[jl]:{code:-32603,message:"Internal error"},[zl]:{code:-32e3,message:"Server error"}},Dl=zl;function Bl(e){return Object.keys(ql).includes(e)?ql[e]:ql[Dl]}var Wl=n(1468);function Fl(e=3){return Date.now()*Math.pow(10,e)+Math.floor(Math.random()*Math.pow(10,e))}function Vl(e=6){return BigInt(Fl(e))}function Hl(e,t,n){return{id:n||Fl(),jsonrpc:"2.0",method:e,params:t}}function Gl(e,t){return{id:e,jsonrpc:"2.0",result:t}}function Jl(e,t,n){return{id:e,jsonrpc:"2.0",error:Zl(t,n)}}function Zl(e,t){return void 0===e?Bl(jl):("string"==typeof e&&(e=Object.assign(Object.assign({},Bl(zl)),{message:e})),void 0!==t&&(e.data=t),n=e.code,Kl.includes(n)&&(e=function(e){return Object.values(ql).find((t=>t.code===e))||ql[Dl]}(e.code)),e);var n}class Yl{}class Ql extends Yl{constructor(){super()}}class Xl extends Ql{constructor(e){super()}}function _l(e){return function(e,t){const n=function(e){const t=e.match(new RegExp(/^\w+:/,"gi"));if(t&&t.length)return t[0]}(e);return void 0!==n&&new RegExp(t).test(n)}(e,"^wss?:")}function $l(e){return new RegExp("wss?://localhost(:d{2,5})?").test(e)}function eh(e){return"object"==typeof e&&"id"in e&&"jsonrpc"in e&&"2.0"===e.jsonrpc}function th(e){return eh(e)&&"method"in e}function nh(e){return eh(e)&&(rh(e)||ih(e))}function rh(e){return"result"in e}function ih(e){return"error"in e}class oh extends Xl{constructor(e){super(e),this.events=new es.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async request(e,t){return this.requestStrict(Hl(e.method,e.params||[],e.id||Vl().toString()),t)}async requestStrict(e,t){return new Promise((async(n,r)=>{if(!this.connection.connected)try{await this.open()}catch(e){r(e)}this.events.on(`${e.id}`,(e=>{ih(e)?r(e.error):n(e.result)}));try{await this.connection.send(e,t)}catch(e){r(e)}}))}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),nh(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&3e3===e.code&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),"string"==typeof e&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",(e=>this.onPayload(e))),this.connection.on("close",(e=>this.onClose(e))),this.connection.on("error",(e=>this.events.emit("error",e))),this.connection.on("register_error",(e=>this.onClose())),this.hasRegisteredEventListeners=!0)}}const sh=void 0!==n.g&&void 0!==n.g.WebSocket?n.g.WebSocket:"undefined"!=typeof window&&void 0!==window.WebSocket?window.WebSocket:n(7026);var ah=n(2307),ch=n.n(ah),lh=n(4155),hh=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r>>0,s=new Uint8Array(o);e[t];){var h=n[e.charCodeAt(t)];if(255===h)return;for(var u=0,d=o-1;(0!==h||u>>0,s[d]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");i=u,t++}if(" "!==e[t]){for(var f=o-i;f!==o&&0===s[f];)f++;for(var p=new Uint8Array(r+(o-f)),g=r;f!==o;)p[g++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var n=0,r=0,i=0,o=t.length;i!==o&&0===t[i];)i++,n++;for(var s=(o-i)*h+1>>>0,l=new Uint8Array(s);i!==o;){for(var u=t[i],d=0,f=s-1;(0!==u||d>>0,l[f]=u%a>>>0,u=u/a>>>0;if(0!==u)throw new Error("Non-zero carry");r=d,i++}for(var p=s-r;p!==s&&0===l[p];)p++;for(var g=c.repeat(n);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};class dh{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class fh{constructor(e,t,n){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return gh(this,e)}}class ph{constructor(e){this.decoders=e}or(e){return gh(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const gh=(e,t)=>new ph({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class yh{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new dh(e,t,n),this.decoder=new fh(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const bh=({name:e,prefix:t,encode:n,decode:r})=>new yh(e,t,n,r),mh=({prefix:e,name:t,alphabet:n})=>{const{encode:r,decode:i}=hh(n,t);return bh({prefix:e,name:t,encode:r,decode:e=>uh(i(e))})},vh=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>bh({prefix:t,name:e,encode:e=>((e,t,n)=>{const r="="===t[t.length-1],i=(1<n;)s-=n,o+=t[i&a>>s];if(s&&(o+=t[i&a<((e,t,n,r)=>{const i={};for(let e=0;e=8&&(a-=8,s[l++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(t,r,n,e)}),wh=bh({prefix:"\0",name:"identity",encode:e=>(e=>(new TextDecoder).decode(e))(e),decode:e=>(e=>(new TextEncoder).encode(e))(e)});var Eh=Object.freeze({__proto__:null,identity:wh});const Sh=vh({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ih=Object.freeze({__proto__:null,base2:Sh});const Rh=vh({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ah=Object.freeze({__proto__:null,base8:Rh});const xh=mh({prefix:"9",name:"base10",alphabet:"0123456789"});var Mh=Object.freeze({__proto__:null,base10:xh});const Th=vh({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Oh=vh({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ph=Object.freeze({__proto__:null,base16:Th,base16upper:Oh});const Nh=vh({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),kh=vh({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ch=vh({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Uh=vh({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Lh=vh({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),jh=vh({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),zh=vh({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Kh=vh({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),qh=vh({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Dh=Object.freeze({__proto__:null,base32:Nh,base32upper:kh,base32pad:Ch,base32padupper:Uh,base32hex:Lh,base32hexupper:jh,base32hexpad:zh,base32hexpadupper:Kh,base32z:qh});const Bh=mh({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Wh=mh({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Fh=Object.freeze({__proto__:null,base36:Bh,base36upper:Wh});const Vh=mh({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Hh=mh({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Gh=Object.freeze({__proto__:null,base58btc:Vh,base58flickr:Hh});const Jh=vh({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Zh=vh({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Yh=vh({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Qh=vh({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Xh=Object.freeze({__proto__:null,base64:Jh,base64pad:Zh,base64url:Yh,base64urlpad:Qh});const _h=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),$h=_h.reduce(((e,t,n)=>(e[n]=t,e)),[]),eu=_h.reduce(((e,t,n)=>(e[t.codePointAt(0)]=n,e)),[]),tu=bh({prefix:"🚀",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+$h[t]),"")},decode:function(e){const t=[];for(const n of e){const e=eu[n.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}});var nu=Object.freeze({__proto__:null,base256emoji:tu}),ru=128,iu=-128,ou=Math.pow(2,31),su=Math.pow(2,7),au=Math.pow(2,14),cu=Math.pow(2,21),lu=Math.pow(2,28),hu=Math.pow(2,35),uu=Math.pow(2,42),du=Math.pow(2,49),fu=Math.pow(2,56),pu=Math.pow(2,63),gu=function e(t,n,r){n=n||[];for(var i=r=r||0;t>=ou;)n[r++]=255&t|ru,t/=128;for(;t&iu;)n[r++]=255&t|ru,t>>>=7;return n[r]=0|t,e.bytes=r-i+1,n},yu=function(e){return e(gu(e,t,n),t),mu=e=>yu(e),vu=(e,t)=>{const n=t.byteLength,r=mu(e),i=r+mu(n),o=new Uint8Array(i+n);return bu(e,o,0),bu(n,o,r),o.set(t,i),new wu(e,n,t,o)};class wu{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}}const Eu=({name:e,code:t,encode:n})=>new Su(e,t,n);class Su{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?vu(this.code,t):t.then((e=>vu(this.code,e)))}throw Error("Unknown type, must be binary type")}}const Iu=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Ru=Eu({name:"sha2-256",code:18,encode:Iu("SHA-256")}),Au=Eu({name:"sha2-512",code:19,encode:Iu("SHA-512")});Object.freeze({__proto__:null,sha256:Ru,sha512:Au});const xu=uh,Mu={code:0,name:"identity",encode:xu,digest:e=>vu(0,xu(e))};Object.freeze({__proto__:null,identity:Mu}),new TextEncoder,new TextDecoder;const Tu={...Eh,...Ih,...Ah,...Mh,...Ph,...Dh,...Fh,...Gh,...Xh,...nu};function Ou(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Pu(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}const Nu=Pu("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),ku=Pu("ascii","a",(e=>{let t="a";for(let n=0;n{const t=function(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?Ou(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}((e=e.substring(1)).length);for(let n=0;n{if(!this.initialized){const e=await this.getKeyChain();typeof e<"u"&&(this.keychain=e),this.initialized=!0}},this.has=e=>(this.isInitialized(),this.keychain.has(e)),this.set=async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()},this.get=e=>{this.isInitialized();const t=this.keychain.get(e);if(typeof t>"u"){const{message:t}=wl("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t},this.del=async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()},this.core=e,this.logger=(0,is.generateChildLogger)(t,this.name)}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,$c(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?el(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class hd{constructor(e,t,n){this.core=e,this.logger=t,this.name="crypto",this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=e=>(this.isInitialized(),this.keychain.has(e)),this.getClientId=async()=>(this.isInitialized(),ic(sc(await this.getClientSeed()).publicKey)),this.generateKeyPair=()=>{this.isInitialized();const e=function(){const e=hc.generateKeyPair();return{privateKey:tc(e.secretKey,Pc),publicKey:tc(e.publicKey,Pc)}}();return this.setPrivateKey(e.publicKey,e.privateKey)},this.signJWT=async e=>{this.isInitialized();const t=sc(await this.getClientSeed()),n=Cc(),r=Ku;return await async function(e,t,n,r,i=(0,ws.fromMiliseconds)(Date.now())){const o={alg:"EdDSA",typ:"JWT"},s={iss:ic(r.publicKey),sub:e,aud:t,iat:i,exp:i+n},a=nc([rc((c={header:o,payload:s}).header),rc(c.payload)].join("."),"utf8");var c;return function(e){return[rc(e.header),rc(e.payload),oc(e.signature)].join(".")}({header:o,payload:s,signature:k.Xx(r.secretKey,a)})}(n,e,r,t)},this.generateSharedKey=(e,t,n)=>{this.isInitialized();const r=function(e,t){const n=hc.sharedKey(nc(e,Pc),nc(t,Pc));return tc(new cc.t(lc.mE,n).expand(32),Pc)}(this.getPrivateKey(e),t);return this.setSymKey(r,n)},this.setSymKey=async(e,t)=>{this.isInitialized();const n=t||function(e){return tc((0,lc.vp)(nc(e,Pc)),Pc)}(e);return await this.keychain.set(n,e),n},this.deleteKeyPair=async e=>{this.isInitialized(),await this.keychain.del(e)},this.deleteSymKey=async e=>{this.isInitialized(),await this.keychain.del(e)},this.encode=async(e,t,n)=>{this.isInitialized();const r=zc(n),i=vs(t);if(Kc(r)){const t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}const o=this.getSymKey(e),{type:s,senderPublicKey:a}=r;return function(e){const t=function(e){return nc(`${e}`,Oc)}(typeof e.type<"u"?e.type:0);if(1===Lc(t)&&typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const n=typeof e.senderPublicKey<"u"?nc(e.senderPublicKey,Pc):void 0,r=typeof e.iv<"u"?nc(e.iv,Pc):(0,de.randomBytes)(12);return function(e){if(1===Lc(e.type)){if(typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return tc(Ns([e.type,e.senderPublicKey,e.iv,e.sealed]),Nc)}return tc(Ns([e.type,e.iv,e.sealed]),Nc)}({type:t,sealed:new ac.OK(nc(e.symKey,Pc)).seal(r,nc(e.message,kc)),iv:r,senderPublicKey:n})}({type:s,symKey:o,message:i,senderPublicKey:a})},this.decode=async(e,t,n)=>{this.isInitialized();const r=function(e,t){const n=jc(e);return zc({type:Lc(n.type),senderPublicKey:typeof n.senderPublicKey<"u"?tc(n.senderPublicKey,Pc):void 0,receiverPublicKey:t?.receiverPublicKey})}(t,n);if(Kc(r)){const t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}const i=function(e){const t=new ac.OK(nc(e.symKey,Pc)),{sealed:n,iv:r}=jc(e.encoded),i=t.open(r,n);if(null===i)throw new Error("Failed to decrypt");return tc(i,kc)}({symKey:this.getSymKey(e),encoded:t});return ms(i)},this.getPayloadType=e=>Lc(jc(e).type),this.getPayloadSenderPublicKey=e=>{const t=jc(e);return t.senderPublicKey?tc(t.senderPublicKey,Pc):void 0},this.core=e,this.logger=(0,is.generateChildLogger)(t,this.name),this.keychain=n||new ld(this.core,this.logger)}get context(){return(0,is.getLoggerContext)(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(zu)}catch{e=Cc(),await this.keychain.set(zu,e)}return function(e,t="utf8"){const n=Cu[t];if(!n)throw new Error(`Unsupported encoding "${t}"`);return"utf8"!==t&&"utf-8"!==t||null==globalThis.Buffer||null==globalThis.Buffer.from?n.decoder.decode(`${n.prefix}${e}`):Ou(globalThis.Buffer.from(e,"utf-8"))}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class ud extends cs{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name="messages",this.version="0.3",this.initialized=!1,this.storagePrefix=Lu,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const e=await this.getRelayerMessages();typeof e<"u"&&(this.messages=e),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}},this.set=async(e,t)=>{this.isInitialized();const n=Uc(t);let r=this.messages.get(e);return typeof r>"u"&&(r={}),typeof r[n]<"u"||(r[n]=t,this.messages.set(e,r),await this.persist()),n},this.get=e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t},this.has=(e,t)=>(this.isInitialized(),typeof this.get(e)[Uc(t)]<"u"),this.del=async e=>{this.isInitialized(),this.messages.delete(e),await this.persist()},this.logger=(0,is.generateChildLogger)(e,this.name),this.core=t}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,$c(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?el(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class dd extends ls{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new es.EventEmitter,this.name="publisher",this.queue=new Map,this.publishTimeout=1e4,this.publish=async(e,t,n)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:n}});try{const r=n?.ttl||qu,i=cl(n),o=n?.prompt||!1,s=n?.tag||0,a=n?.id||Vl().toString(),c={topic:e,message:t,opts:{ttl:r,relay:i,prompt:o,tag:s,id:a}};this.queue.set(a,c);try{await await nl(this.rpcPublish(e,t,r,i,o,s,a),this.publishTimeout),this.relayer.events.emit(Ju,c)}catch{return this.logger.debug("Publishing Payload stalled"),void this.relayer.events.emit(Hu)}this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:n}})}catch(e){throw this.logger.debug("Failed to Publish Payload"),this.logger.error(e),e}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.relayer=e,this.logger=(0,is.generateChildLogger)(t,this.name),this.registerEventListeners()}get context(){return(0,is.getLoggerContext)(this.logger)}rpcPublish(e,t,n,r,i,o,s){var a,c,l,h;const u={method:ll(r.protocol).publish,params:{topic:e,message:t,ttl:n,prompt:i,tag:o},id:s};return Rl(null==(a=u.params)?void 0:a.prompt)&&(null==(c=u.params)||delete c.prompt),Rl(null==(l=u.params)?void 0:l.tag)&&(null==(h=u.params)||delete h.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:u}),this.relayer.request(u)}onPublish(e){this.queue.delete(e)}checkQueue(){this.queue.forEach((async e=>{const{topic:t,message:n,opts:r}=e;await this.publish(t,n,r)}))}registerEventListeners(){this.relayer.core.heartbeat.on(rs.HEARTBEAT_EVENTS.pulse,(()=>{this.checkQueue()})),this.relayer.on(Wu,(e=>{this.onPublish(e.id.toString())}))}}class fd{constructor(){this.map=new Map,this.set=(e,t)=>{const n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;const n=this.get(e);if(!this.exists(e,t))return;const r=n.filter((e=>e!==t));r.length?this.map.set(e,r):this.map.delete(e)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var pd=Object.defineProperty,gd=Object.defineProperties,yd=Object.getOwnPropertyDescriptors,bd=Object.getOwnPropertySymbols,md=Object.prototype.hasOwnProperty,vd=Object.prototype.propertyIsEnumerable,wd=(e,t,n)=>t in e?pd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ed=(e,t)=>{for(var n in t||(t={}))md.call(t,n)&&wd(e,n,t[n]);if(bd)for(var n of bd(t))vd.call(t,n)&&wd(e,n,t[n]);return e},Sd=(e,t)=>gd(e,yd(t));class Id extends ds{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new fd,this.events=new es.EventEmitter,this.name="subscription",this.version="0.3",this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=Lu,this.subscribeTimeout=1e4,this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restart(),this.registerEventListeners(),this.onEnable(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{const n=cl(t),r={topic:e,relay:n};this.pending.set(e,r);const i=await this.rpcSubscribe(e,n);return this.onSubscribe(i,r),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}}),i}catch(e){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(e),e}},this.unsubscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),typeof t?.id<"u"?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)},this.isSubscribed=async e=>!!this.topics.includes(e)||await new Promise(((t,n)=>{const r=new ws.Watch;r.start(this.pendingSubscriptionWatchLabel);const i=setInterval((()=>{!this.pending.has(e)&&this.topics.includes(e)&&(clearInterval(i),r.stop(this.pendingSubscriptionWatchLabel),t(!0)),r.elapsed(this.pendingSubscriptionWatchLabel)>=$u&&(clearInterval(i),r.stop(this.pendingSubscriptionWatchLabel),n(new Error("Subscription resolution timeout")))}),this.pollingInterval)})).catch((()=>!1)),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=(0,is.generateChildLogger)(t,this.name),this.clientId=""}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const n=this.topicMap.get(e);await Promise.all(n.map((async n=>await this.unsubscribeById(e,n,t))))}async unsubscribeById(e,t,n){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:n}});try{const r=cl(n);await this.rpcUnsubscribe(e,t,r);const i=El("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(e),e}}async rpcSubscribe(e,t){const n={method:ll(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{await await nl(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(Hu)}return Uc(e+this.clientId)}async rpcBatchSubscribe(e){if(!e.length)return;const t={method:ll(e[0].relay.protocol).batchSubscribe,params:{topics:e.map((e=>e.topic))}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{return await await nl(this.relayer.request(t),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Payload stalled"),this.relayer.events.emit(Hu)}}rpcUnsubscribe(e,t,n){const r={method:ll(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,Sd(Ed({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach((e=>{this.setSubscription(e.id,Ed({},e)),this.pending.delete(e.topic)}))}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.subscriptions.has(e)||(this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t))}addSubscription(e,t){this.subscriptions.set(e,Ed({},t)),this.topicMap.set(t.topic,e),this.events.emit(Qu,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const t=this.subscriptions.get(e);if(!t){const{message:t}=wl("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});const n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit(Xu,Sd(Ed({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit("subscription_sync")}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t"u"||!e.length)return;if(this.subscriptions.size){const{message:e}=wl("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);Sl(t)&&this.onBatchSubscribe(t.map(((t,n)=>Sd(Ed({},e[n]),{id:t}))))}async onConnect(){this.restartInProgress||(await this.restart(),this.onEnable())}onDisconnect(){this.onDisable()}async checkPending(){if(this.relayer.transportExplicitlyClosed)return;const e=[];this.pending.forEach((t=>{e.push(t)})),await this.batchSubscribe(e)}registerEventListeners(){this.relayer.core.heartbeat.on(rs.HEARTBEAT_EVENTS.pulse,(async()=>{await this.checkPending()})),this.relayer.on(Fu,(async()=>{await this.onConnect()})),this.relayer.on(Vu,(()=>{this.onDisconnect()})),this.events.on(Qu,(async e=>{const t=Qu;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})),this.events.on(Xu,(async e=>{const t=Xu;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){this.restartInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.restartInProgress||(clearInterval(t),e())}),this.pollingInterval)}))}}var Rd=Object.defineProperty,Ad=Object.getOwnPropertySymbols,xd=Object.prototype.hasOwnProperty,Md=Object.prototype.propertyIsEnumerable,Td=(e,t,n)=>t in e?Rd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Od extends hs{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new es.EventEmitter,this.name="relayer",this.transportExplicitlyClosed=!1,this.initialized=!1,this.reconnecting=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","socket stalled"],this.request=async e=>{this.logger.debug("Publishing Request Payload");try{return await this.toEstablishConnection(),await this.provider.request(e)}catch(e){throw this.logger.debug("Failed to Publish Request"),this.logger.error(e),e}},this.core=e.core,this.logger=typeof e.logger<"u"&&"string"!=typeof e.logger?(0,is.generateChildLogger)(e.logger,this.name):(0,is.pino)((0,is.getDefaultLoggerOptions)({level:e.logger||"error"})),this.messages=new ud(this.logger,e.core),this.subscriber=new Id(this,this.logger),this.publisher=new dd(this,this.logger),this.relayUrl=e?.relayUrl||Du,this.projectId=e.projectId,this.provider={}}async init(){this.logger.trace("Initialized"),await this.createProvider(),await Promise.all([this.messages.init(),this.transportOpen(),this.subscriber.init()]),this.registerEventListeners(),this.initialized=!0,setTimeout((async()=>{0===this.subscriber.topics.length&&(this.logger.info("No topics subscribted to after init, closing transport"),await this.transportClose(),this.transportExplicitlyClosed=!1)}),1e4)}get context(){return(0,is.getLoggerContext)(this.logger)}get connected(){return this.provider.connection.connected}get connecting(){return this.provider.connection.connecting}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now()})}async subscribe(e,t){this.isInitialized();let n="";return await Promise.all([new Promise((t=>{this.subscriber.once(Qu,(n=>{n.topic===e&&t()}))})),new Promise((async r=>{n=await this.subscriber.subscribe(e,t),r()}))]),n}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportClose(){this.transportExplicitlyClosed=!0,this.connected&&(await this.provider.disconnect(),this.events.emit(Gu))}async transportOpen(e){if(this.transportExplicitlyClosed=!1,!this.reconnecting){this.relayUrl=e||this.relayUrl,this.reconnecting=!0;try{await Promise.all([new Promise((e=>{this.initialized||e(),this.subscriber.once(_u,(()=>{e()}))})),await Promise.race([new Promise((async(e,t)=>{await nl(this.provider.connect(),5e3,"socket stalled").catch((e=>t(e))).then((()=>e())).finally((()=>this.removeListener(Gu,this.rejectTransportOpen)))})),new Promise((e=>this.once(Gu,this.rejectTransportOpen)))])])}catch(e){this.logger.error(e);const t=e;if(!this.isConnectionStalled(t.message))throw e;this.events.emit(Gu)}finally{this.reconnecting=!1}}}async restartTransport(e){this.transportExplicitlyClosed||(this.relayUrl=e||this.relayUrl,this.connected&&await Promise.all([new Promise((e=>{this.provider.once(Zu,(()=>{e()}))})),this.transportClose()]),await this.createProvider(),await this.transportOpen())}isConnectionStalled(e){return this.staleConnectionErrors.some((t=>e.includes(t)))}rejectTransportOpen(){throw new Error("closeTransport called before connection was established")}async createProvider(){const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new oh(new class{constructor(e){if(this.url=e,this.events=new es.EventEmitter,this.registering=!1,!_l(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return void 0!==this.socket}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise(((e,t)=>{void 0!==this.socket?(this.socket.onclose=t=>{this.onClose(t),e()},this.socket.close()):t(new Error("Connection already closed"))}))}async send(e,t){void 0===this.socket&&(this.socket=await this.register());try{this.socket.send(vs(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!_l(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=e||this.events.listenerCount("open")>=e)&&this.events.setMaxListeners(e+1),new Promise(((e,t)=>{this.events.once("register_error",(e=>{this.resetMaxListeners(),t(e)})),this.events.once("open",(()=>{if(this.resetMaxListeners(),void 0===this.socket)return t(new Error("WebSocket connection is missing or invalid"));e(this.socket)}))}))}return this.url=e,this.registering=!0,new Promise(((t,n)=>{const r=(0,Wl.isReactNative)()?void 0:{rejectUnauthorized:!$l(e)},i=new sh(e,[],r);"undefined"!=typeof window?i.onerror=e=>{const t=e;n(this.emitError(t.error))}:i.on("error",(e=>{n(this.emitError(e))})),i.onopen=()=>{this.onOpen(i),t(i)}}))}onOpen(e){e.onmessage=e=>this.onPayload(e),e.onclose=e=>this.onClose(e),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(void 0===e.data)return;const t="string"==typeof e.data?ms(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const n=this.parseError(t),r=Jl(e,n.message||n.toString());this.events.emit("payload",r)}parseError(e,t=this.url){return function(e,t,n){return e.message.includes("getaddrinfo ENOTFOUND")||e.message.includes("connect ECONNREFUSED")?new Error(`Unavailable WS RPC url at ${t}`):e}(e,t)}resetMaxListeners(){this.events.getMaxListeners()>10&&this.events.setMaxListeners(10)}emitError(e){const t=this.parseError(new Error((null==e?void 0:e.message)||`WebSocket connection failed for URL: ${this.url}`));return this.events.emit("register_error",t),t}}(function({protocol:e,version:t,relayUrl:n,sdkVersion:r,auth:i,projectId:o,useOnCloseEvent:s}){const a=n.split("?"),c={auth:i,ua:Xc(e,t,r),projectId:o,useOnCloseEvent:s||void 0},l=function(e,t){let n=Ac.parse(e);return n=Vc(Vc({},n),t),Ac.stringify(n)}(a[1]||"",c);return a[0]+"?"+l}({sdkVersion:"y",protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:n}=e;await this.messages.set(t,n)}async shouldIgnoreMessageEvent(e){const{topic:t,message:n}=e;return!await this.subscriber.isSubscribed(t)||this.messages.has(t,n)}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),th(e)){if(!e.method.endsWith("_subscription"))return;const t=e.params,{topic:n,message:r,publishedAt:i}=t.data,o={topic:n,message:r,publishedAt:i};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(((e,t)=>{for(var n in t||(t={}))xd.call(t,n)&&Td(e,n,t[n]);if(Ad)for(var n of Ad(t))Md.call(t,n)&&Td(e,n,t[n]);return e})({type:"event",event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else nh(e)&&this.events.emit(Wu,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(Bu,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=Gl(e.id,!0);await this.provider.connection.send(t)}registerProviderListeners(){this.provider.on("payload",(e=>this.onProviderPayload(e))),this.provider.on("connect",(()=>{this.events.emit(Fu)})),this.provider.on(Zu,(()=>{this.onProviderDisconnect()})),this.provider.on("error",(e=>{this.logger.error(e),this.events.emit("relayer_error",e)}))}registerEventListeners(){this.events.on(Hu,(async()=>{await this.restartTransport()}))}onProviderDisconnect(){this.events.emit(Vu),this.attemptToReconnect()}attemptToReconnect(){this.transportExplicitlyClosed||setTimeout((async()=>{await this.restartTransport()}),(0,ws.toMiliseconds)(Yu))}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(!this.connected){if(this.connecting)return await new Promise((e=>{const t=setInterval((()=>{this.connected&&(clearInterval(t),e())}),this.connectionStatusPollingInterval)}));await this.restartTransport()}}}var Pd=Object.defineProperty,Nd=Object.getOwnPropertySymbols,kd=Object.prototype.hasOwnProperty,Cd=Object.prototype.propertyIsEnumerable,Ud=(e,t,n)=>t in e?Pd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ld=(e,t)=>{for(var n in t||(t={}))kd.call(t,n)&&Ud(e,n,t[n]);if(Nd)for(var n of Nd(t))Cd.call(t,n)&&Ud(e,n,t[n]);return e};class jd extends us{constructor(e,t,n,r=Lu,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,this.map=new Map,this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=Lu,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>{this.getKey&&null!==e&&!Rl(e)?this.map.set(this.getKey(e),e):function(e){var t;return null==(t=e?.proposer)?void 0:t.publicKey}(e)?this.map.set(e.id,e):function(e){return e?.topic}(e)&&this.map.set(e.topic,e)})),this.cached=[],this.initialized=!0)},this.set=async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())},this.get=e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e)),this.getAll=e=>(this.isInitialized(),e?this.values.filter((t=>Object.keys(e).every((n=>ch()(t[n],e[n]))))):this.values),this.update=async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});const n=Ld(Ld({},this.getData(e)),t);this.map.set(e,n),await this.persist()},this.delete=async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),await this.persist())},this.logger=(0,is.generateChildLogger)(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){const{message:t}=wl("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:e}=wl("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class zd{constructor(e,t){this.core=e,this.logger=t,this.name="pairing",this.version="0.3",this.events=new(ts()),this.initialized=!1,this.storagePrefix=Lu,this.ignoredPayloadTypes=[1],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]},this.create=async()=>{this.isInitialized();const e=Cc(),t=await this.core.crypto.setSymKey(e),n=ol(ws.FIVE_MINUTES),r={protocol:"irn"},i={topic:t,expiry:n,relay:r,active:!1},o=function(e){return`${e.protocol}:${e.topic}@${e.version}?`+Ac.stringify(((e,t)=>{for(var n in t||(t={}))dl.call(t,n)&&pl(e,n,t[n]);if(ul)for(var n of ul(t))fl.call(t,n)&&pl(e,n,t[n]);return e})({symKey:e.symKey},function(e,t="-"){const n={};return Object.keys(e).forEach((r=>{const i="relay"+t+r;e[r]&&(n[i]=e[r])})),n}(e.relay)))}({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:e,relay:r});return await this.pairings.set(t,i),await this.core.relayer.subscribe(t),this.core.expirer.set(t,n),{topic:t,uri:o}},this.pair=async e=>{this.isInitialized(),this.isValidPair(e);const{topic:t,symKey:n,relay:r}=function(e){const t=e.indexOf(":"),n=-1!==e.indexOf("?")?e.indexOf("?"):void 0,r=e.substring(0,t),i=e.substring(t+1,n).split("@"),o=typeof n<"u"?e.substring(n):"",s=Ac.parse(o);return{protocol:r,topic:yl(i[0]),version:parseInt(i[1],10),symKey:s.symKey,relay:gl(s)}}(e.uri);if(this.pairings.keys.includes(t))throw new Error(`Pairing already exists: ${t}`);if(this.core.crypto.hasKeys(t))throw new Error(`Keychain already exists: ${t}`);const i=ol(ws.FIVE_MINUTES),o={topic:t,relay:r,expiry:i,active:!1};return await this.pairings.set(t,o),await this.core.crypto.setSymKey(n,t),await this.core.relayer.subscribe(t,{relay:r}),this.core.expirer.set(t,i),e.activatePairing&&await this.activate({topic:t}),o},this.activate=async({topic:e})=>{this.isInitialized();const t=ol(ws.THIRTY_DAYS);await this.pairings.update(e,{active:!0,expiry:t}),this.core.expirer.set(e,t)},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.pairings.keys.includes(t)){const e=await this.sendRequest(t,"wc_pairingPing",{}),{done:n,resolve:r,reject:i}=tl();this.events.once(al("pairing_ping",e),(({error:e})=>{e?i(e):r()})),await n()}},this.updateExpiry=async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})},this.updateMetadata=async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",El("USER_DISCONNECTED")),await this.deletePairing(t))},this.sendRequest=async(e,t,n)=>{const r=Hl(t,n),i=await this.core.crypto.encode(e,r),o=ed[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,o),r.id},this.sendResult=async(e,t,n)=>{const r=Gl(e,n),i=await this.core.crypto.encode(t,r),o=await this.core.history.get(t,e),s=ed[o.request.method].res;await this.core.relayer.publish(t,i,s),await this.core.history.resolve(r)},this.sendError=async(e,t,n)=>{const r=Jl(e,n),i=await this.core.crypto.encode(t,r),o=await this.core.history.get(t,e),s=ed[o.request.method]?ed[o.request.method].res:ed.unregistered_method.res;await this.core.relayer.publish(t,i,s),await this.core.history.resolve(r)},this.deletePairing=async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,El("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])},this.cleanup=async()=>{const e=this.pairings.getAll().filter((e=>sl(e.expiry)));await Promise.all(e.map((e=>this.deletePairing(e.topic))))},this.onRelayEventRequest=e=>{const{topic:t,payload:n}=e,r=n.method;if(this.pairings.keys.includes(t))switch(r){case"wc_pairingPing":return this.onPairingPingRequest(t,n);case"wc_pairingDelete":return this.onPairingDeleteRequest(t,n);default:return this.onUnknownRpcMethodRequest(t,n)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;if(this.pairings.keys.includes(t))return"wc_pairingPing"===r?this.onPairingPingResponse(t,n):this.onUnknownRpcMethodResponse(r)},this.onPairingPingRequest=async(e,t)=>{const{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit("pairing_ping",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onPairingPingResponse=(e,t)=>{const{id:n}=t;setTimeout((()=>{rh(t)?this.events.emit(al("pairing_ping",n),{}):ih(t)&&this.events.emit(al("pairing_ping",n),{error:t.error})}),500)},this.onPairingDeleteRequest=async(e,t)=>{const{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit("pairing_delete",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onUnknownRpcMethodRequest=async(e,t)=>{const{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;const t=El("WC_METHOD_UNSUPPORTED",r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onUnknownRpcMethodResponse=e=>{this.registeredMethods.includes(e)||this.logger.error(El("WC_METHOD_UNSUPPORTED",e))},this.isValidPair=e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`pair() params: ${e}`);throw new Error(t)}if(!function(e){if(Al(e,!1))try{return typeof new URL(e)<"u"}catch{return!1}return!1}(e.uri)){const{message:t}=wl("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw new Error(t)}},this.isValidPing=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidDisconnect=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidPairingTopic=async e=>{if(!Al(e,!1)){const{message:t}=wl("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.pairings.keys.includes(e)){const{message:t}=wl("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(sl(this.pairings.get(e).expiry)){await this.deletePairing(e);const{message:t}=wl("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}},this.core=e,this.logger=(0,is.generateChildLogger)(t,this.name),this.pairings=new jd(this.core,this.logger,this.name,this.storagePrefix)}get context(){return(0,is.getLoggerContext)(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(Bu,(async e=>{const{topic:t,message:n}=e;if(this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))return;const r=await this.core.crypto.decode(t,n);th(r)?(this.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):nh(r)&&(await this.core.history.resolve(r),this.onRelayEventResponse({topic:t,payload:r}))}))}registerExpirerEvents(){this.core.expirer.on(sd,(async e=>{const{topic:t}=il(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit("pairing_expire",{topic:t}))}))}}class Kd extends as{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new es.EventEmitter,this.name="history",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=Lu,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.records.set(e.id,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(e,t,n)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:n}),this.records.has(t.id))return;const r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n};this.records.set(r.id,r),this.events.emit(td,r)},this.resolve=async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;const t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=ih(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.events.emit(nd,t))},this.get=async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t)),this.delete=(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach((n=>{if(n.topic===e){if(typeof t<"u"&&n.id!==t)return;this.records.delete(n.id),this.events.emit(rd,n)}}))},this.exists=async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=(0,is.generateChildLogger)(t,this.name)}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach((t=>{if(typeof t.response<"u")return;const n={topic:t.topic,request:Hl(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)})),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:t}=wl("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit("history_sync")}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:e}=wl("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(td,(e=>{const t=td;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()})),this.events.on(nd,(e=>{const t=nd;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()})),this.events.on(rd,(e=>{const t=rd;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class qd extends fs{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new es.EventEmitter,this.name="expirer",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=Lu,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.expirations.set(e.target,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=e=>{try{const t=this.formatTarget(e);return typeof this.getExpiration(t)<"u"}catch{return!1}},this.set=(e,t)=>{this.isInitialized();const n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(id,{target:n,expiration:r})},this.get=e=>{this.isInitialized();const t=this.formatTarget(e);return this.getExpiration(t)},this.del=e=>{if(this.isInitialized(),this.has(e)){const t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(od,{target:t,expiration:n})}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=(0,is.generateChildLogger)(t,this.name)}get context(){return(0,is.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return function(e){return rl("topic",e)}(e);if("number"==typeof e)return function(e){return rl("id",e)}(e);const{message:t}=wl("UNKNOWN_TYPE","Target type: "+typeof e);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit("expirer_sync")}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:e}=wl("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:t}=wl("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}checkExpiry(e,t){const{expiry:n}=t;(0,ws.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(sd,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach(((e,t)=>this.checkExpiry(t,e)))}registerEventListeners(){this.core.heartbeat.on(rs.HEARTBEAT_EVENTS.pulse,(()=>this.checkExpirations())),this.events.on(id,(e=>{const t=id;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(sd,(e=>{const t=sd;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(od,(e=>{const t=od;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Dd extends ps{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.name=ad,this.initialized=!1,this.init=async e=>{Yc()||!Qc()||(this.verifyUrl=e?.verifyUrl||cd,await this.createIframe())},this.register=async e=>{var t;this.initialized||await this.init(),this.iframe&&(null==(t=this.iframe.contentWindow)||t.postMessage(e.attestationId,this.verifyUrl),this.logger.info(`postMessage sent: ${e.attestationId} ${this.verifyUrl}`))},this.resolve=async e=>{var t;if(this.isDevEnv)return"";this.logger.info(`resolving attestation: ${e.attestationId}`);const n=this.startAbortTimer(ws.FIVE_SECONDS),r=await fetch(`${this.verifyUrl}/attestation/${e.attestationId}`,{signal:this.abortController.signal});return clearTimeout(n),200===r.status?null==(t=await r.json())?void 0:t.origin:""},this.createIframe=async()=>{try{await Promise.race([new Promise(((e,t)=>{if(document.getElementById(ad))return e();const n=document.createElement("iframe");n.setAttribute("id",ad),n.setAttribute("src",`${this.verifyUrl}/${this.projectId}`),n.style.display="none",n.addEventListener("load",(()=>{this.initialized=!0,e()})),n.addEventListener("error",(e=>{t(e)})),document.body.append(n),this.iframe=n})),new Promise((e=>{setTimeout((()=>e("iframe load timeout")),(0,ws.toMiliseconds)(ws.ONE_SECOND/2))}))])}catch(e){this.logger.error(`Verify iframe failed to load: ${this.verifyUrl}`),this.logger.error(e)}},this.logger=(0,is.generateChildLogger)(t,this.name),this.verifyUrl=cd,this.abortController=new AbortController,this.isDevEnv=Zc()&&lh.env.IS_VITEST}get context(){return(0,is.getLoggerContext)(this.logger)}startAbortTimer(e){return setTimeout((()=>this.abortController.abort()),(0,ws.toMiliseconds)(e))}}var Bd=Object.defineProperty,Wd=Object.getOwnPropertySymbols,Fd=Object.prototype.hasOwnProperty,Vd=Object.prototype.propertyIsEnumerable,Hd=(e,t,n)=>t in e?Bd(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Gd=(e,t)=>{for(var n in t||(t={}))Fd.call(t,n)&&Hd(e,n,t[n]);if(Wd)for(var n of Wd(t))Vd.call(t,n)&&Hd(e,n,t[n]);return e};class Jd extends ss{constructor(e){super(e),this.protocol="wc",this.version=2,this.name=Uu,this.events=new es.EventEmitter,this.initialized=!1,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Du;const t=typeof e?.logger<"u"&&"string"!=typeof e?.logger?e.logger:(0,is.pino)((0,is.getDefaultLoggerOptions)({level:e?.logger||"error"}));this.logger=(0,is.generateChildLogger)(t,this.name),this.heartbeat=new rs.HeartBeat,this.crypto=new hd(this,this.logger,e?.keychain),this.history=new Kd(this,this.logger),this.expirer=new qd(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new ns.ZP(Gd(Gd({},ju),e?.storageOptions)),this.relayer=new Od({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new zd(this,this.logger),this.verify=new Dd(this.projectId||"",this.logger)}static async init(e){const t=new Jd(e);return await t.initialize(),t}get context(){return(0,is.getLoggerContext)(this.logger)}async start(){this.initialized||await this.initialize()}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const Zd=Jd,Yd="client",Qd=`wc@2:${Yd}:`,Xd=Yd,_d=ws.SEVEN_DAYS,$d={wc_sessionPropose:{req:{ttl:ws.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:ws.FIVE_MINUTES,prompt:!1,tag:1101}},wc_sessionSettle:{req:{ttl:ws.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:ws.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:ws.ONE_DAY,prompt:!1,tag:1104},res:{ttl:ws.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:ws.ONE_DAY,prompt:!1,tag:1106},res:{ttl:ws.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:ws.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:ws.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:ws.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:ws.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:ws.ONE_DAY,prompt:!1,tag:1112},res:{ttl:ws.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:ws.THIRTY_SECONDS,prompt:!1,tag:1114},res:{ttl:ws.THIRTY_SECONDS,prompt:!1,tag:1115}}},ef={min:ws.FIVE_MINUTES,max:ws.SEVEN_DAYS},tf=["wc_sessionPropose","wc_sessionRequest","wc_authRequest"];var nf=Object.defineProperty,rf=Object.defineProperties,of=Object.getOwnPropertyDescriptors,sf=Object.getOwnPropertySymbols,af=Object.prototype.hasOwnProperty,cf=Object.prototype.propertyIsEnumerable,lf=(e,t,n)=>t in e?nf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hf=(e,t)=>{for(var n in t||(t={}))af.call(t,n)&&lf(e,n,t[n]);if(sf)for(var n of sf(t))cf.call(t,n)&&lf(e,n,t[n]);return e},uf=(e,t)=>rf(e,of(t));class df extends ys{constructor(e){super(e),this.name="engine",this.events=new(ts()),this.initialized=!1,this.ignoredPayloadTypes=[1],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.client.core.pairing.register({methods:Object.keys($d)}),this.initialized=!0)},this.connect=async e=>{this.isInitialized();const t=uf(hf({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:o,relays:s}=t;let a,c=n,l=!1;if(c&&(l=this.client.core.pairing.pairings.get(c).active),!c||!l){const{topic:e,uri:t}=await this.client.core.pairing.create();c=e,a=t}const h=await this.client.core.crypto.generateKeyPair(),u=hf({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:"irn"}],proposer:{publicKey:h,metadata:this.client.metadata}},o&&{sessionProperties:o}),{reject:d,resolve:f,done:p}=tl(ws.FIVE_MINUTES,"Proposal expired");if(this.events.once(al("session_connect"),(async({error:e,session:t})=>{if(e)d(e);else if(t){t.self.publicKey=h;const e=uf(hf({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces});await this.client.session.set(t.topic,e),await this.setExpiry(t.topic,t.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:t.peer.metadata}),f(e)}})),!c){const{message:e}=wl("NO_MATCHING_KEY",`connect() pairing topic: ${c}`);throw new Error(e)}const g=await this.sendRequest(c,"wc_sessionPropose",u),y=ol(ws.FIVE_MINUTES);return await this.setProposal(g,hf({id:g,expiry:y},u)),{uri:a,approval:p}},this.pair=async e=>(this.isInitialized(),await this.client.core.pairing.pair(e)),this.approve=async e=>{this.isInitialized(),await this.isValidApprove(e);const{id:t,relayProtocol:n,namespaces:r,sessionProperties:i}=e,o=this.client.proposal.get(t);let{pairingTopic:s,proposer:a,requiredNamespaces:c,optionalNamespaces:l}=o;s=s||"",Il(c)||(c=function(e,t){const n=Pl(e,"approve()");if(n)throw new Error(n.message);const r={};for(const[t,n]of Object.entries(e))r[t]={methods:n.methods,events:n.events,chains:n.accounts.map((e=>`${e.split(":")[0]}:${e.split(":")[1]}`))};return r}(r));const h=await this.client.core.crypto.generateKeyPair(),u=a.publicKey,d=await this.client.core.crypto.generateSharedKey(h,u);s&&t&&(await this.client.core.pairing.updateMetadata({topic:s,metadata:a.metadata}),await this.sendResult(t,s,{relay:{protocol:n??"irn"},responderPublicKey:h}),await this.client.proposal.delete(t,El("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:s}));const f=hf({relay:{protocol:n??"irn"},namespaces:r,requiredNamespaces:c,optionalNamespaces:l,pairingTopic:s,controller:{publicKey:h,metadata:this.client.metadata},expiry:ol(_d)},i&&{sessionProperties:i});await this.client.core.relayer.subscribe(d),await this.sendRequest(d,"wc_sessionSettle",f);const p=uf(hf({},f),{topic:d,pairingTopic:s,acknowledged:!1,self:f.controller,peer:{publicKey:a.publicKey,metadata:a.metadata},controller:h});return await this.client.session.set(d,p),await this.setExpiry(d,ol(_d)),{topic:d,acknowledged:()=>new Promise((e=>setTimeout((()=>e(this.client.session.get(d))),500)))}},this.reject=async e=>{this.isInitialized(),await this.isValidReject(e);const{id:t,reason:n}=e,{pairingTopic:r}=this.client.proposal.get(t);r&&(await this.sendError(t,r,n),await this.client.proposal.delete(t,El("USER_DISCONNECTED")))},this.update=async e=>{this.isInitialized(),await this.isValidUpdate(e);const{topic:t,namespaces:n}=e,r=await this.sendRequest(t,"wc_sessionUpdate",{namespaces:n}),{done:i,resolve:o,reject:s}=tl();return this.events.once(al("session_update",r),(({error:e})=>{e?s(e):o()})),await this.client.session.update(t,{namespaces:n}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.isValidExtend(e);const{topic:t}=e,n=await this.sendRequest(t,"wc_sessionExtend",{}),{done:r,resolve:i,reject:o}=tl();return this.events.once(al("session_extend",n),(({error:e})=>{e?o(e):i()})),await this.setExpiry(t,ol(_d)),{acknowledged:r}},this.request=async e=>{this.isInitialized(),await this.isValidRequest(e);const{chainId:t,request:n,topic:r,expiry:i}=e,o=await this.sendRequest(r,"wc_sessionRequest",{request:n,chainId:t},i),{done:s,resolve:a,reject:c}=tl(i);return this.events.once(al("session_request",o),(({error:e,result:t})=>{e?c(e):a(t)})),this.client.events.emit("session_request_sent",{topic:r,request:n,chainId:t,id:o}),await s()},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:n}=e,{id:r}=n;rh(n)?await this.sendResult(r,t,n.result):ih(n)&&await this.sendError(r,t,n.error),this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0})},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.client.session.keys.includes(t)){const e=await this.sendRequest(t,"wc_sessionPing",{}),{done:n,resolve:r,reject:i}=tl();this.events.once(al("session_ping",e),(({error:e})=>{e?i(e):r()})),await n()}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.isValidEmit(e);const{topic:t,event:n,chainId:r}=e;await this.sendRequest(t,"wc_sessionEvent",{event:n,chainId:r})},this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.client.session.keys.includes(t)?(await this.sendRequest(t,"wc_sessionDelete",El("USER_DISCONNECTED")),await this.deleteSession(t)):await this.client.core.pairing.disconnect({topic:t})},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter((t=>function(e,t){const{requiredNamespaces:n}=t,r=Object.keys(e.namespaces),i=Object.keys(n);let o=!0;return!!_c(i,r)&&(r.forEach((t=>{const{accounts:r,methods:i,events:s}=e.namespaces[t],a=bl(r),c=n[t];_c(Tc(t,c),a)&&_c(c.methods,i)&&_c(c.events,s)||(o=!1)})),o)}(t,e)))),this.getPendingSessionRequests=()=>(this.isInitialized(),this.client.pendingRequest.getAll()),this.cleanupDuplicatePairings=async e=>{try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter((n=>{var r,i;return(null==(r=n.peerMetadata)?void 0:r.url)&&(null==(i=n.peerMetadata)?void 0:i.url)===e.self.metadata.url&&n.topic!==t.topic}));if(0===n.length)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map((e=>this.client.core.pairing.disconnect({topic:e.topic})))),this.client.logger.info("Duplicate pairings clean up finished")}catch(e){this.client.logger.error(e)}},this.deleteSession=async(e,t)=>{const{self:n}=this.client.session.get(e);await this.client.core.relayer.unsubscribe(e),await Promise.all([this.client.session.delete(e,El("USER_DISCONNECTED")),this.client.core.crypto.deleteKeyPair(n.publicKey),this.client.core.crypto.deleteSymKey(e),t?Promise.resolve():this.client.core.expirer.del(e)])},this.deleteProposal=async(e,t)=>{await Promise.all([this.client.proposal.delete(e,El("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)])},this.deletePendingSessionRequest=async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&await this.client.session.update(e,{expiry:t}),this.client.core.expirer.set(e,t)},this.setProposal=async(e,t)=>{await this.client.proposal.set(e,t),this.client.core.expirer.set(e,t.expiry)},this.setPendingSessionRequest=async e=>{const t=$d.wc_sessionRequest.req.ttl,{id:n,topic:r,params:i}=e;await this.client.pendingRequest.set(n,{id:n,topic:r,params:i}),t&&this.client.core.expirer.set(n,ol(t))},this.sendRequest=async(e,t,n,r)=>{const i=Hl(t,n);if(Qc()&&tf.includes(t)){const e=Uc(JSON.stringify(i));await this.client.core.verify.register({attestationId:e})}const o=await this.client.core.crypto.encode(e,i),s=$d[t].req;return r&&(s.ttl=r),this.client.core.history.set(e,i),this.client.core.relayer.publish(e,o,s),i.id},this.sendResult=async(e,t,n)=>{const r=Gl(e,n),i=await this.client.core.crypto.encode(t,r),o=await this.client.core.history.get(t,e),s=$d[o.request.method].res;this.client.core.relayer.publish(t,i,s),await this.client.core.history.resolve(r)},this.sendError=async(e,t,n)=>{const r=Jl(e,n),i=await this.client.core.crypto.encode(t,r),o=await this.client.core.history.get(t,e),s=$d[o.request.method].res;this.client.core.relayer.publish(t,i,s),await this.client.core.history.resolve(r)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach((t=>{sl(t.expiry)&&e.push(t.topic)})),this.client.proposal.getAll().forEach((e=>{sl(e.expiry)&&t.push(e.id)})),await Promise.all([...e.map((e=>this.deleteSession(e))),...t.map((e=>this.deleteProposal(e)))])},this.onRelayEventRequest=e=>{const{topic:t,payload:n}=e,r=n.method;switch(r){case"wc_sessionPropose":return this.onSessionProposeRequest(t,n);case"wc_sessionSettle":return this.onSessionSettleRequest(t,n);case"wc_sessionUpdate":return this.onSessionUpdateRequest(t,n);case"wc_sessionExtend":return this.onSessionExtendRequest(t,n);case"wc_sessionPing":return this.onSessionPingRequest(t,n);case"wc_sessionDelete":return this.onSessionDeleteRequest(t,n);case"wc_sessionRequest":return this.onSessionRequest(t,n);case"wc_sessionEvent":return this.onSessionEventRequest(t,n);default:return this.client.logger.info(`Unsupported request method ${r}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:n}=e,r=(await this.client.core.history.get(t,n.id)).request.method;switch(r){case"wc_sessionPropose":return this.onSessionProposeResponse(t,n);case"wc_sessionSettle":return this.onSessionSettleResponse(t,n);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,n);case"wc_sessionExtend":return this.onSessionExtendResponse(t,n);case"wc_sessionPing":return this.onSessionPingResponse(t,n);case"wc_sessionRequest":return this.onSessionRequestResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onSessionProposeRequest=async(e,t)=>{const{params:n,id:r}=t;try{this.isValidConnect(hf({},t.params));const i=ol(ws.FIVE_MINUTES),o=hf({id:r,pairingTopic:e,expiry:i},n);await this.setProposal(r,o);const s=Uc(JSON.stringify(t)),a=await this.getVerifyContext(s,o.proposer.metadata);this.client.events.emit("session_proposal",{id:r,params:o,verifyContext:a})}catch(t){await this.sendError(r,e,t),this.client.logger.error(t)}},this.onSessionProposeResponse=async(e,t)=>{const{id:n}=t;if(rh(t)){const{result:r}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:r});const i=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:i});const o=i.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:o});const s=r.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:s});const a=await this.client.core.crypto.generateSharedKey(o,s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:a});const c=await this.client.core.relayer.subscribe(a);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:c}),await this.client.core.pairing.activate({topic:e})}else ih(t)&&(await this.client.proposal.delete(n,El("USER_DISCONNECTED")),this.events.emit(al("session_connect"),{error:t.error}))},this.onSessionSettleRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);const{relay:n,controller:i,expiry:o,namespaces:s,requiredNamespaces:a,optionalNamespaces:c,sessionProperties:l,pairingTopic:h}=t.params,u=hf({topic:e,relay:n,expiry:o,namespaces:s,acknowledged:!0,pairingTopic:h,requiredNamespaces:a,optionalNamespaces:c,controller:i.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},l&&{sessionProperties:l});await this.sendResult(t.id,e,!0),this.events.emit(al("session_connect"),{session:u}),this.cleanupDuplicatePairings(u)}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionSettleResponse=async(e,t)=>{const{id:n}=t;rh(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(al("session_approve",n),{})):ih(t)&&(await this.client.session.delete(e,El("USER_DISCONNECTED")),this.events.emit(al("session_approve",n),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:n,id:r}=t;try{this.isValidUpdate(hf({topic:e},n)),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult(r,e,!0),this.client.events.emit("session_update",{id:r,topic:e,params:n})}catch(t){await this.sendError(r,e,t),this.client.logger.error(t)}},this.onSessionUpdateResponse=(e,t)=>{const{id:n}=t;rh(t)?this.events.emit(al("session_update",n),{}):ih(t)&&this.events.emit(al("session_update",n),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,ol(_d)),await this.sendResult(n,e,!0),this.client.events.emit("session_extend",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionExtendResponse=(e,t)=>{const{id:n}=t;rh(t)?this.events.emit(al("session_extend",n),{}):ih(t)&&this.events.emit(al("session_extend",n),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.client.events.emit("session_ping",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionPingResponse=(e,t)=>{const{id:n}=t;setTimeout((()=>{rh(t)?this.events.emit(al("session_ping",n),{}):ih(t)&&this.events.emit(al("session_ping",n),{error:t.error})}),500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),await Promise.all([new Promise((t=>{this.client.core.relayer.once(Ju,(async()=>{t(await this.deleteSession(e))}))})),this.sendResult(n,e,!0)]),this.client.events.emit("session_delete",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidRequest(hf({topic:e},r)),await this.setPendingSessionRequest({id:n,topic:e,params:r});const i=Uc(JSON.stringify(t)),o=this.client.session.get(e),s=await this.getVerifyContext(i,o.peer.metadata);this.client.events.emit("session_request",{id:n,topic:e,params:r,verifyContext:s})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionRequestResponse=(e,t)=>{const{id:n}=t;rh(t)?this.events.emit(al("session_request",n),{result:t.result}):ih(t)&&this.events.emit(al("session_request",n),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidEmit(hf({topic:e},r)),this.client.events.emit("session_event",{id:n,topic:e,params:r})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.isValidConnect=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw new Error(t)}const{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,relays:o}=e;if(Rl(t)||await this.isValidPairingTopic(t),!function(e,t){let n=!1;return e?e&&Sl(e)&&e.length&&e.forEach((e=>{n=Nl(e)})):n=!0,n}(o)){const{message:e}=wl("MISSING_OR_INVALID",`connect() relays: ${o}`);throw new Error(e)}!Rl(n)&&0!==Il(n)&&this.validateNamespaces(n,"requiredNamespaces"),!Rl(r)&&0!==Il(r)&&this.validateNamespaces(r,"optionalNamespaces"),Rl(i)||this.validateSessionProps(i,"sessionProperties")},this.validateNamespaces=(e,t)=>{const n=function(e,t,n){let r=null;if(e&&Il(e)){const n=Ol(e,t);n&&(r=n);const i=function(e,t){let n=null;return Object.entries(e).forEach((([e,r])=>{if(n)return;const i=function(e,t,n){let r=null;return Sl(t)?t.forEach((t=>{r||(!Ml(t)||!t.includes(e))&&(r=El("UNSUPPORTED_CHAINS",`${n}, chain ${t} should be a string and conform to "namespace:chainId" format`))})):r=El("UNSUPPORTED_CHAINS",`${n}, chains ${t} should be an array of strings conforming to "namespace:chainId" format`),r}(e,Tc(e,r),`${t} requiredNamespace`);i&&(n=i)})),n}(e,t);i&&(r=i)}else r=wl("MISSING_OR_INVALID",`${t}, ${n} should be an object with data`);return r}(e,"connect()",t);if(n)throw new Error(n.message)},this.isValidApprove=async e=>{if(!kl(e))throw new Error(wl("MISSING_OR_INVALID",`approve() params: ${e}`).message);const{id:t,namespaces:n,relayProtocol:r,sessionProperties:i}=e;await this.isValidProposalId(t);const o=this.client.proposal.get(t),s=Pl(n,"approve()");if(s)throw new Error(s.message);const a=Ul(o.requiredNamespaces,n,"approve()");if(a)throw new Error(a.message);if(!Al(r,!0)){const{message:e}=wl("MISSING_OR_INVALID",`approve() relayProtocol: ${r}`);throw new Error(e)}Rl(i)||this.validateSessionProps(i,"sessionProperties")},this.isValidReject=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`reject() params: ${e}`);throw new Error(t)}const{id:t,reason:n}=e;if(await this.isValidProposalId(t),!function(e){return!!(e&&"object"==typeof e&&e.code&&xl(e.code,!1)&&e.message&&Al(e.message,!1))}(n)){const{message:e}=wl("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidSessionSettleRequest=e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw new Error(t)}const{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!Nl(t)){const{message:e}=wl("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(e)}const o=function(e,t){let n=null;return Al(e?.publicKey,!1)||(n=wl("MISSING_OR_INVALID","onSessionSettleRequest() controller public key should be a string")),n}(n);if(o)throw new Error(o.message);const s=Pl(r,"onSessionSettleRequest()");if(s)throw new Error(s.message);if(sl(i)){const{message:e}=wl("EXPIRED","onSessionSettleRequest()");throw new Error(e)}},this.isValidUpdate=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`update() params: ${e}`);throw new Error(t)}const{topic:t,namespaces:n}=e;await this.isValidSessionTopic(t);const r=this.client.session.get(t),i=Pl(n,"update()");if(i)throw new Error(i.message);const o=Ul(r.requiredNamespaces,n,"update()");if(o)throw new Error(o.message)},this.isValidExtend=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`extend() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`request() params: ${e}`);throw new Error(t)}const{topic:t,request:n,chainId:r,expiry:i}=e;await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!Cl(o,r)){const{message:e}=wl("MISSING_OR_INVALID",`request() chainId: ${r}`);throw new Error(e)}if(!function(e){return!(Rl(e)||!Al(e.method,!1))}(n)){const{message:e}=wl("MISSING_OR_INVALID",`request() ${JSON.stringify(n)}`);throw new Error(e)}if(!function(e,t,n){return!!Al(n,!1)&&function(e,t){const n=[];return Object.values(e).forEach((e=>{bl(e.accounts).includes(t)&&n.push(...e.methods)})),n}(e,t).includes(n)}(o,r,n.method)){const{message:e}=wl("MISSING_OR_INVALID",`request() method: ${n.method}`);throw new Error(e)}if(i&&!function(e,t){return xl(e,!1)&&e<=t.max&&e>=t.min}(i,ef)){const{message:e}=wl("MISSING_OR_INVALID",`request() expiry: ${i}. Expiry must be a number (in seconds) between ${ef.min} and ${ef.max}`);throw new Error(e)}},this.isValidRespond=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`respond() params: ${e}`);throw new Error(t)}const{topic:t,response:n}=e;if(await this.isValidSessionTopic(t),!function(e){return!(Rl(e)||Rl(e.result)&&Rl(e.error)||!xl(e.id,!1)||!Al(e.jsonrpc,!1))}(n)){const{message:e}=wl("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidPing=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`emit() params: ${e}`);throw new Error(t)}const{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);const{namespaces:i}=this.client.session.get(t);if(!Cl(i,r)){const{message:e}=wl("MISSING_OR_INVALID",`emit() chainId: ${r}`);throw new Error(e)}if(!function(e){return!(Rl(e)||!Al(e.name,!1))}(n)){const{message:e}=wl("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(n)}`);throw new Error(e)}if(!function(e,t,n){return!!Al(n,!1)&&function(e,t){const n=[];return Object.values(e).forEach((e=>{bl(e.accounts).includes(t)&&n.push(...e.events)})),n}(e,t).includes(n)}(i,r,n.name)){const{message:e}=wl("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidDisconnect=async e=>{if(!kl(e)){const{message:t}=wl("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.getVerifyContext=async(e,t)=>{const n={verified:{verifyUrl:t.verifyUrl||"",validation:"UNKNOWN",origin:t.url||""}};try{const r=await this.client.core.verify.resolve({attestationId:e,verifyUrl:t.verifyUrl});r&&(n.verified.origin=r,n.verified.validation=r===t.url?"VALID":"INVALID")}catch(e){this.client.logger.error(e)}return this.client.logger.info(`Verify context: ${JSON.stringify(n)}`),n},this.validateSessionProps=(e,t)=>{Object.values(e).forEach((e=>{if(!Al(e,!1)){const{message:n}=wl("MISSING_OR_INVALID",`${t} must be in Record format. Received: ${JSON.stringify(e)}`);throw new Error(n)}}))}}isInitialized(){if(!this.initialized){const{message:e}=wl("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.client.core.relayer.on(Bu,(async e=>{const{topic:t,message:n}=e;if(this.ignoredPayloadTypes.includes(this.client.core.crypto.getPayloadType(n)))return;const r=await this.client.core.crypto.decode(t,n);th(r)?(this.client.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):nh(r)&&(await this.client.core.history.resolve(r),this.onRelayEventResponse({topic:t,payload:r}))}))}registerExpirerEvents(){this.client.core.expirer.on(sd,(async e=>{const{topic:t,id:n}=il(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,wl("EXPIRED"),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession(t,!0),this.client.events.emit("session_expire",{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit("proposal_expire",{id:n}))}))}isValidPairingTopic(e){if(!Al(e,!1)){const{message:t}=wl("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:t}=wl("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(sl(this.client.core.pairing.pairings.get(e).expiry)){const{message:t}=wl("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}}async isValidSessionTopic(e){if(!Al(e,!1)){const{message:t}=wl("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(t)}if(!this.client.session.keys.includes(e)){const{message:t}=wl("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(t)}if(sl(this.client.session.get(e).expiry)){await this.deleteSession(e);const{message:t}=wl("EXPIRED",`session topic: ${e}`);throw new Error(t)}}async isValidSessionOrPairingTopic(e){if(this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else{if(!this.client.core.pairing.pairings.keys.includes(e)){if(Al(e,!1)){const{message:t}=wl("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(t)}{const{message:t}=wl("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(t)}}this.isValidPairingTopic(e)}}async isValidProposalId(e){if("number"!=typeof e){const{message:t}=wl("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(t)}if(!this.client.proposal.keys.includes(e)){const{message:t}=wl("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(t)}if(sl(this.client.proposal.get(e).expiry)){await this.deleteProposal(e);const{message:t}=wl("EXPIRED",`proposal id: ${e}`);throw new Error(t)}}}class ff extends jd{constructor(e,t){super(e,t,"proposal",Qd),this.core=e,this.logger=t}}class pf extends jd{constructor(e,t){super(e,t,"session",Qd),this.core=e,this.logger=t}}class gf extends jd{constructor(e,t){super(e,t,"request",Qd,(e=>e.id)),this.core=e,this.logger=t}}class yf extends gs{constructor(e){super(e),this.protocol="wc",this.version=2,this.name=Xd,this.events=new es.EventEmitter,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.removeAllListeners=e=>this.events.removeAllListeners(e),this.connect=async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}},this.pair=async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}},this.approve=async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}},this.reject=async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}},this.update=async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}},this.extend=async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}},this.request=async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}},this.respond=async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}},this.ping=async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}},this.emit=async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}},this.disconnect=async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}},this.find=e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}},this.name=e?.name||Xd,this.metadata=e?.metadata||(0,Rc.D)()||{name:"",description:"",url:"",icons:[""]};const t=typeof e?.logger<"u"&&"string"!=typeof e?.logger?e.logger:(0,is.pino)((0,is.getDefaultLoggerOptions)({level:e?.logger||"error"}));this.core=e?.core||new Zd(e),this.logger=(0,is.generateChildLogger)(t,this.name),this.session=new pf(this.core,this.logger),this.proposal=new ff(this.core,this.logger),this.pendingRequest=new gf(this.core,this.logger),this.engine=new df(this)}static async init(e){const t=new yf(e);return await t.initialize(),t}get context(){return(0,is.getLoggerContext)(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.engine.init(),this.core.verify.init({verifyUrl:this.metadata.verifyUrl}),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}const bf=yf;class mf extends Error{constructor(e,t,n,r){super(),this.messageWc=e,this.codeWc=t,this.data=r,this.name="InvalidReceivedSessionNamespace";const i=`${t}: ${e}.`;this.message=r?"incomplete"===n?` ${i} "${r}" is missing in the session namespace.`:` ${i} "${r}" is invalid.`:i}}class vf extends Error{constructor(){super("Not connected, no active session"),this.name="NotConnected"}}class wf extends Error{constructor(e){super(e),this.name="InvalidSession"}}class Ef extends Error{constructor(e){super(`Required permission scope were not granted for "${e}"`),this.requiredScopes=e,this.name="MissingRequiredScope"}}class Sf extends Error{constructor(){super('Please specify the active network using the "setActiveNetwork" method.'),this.name="ActiveNetworkUnspecified"}}class If extends Error{constructor(){super('Please specify the active account using the "setActiveAccount" method.'),this.name="ActiveAccountUnspecified"}}class Rf extends Error{constructor(e,t){super(`No permission. The combinaison "${e}" and "${t}" is not part of the active session.`),this.network=e,this.pkh=t,this.name="InvalidNetworkOrAccount"}}var Af=n(5108),xf=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Mf="tezos";var Tf,Of,Pf;!function(e){e.MAINNET="mainnet",e.GHOSTNET="ghostnet",e.MONDAYNET="mondaynet",e.DAILYNET="dailynet",e.KATHMANDUNET="kathmandunet",e.LIMANET="limanet"}(Tf||(Tf={})),function(e){e.GET_ACCOUNTS="tezos_getAccounts",e.OPERATION_REQUEST="tezos_send",e.SIGN="tezos_sign"}(Of||(Of={})),function(e){e.CHAIN_CHANGED="chainChanged",e.ACCOUNTS_CHANGED="accountsChanged"}(Pf||(Pf={}));class Nf extends St{constructor(e){super(),this.wcOptions=e,this.activeListeners=new Map,this.channelOpeningListeners=new Map}static getInstance(e){return Nf.instance||(Nf.instance=new Nf(e)),Nf.instance}listenForEncryptedMessage(e,t){return xf(this,void 0,void 0,(function*(){this.activeListeners.has(e)||this.activeListeners.set(e,((e,n)=>xf(this,void 0,void 0,(function*(){t(e,n)}))))}))}listenForChannelOpening(e){return xf(this,void 0,void 0,(function*(){this.channelOpeningListeners.set("channelOpening",(t=>xf(this,void 0,void 0,(function*(){e(t)}))))}))}unsubscribeFromEncryptedMessages(){return xf(this,void 0,void 0,(function*(){}))}unsubscribeFromEncryptedMessage(e){return xf(this,void 0,void 0,(function*(){}))}sendMessage(e,t){return xf(this,void 0,void 0,(function*(){const t=new ft,n=yield t.deserialize(e);this.currentMessageId=n.id,(null==n?void 0:n.type)===b.PermissionRequest&&this.requestPermissions(),(null==n?void 0:n.type)===b.OperationRequest&&this.sendOperations(n),(null==n?void 0:n.type)===b.SignPayloadRequest&&this.signPayload(n)}))}requestPermissions(){var e,t,n,r;return xf(this,void 0,void 0,(function*(){Af.log("#### Requesting permissions");const i=this.getSession();if(!this.getPermittedMethods().includes(Of.GET_ACCOUNTS))throw new Ef(Of.GET_ACCOUNTS);const o=this.getActiveNetwork();Af.log("#### Requesting public keys");const s=yield null===(e=this.signClient)||void 0===e?void 0:e.request({topic:i.topic,chainId:`${Mf}:${o}`,request:{method:Of.GET_ACCOUNTS,params:{}}});if(Af.log("##### GET ACCOUNTS",s),!s||s.length<1)throw new Error("No account shared by wallet");if(s.some((e=>!e.pubkey)))throw new Error("Public Key in `tezos_getAccounts` is empty!");const a=new ft,c=yield a.serialize({type:b.PermissionResponse,appMetadata:{senderId:null===(t=this.session)||void 0===t?void 0:t.peer.publicKey,name:null===(n=this.session)||void 0===n?void 0:n.peer.metadata.name},publicKey:null===(r=s[0])||void 0===r?void 0:r.pubkey,network:{type:Tf.MAINNET},scopes:[m.SIGN,m.OPERATION_REQUEST],id:this.currentMessageId});this.activeListeners.forEach((e=>{e(c,{origin:E.WALLETCONNECT,id:this.currentMessageId})}))}))}signPayload(e){var t;return xf(this,void 0,void 0,(function*(){const n=this.getSession();if(!this.getPermittedMethods().includes(Of.SIGN))throw new Ef(Of.SIGN);const r=this.getActiveNetwork(),i=yield this.getPKH();this.validateNetworkAndAccount(r,i);const o=new ft,s=e=>xf(this,void 0,void 0,(function*(){const t=yield o.serialize(e);this.activeListeners.forEach((e=>{e(t,{origin:E.WALLETCONNECT,id:this.currentMessageId})}))}));null===(t=this.signClient)||void 0===t||t.request({topic:n.topic,chainId:`${Mf}:${r}`,request:{method:Of.SIGN,params:{account:i,payload:e.payload}}}).then((t=>{const n={type:b.SignPayloadResponse,signingType:e.signingType,signature:null==t?void 0:t.signature,id:this.currentMessageId};s(n)})).catch((()=>xf(this,void 0,void 0,(function*(){const e={type:b.Error,id:this.currentMessageId,errorType:I.ABORTED_ERROR};s(e)}))))}))}sendOperations(e){var t;return xf(this,void 0,void 0,(function*(){const n=this.getSession();if(!this.getPermittedMethods().includes(Of.OPERATION_REQUEST))throw new Ef(Of.OPERATION_REQUEST);const r=this.getActiveNetwork(),i=yield this.getPKH();this.validateNetworkAndAccount(r,i);const o=new ft,s=e=>xf(this,void 0,void 0,(function*(){const t=yield o.serialize(e);this.activeListeners.forEach((e=>{e(t,{origin:E.WALLETCONNECT,id:this.currentMessageId})}))}));null===(t=this.signClient)||void 0===t||t.request({topic:n.topic,chainId:`${Mf}:${r}`,request:{method:Of.OPERATION_REQUEST,params:{account:i,operations:e.operationDetails}}}).then((e=>{const t={type:b.OperationResponse,transactionHash:e.hash,id:this.currentMessageId};s(t)})).catch((()=>xf(this,void 0,void 0,(function*(){const e={type:b.Error,id:this.currentMessageId,errorType:I.ABORTED_ERROR};s(e)}))))}))}init(e=!1){var t;return xf(this,void 0,void 0,(function*(){const n={permissionScope:{networks:[Tf.MAINNET],events:[],methods:[Of.GET_ACCOUNTS,Of.OPERATION_REQUEST,Of.SIGN]},pairingTopic:void 0};this.signClient=yield bf.init(this.wcOptions);let r=this.signClient.session.getAll();if(e){for(let e of r)yield this.signClient.disconnect({topic:e.topic,reason:{code:0,message:"Force new connection"}});this.clearState(),r=this.signClient.session.getAll()}if(r&&r.length>0)return this.session=r[0],void this.setDefaultAccountAndNetwork();const{uri:i,approval:o}=yield this.signClient.connect({requiredNamespaces:{[Mf]:{chains:n.permissionScope.networks.map((e=>`${Mf}:${e}`)),methods:n.permissionScope.methods,events:null!==(t=n.permissionScope.events)&&void 0!==t?t:[]}},pairingTopic:n.pairingTopic});return o().then((e=>xf(this,void 0,void 0,(function*(){var t;this.session=null!==(t=this.session)&&void 0!==t?t:e,this.validateReceivedNamespace(n.permissionScope,this.session.namespaces),this.setDefaultAccountAndNetwork();const r={id:this.session.peer.publicKey,type:"walletconnect-pairing-response",name:e.peer.metadata.name,publicKey:e.peer.publicKey,senderId:this.session.peer.publicKey,extensionId:this.session.peer.metadata.name,version:"3"};this.channelOpeningListeners.forEach((e=>{e(r)}))})))),i}))}getPairingRequestInfo(){return xf(this,void 0,void 0,(function*(){const e=yield this.init(!0);return{id:yield Ae(),type:"walletconnect-pairing-request",name:"WalletConnect",version:"3",uri:e,senderId:yield Ae(),publicKey:yield Ae()}}))}validateReceivedNamespace(e,t){if(!t[Mf])throw this.clearState(),new mf("All namespaces must be approved",El("USER_REJECTED").code,"incomplete","tezos");this.validateMethods(e.methods,t[Mf].methods),e.events&&this.validateEvents(e.events,t.tezos.events),this.validateAccounts(e.networks,t[Mf].accounts)}validateMethods(e,t){const n=[];if(e.forEach((e=>{t.includes(e)||n.push(e)})),n.length>0)throw this.clearState(),new mf("All methods must be approved",El("USER_REJECTED_METHODS").code,"incomplete",n)}validateEvents(e,t){const n=[];if(e.forEach((e=>{t.includes(e)||n.push(e)})),n.length>0)throw this.clearState(),new mf("All events must be approved",El("USER_REJECTED_EVENTS").code,"incomplete",n)}validateAccounts(e,t){if(0===t.length)throw this.clearState(),new mf("Accounts must not be empty",El("USER_REJECTED_CHAINS").code,"incomplete");const n=[],r=[],i=[],o=[];if(t.forEach((e=>{const t=e.split(":");3!==t.length&&r.push(e),t[0]!==Mf&&o.push(e);const i=t[1];n.includes(i)||n.push(i)})),r.length>0)throw this.clearState(),new mf("Accounts must be CAIP-10 compliant",El("USER_REJECTED_CHAINS").code,"invalid",r);if(o.length>0)throw this.clearState(),new mf("Accounts must be defined in matching namespace",El("UNSUPPORTED_ACCOUNTS").code,"invalid",o);if(e.forEach((e=>{n.includes(e)||i.push(e)})),i.length>0)throw this.clearState(),new mf("All chains must have at least one account",El("USER_REJECTED_CHAINS").code,"incomplete",i)}validateNetworkAndAccount(e,t){if(!this.getTezosNamespace().accounts.includes(`${Mf}:${e}:${t}`))throw new Rf(e,t)}getActiveNetwork(){if(!this.activeNetwork)throw this.getSession(),new Sf;return this.activeNetwork}setDefaultAccountAndNetwork(){const e=this.getAccounts();1===e.length&&(this.activeAccount=e[0]);const t=this.getNetworks();1===t.length&&(this.activeNetwork=t[0])}getAccounts(){return this.getTezosNamespace().accounts.map((e=>e.split(":")[2]))}getNetworks(){return this.getPermittedNetwork()}getTezosNamespace(){if(Mf in this.getSession().namespaces)return this.getSession().namespaces[Mf];throw new wf("Tezos not found in namespaces")}getPermittedMethods(){return this.getTezosRequiredNamespace().methods}getPermittedNetwork(){return this.getTezosRequiredNamespace().chains.map((e=>e.split(":")[1]))}getTezosRequiredNamespace(){return{chains:["tezos:mainnet"],events:[],methods:["tezos_getAccounts","tezos_send","tezos_sign"]}}currentSession(){return this.session}getSession(){if(!this.session)throw new vf;return this.session}getPKH(){return xf(this,void 0,void 0,(function*(){if(!this.activeAccount)throw this.getSession(),new If;return this.activeAccount}))}clearState(){this.session=void 0,this.activeAccount=void 0,this.activeNetwork=void 0}}var kf=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Cf extends ct{constructor(e,t,n,r,i){super(e,Nf.getInstance(i),new mt(n,r)),this.wcOptions=i}static isAvailable(){return kf(this,void 0,void 0,(function*(){return Promise.resolve(!0)}))}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return kf(this,void 0,void 0,(function*(){if(this._isConnected!==R.NOT_CONNECTED)return;this._isConnected=R.CONNECTING,yield this.client.init();const t=yield this.getPeers();return t.length>0&&t.map((e=>kf(this,void 0,void 0,(function*(){return this.listen(e.publicKey)})))),yield this.startOpenChannelListener(),e.connect.call(this)}))}getPeers(){return kf(this,void 0,void 0,(function*(){const e=Nf.getInstance(this.wcOptions).currentSession();return e?[{senderId:e.peer.publicKey,extensionId:e.peer.metadata.name,id:e.peer.publicKey,type:"walletconnect-pairing-response",name:"peer",publicKey:e.peer.publicKey,version:"first"}]:[]}))}disconnect(){const e=Object.create(null,{disconnect:{get:()=>super.disconnect}});return kf(this,void 0,void 0,(function*(){return e.disconnect.call(this)}))}startOpenChannelListener(){return kf(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return kf(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return kf(this,void 0,void 0,(function*(){yield this.client.listenForEncryptedMessage(e,(t=>{const n={origin:E.WALLETCONNECT,id:e};this.notifyListeners(t,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}var Uf=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Lf=new He("DappWalletConnectTransport");class jf extends Cf{constructor(e,t,n,r){super(e,t,n,x.TRANSPORT_WALLETCONNECT_PEERS_DAPP,r),this.client.listenForChannelOpening((e=>Uf(this,void 0,void 0,(function*(){yield this.addPeer(e),this._isConnected=R.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}listenForNewPeer(e){return Uf(this,void 0,void 0,(function*(){this.newPeerListener=e}))}stopListeningForNewPeers(){return Uf(this,void 0,void 0,(function*(){Lf.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var zf=n(5108),Kf=n(8764).Buffer,qf=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Df=new He("DAppClient");class Bf extends Ye{constructor(e){var t,n,r,i,o,s,a;super(Object.assign({storage:e&&e.storage?e.storage:new ht},e)),this.events=new Fo,this.openRequests=new Map,this._activeAccount=new he,this._activePeer=new he,this.blockchains=new Map,this.description=e.description,this.wcProjectId=(null===(t=e.walletConnectOptions)||void 0===t?void 0:t.projectId)||"24469fd0a06df227b6e5f7dc7de0ff4f",this.wcRelayUrl=null===(n=e.walletConnectOptions)||void 0===n?void 0:n.relayUrl,this.featuredWallets=e.featuredWallets,this.events=new Fo(e.eventHandlers,null!==(r=e.disableDefaultEvents)&&void 0!==r&&r),this.blockExplorer=null!==(i=e.blockExplorer)&&void 0!==i?i:new Jo,this.preferredNetwork=null!==(o=e.preferredNetwork)&&void 0!==o?o:v.MAINNET,Ci(null!==(s=e.colorMode)&&void 0!==s?s:te.LIGHT),this.disclaimerText=e.disclaimerText,this.errorMessages=null!==(a=e.errorMessages)&&void 0!==a?a:{},this.appMetadataManager=new gt(this.storage),this.activeAccountLoaded=this.storage.get(x.ACTIVE_ACCOUNT).then((e=>qf(this,void 0,void 0,(function*(){e?yield this.setActiveAccount(yield this.accountManager.getAccount(e)):yield this.setActiveAccount(void 0)})))).catch((e=>qf(this,void 0,void 0,(function*(){yield this.setActiveAccount(void 0),zf.error(e)})))),this.handleResponse=(e,t)=>qf(this,void 0,void 0,(function*(){var n,r,i;const o=this.openRequests.get(e.id);if(zf.log("### openRequest ###",o),Df.log("handleResponse","Received message",e,t),zf.log("### message ###",JSON.stringify(e)),zf.log("### connectionInfo ###",t),"3"===e.version){const r=e;if(o&&r.message.type===b.Acknowledge)this.analytics.track("event","DAppClient","Acknowledge received from Wallet"),Df.log(`acknowledge message received for ${e.id}`),zf.timeLog(e.id,"acknowledge"),this.events.emit(Ko.ACKNOWLEDGE_RECEIVED,{message:r.message,extraInfo:{},walletInfo:yield this.getWalletInfo()}).catch(zf.error);else if(o){const n=r.message.blockchainData.appMetadata;r.message.type===b.PermissionResponse&&n&&(yield this.appMetadataManager.addAppMetadata(n)),zf.timeLog(r.id,"response"),zf.timeEnd(r.id),r.message.type===b.Error?o.reject(r.message):o.resolve({message:e,connectionInfo:t}),this.openRequests.delete(r.id)}else if(r.message.type===b.Disconnect){this.analytics.track("event","DAppClient","Disconnect received from Wallet");const r=t.origin===E.P2P?this.p2pTransport:null!==(n=this.postMessageTransport)&&void 0!==n?n:yield this.transport;if(r){const t=(yield r.getPeers()).find((t=>t.senderId===e.senderId));t?(yield r.removePeer(t),yield this.removeAccountsForPeers([t]),yield this.events.emit(Ko.CHANNEL_CLOSED)):Df.error("handleDisconnect","cannot find peer for sender ID",e.senderId)}}else Df.error("handleResponse","no request found for id ",e.id,e)}else{const n=e;if(o&&n.type===b.Acknowledge)Df.log(`acknowledge message received for ${e.id}`),this.analytics.track("event","DAppClient","Acknowledge received from Wallet"),zf.timeLog(e.id,"acknowledge"),this.events.emit(Ko.ACKNOWLEDGE_RECEIVED,{message:n,extraInfo:{},walletInfo:yield this.getWalletInfo()}).catch(zf.error);else if(o)n.type===b.PermissionResponse&&n.appMetadata&&(yield this.appMetadataManager.addAppMetadata(n.appMetadata)),zf.timeLog(n.id,"response"),zf.timeEnd(n.id),n.type===b.Error||e.errorType?o.reject(n):o.resolve({message:e,connectionInfo:t}),this.openRequests.delete(n.id);else if(n.type===b.Disconnect||(null===(r=null==e?void 0:e.typedMessage)||void 0===r?void 0:r.type)===b.Disconnect){this.analytics.track("event","DAppClient","Disconnect received from Wallet");const n=t.origin===E.P2P?this.p2pTransport:null!==(i=this.postMessageTransport)&&void 0!==i?i:yield this.transport;if(n){const t=(yield n.getPeers()).find((t=>t.senderId===e.senderId));t?(yield n.removePeer(t),yield this.removeAccountsForPeers([t]),yield this.events.emit(Ko.CHANNEL_CLOSED)):Df.error("handleDisconnect","cannot find peer for sender ID",e.senderId)}}else Df.error("handleResponse","no request found for id ",e.id,e)}}))}initInternalTransports(){var e,t;return qf(this,void 0,void 0,(function*(){const n=yield this.keyPair;if(this.postMessageTransport||this.p2pTransport||this.walletConnectTransport)return;this.postMessageTransport=new Qo(this.name,n,this.storage),yield this.addListener(this.postMessageTransport),this.p2pTransport=new $o(this.name,n,this.storage,this.matrixNodes,this.iconUrl,this.appUrl),yield this.addListener(this.p2pTransport);const r={projectId:this.wcProjectId,relayUrl:this.wcRelayUrl,metadata:{name:this.name,description:null!==(e=this.description)&&void 0!==e?e:"",url:null!==(t=this.appUrl)&&void 0!==t?t:"",icons:this.iconUrl?[this.iconUrl]:[]}};this.walletConnectTransport=new jf(this.name,n,this.storage,r),yield this.addListener(this.walletConnectTransport)}))}init(e){const t=Object.create(null,{init:{get:()=>super.init}});return qf(this,void 0,void 0,(function*(){if(this._initPromise)return this._initPromise;try{yield this.activeAccountLoaded}catch(e){}return this._initPromise=new Promise((n=>qf(this,void 0,void 0,(function*(){if(e)yield this.addListener(e),n(yield t.init.call(this,e));else if(this._transport.isSettled())yield(yield this.transport).connect(),n(yield t.init.call(this,yield this.transport));else{const e=yield this.getActiveAccount(),r=()=>{this.postMessageTransport&&this.postMessageTransport.stopListeningForNewPeers().catch(zf.error),this.p2pTransport&&this.p2pTransport.stopListeningForNewPeers().catch(zf.error),this.walletConnectTransport&&this.walletConnectTransport.stopListeningForNewPeers().catch(zf.error)};if(yield this.initInternalTransports(),!this.postMessageTransport||!this.p2pTransport||!this.walletConnectTransport)return;if(this.postMessageTransport.connect().then().catch(zf.error),e&&e.origin){const r=e.origin.type;r===E.EXTENSION?n(yield t.init.call(this,this.postMessageTransport)):r===E.P2P?n(yield t.init.call(this,this.p2pTransport)):r===E.WALLETCONNECT&&n(yield t.init.call(this,this.walletConnectTransport))}else{const e=this.p2pTransport,t=this.postMessageTransport,i=this.walletConnectTransport;t.listenForNewPeer((e=>{Df.log("init","postmessage transport peer connected",e),this.analytics.track("event","DAppClient","Extension connected",{peerName:e.name}),this.events.emit(Ko.PAIR_SUCCESS,e).catch((e=>zf.warn(e))),this.setActivePeer(e).catch(zf.error),this.setTransport(this.postMessageTransport).catch(zf.error),r(),n(A.POST_MESSAGE)})).catch(zf.error),e.listenForNewPeer((e=>{Df.log("init","p2p transport peer connected",e),this.analytics.track("event","DAppClient","Beacon Wallet connected",{peerName:e.name}),this.events.emit(Ko.PAIR_SUCCESS,e).catch((e=>zf.warn(e))),this.setActivePeer(e).catch(zf.error),this.setTransport(this.p2pTransport).catch(zf.error),r(),n(A.P2P)})).catch(zf.error),i.listenForNewPeer((e=>{Df.log("init","walletconnect transport peer connected",e),this.analytics.track("event","DAppClient","WalletConnect Wallet connected",{peerName:e.name}),this.events.emit(Ko.PAIR_SUCCESS,e).catch((e=>zf.warn(e))),this.setActivePeer(e).catch(zf.error),this.setTransport(this.walletConnectTransport).catch(zf.error),r(),n(A.WALLETCONNECT)})).catch(zf.error),mn.getAvailableExtensions().then((n=>qf(this,void 0,void 0,(function*(){this.analytics.track("event","DAppClient","Extensions detected",{extensions:n}),this.events.emit(Ko.PAIR_INIT,{p2pPeerInfo:()=>(e.connect().then().catch(zf.error),e.getPairingRequestInfo()),postmessagePeerInfo:()=>t.getPairingRequestInfo(),walletConnectPeerInfo:()=>i.getPairingRequestInfo(),preferredNetwork:this.preferredNetwork,abortedHandler:()=>{zf.log("ABORTED"),this._initPromise=void 0},disclaimerText:this.disclaimerText,analytics:this.analytics,featuredWallets:this.featuredWallets}).catch((e=>zf.warn(e)))})))).catch((e=>{this._initPromise=void 0,zf.error(e)}))}}})))),this._initPromise}))}getActiveAccount(){return qf(this,void 0,void 0,(function*(){return this._activeAccount.promise}))}setActiveAccount(e){return qf(this,void 0,void 0,(function*(){if(this._activeAccount.isSettled()?this._activeAccount=he.resolve(e):this._activeAccount.resolve(e),e){const t=e.origin.type;yield this.initInternalTransports(),t===E.EXTENSION?yield this.setTransport(this.postMessageTransport):t===E.P2P?yield this.setTransport(this.p2pTransport):t===E.WALLETCONNECT&&(yield this.setTransport(this.walletConnectTransport));const n=yield this.getPeer(e);yield this.setActivePeer(n)}else yield this.setActivePeer(void 0),yield this.setTransport(void 0);yield this.storage.set(x.ACTIVE_ACCOUNT,e?e.accountIdentifier:void 0),yield this.events.emit(Ko.ACTIVE_ACCOUNT_SET,e)}))}clearActiveAccount(){return this.setActiveAccount()}setColorMode(e){return qf(this,void 0,void 0,(function*(){return Ci(e)}))}getColorMode(){return qf(this,void 0,void 0,(function*(){return Ui()}))}getAppMetadata(){return qf(this,void 0,void 0,(function*(){return this.getOwnAppMetadata()}))}showPrepare(){return qf(this,void 0,void 0,(function*(){const e=yield(()=>qf(this,void 0,void 0,(function*(){try{return yield this.getWalletInfo()}catch(e){return}})))();yield this.events.emit(Ko.SHOW_PREPARE,{walletInfo:e})}))}hideUI(e){return qf(this,void 0,void 0,(function*(){yield this.events.emit(Ko.HIDE_UI,e)}))}removeAccount(e){const t=Object.create(null,{removeAccount:{get:()=>super.removeAccount}});return qf(this,void 0,void 0,(function*(){const n=t.removeAccount.call(this,e),r=yield this.getActiveAccount();return r&&r.accountIdentifier===e&&(yield this.setActiveAccount(void 0)),n}))}removeAllAccounts(){const e=Object.create(null,{removeAllAccounts:{get:()=>super.removeAllAccounts}});return qf(this,void 0,void 0,(function*(){yield e.removeAllAccounts.call(this),yield this.setActiveAccount(void 0)}))}removePeer(e,t=!1){return qf(this,void 0,void 0,(function*(){const n=yield this.transport,r=n.removePeer(e);return yield this.removeAccountsForPeers([e]),t&&(yield this.sendDisconnectToPeer(e,n)),r}))}removeAllPeers(e=!1){return qf(this,void 0,void 0,(function*(){const t=yield this.transport,n=yield t.getPeers(),r=t.removeAllPeers();if(yield this.removeAccountsForPeers(n),e){const e=n.map((e=>this.sendDisconnectToPeer(e,t)));yield Promise.all(e)}return r}))}subscribeToEvent(e,t){return qf(this,void 0,void 0,(function*(){yield this.events.on(e,t)}))}checkPermissions(e){return qf(this,void 0,void 0,(function*(){if(e===b.PermissionRequest)return!0;const t=yield this.getActiveAccount();if(!t)throw yield this.sendInternalError("No active account set!");const n=t.scopes;switch(e){case b.OperationRequest:return n.includes(m.OPERATION_REQUEST);case b.SignPayloadRequest:return n.includes(m.SIGN);case b.BroadcastRequest:return!0;default:return!1}}))}sendNotification(e,t,n,r){var i,o,s;return qf(this,void 0,void 0,(function*(){const a=yield this.getActiveAccount();if(!a||a&&!a.scopes.includes(m.NOTIFICATION)&&!a.notification)throw new Error("notification permissions not given");if(!(null===(i=a.notification)||void 0===i?void 0:i.token))throw new Error("No AccessToken");const c=null===(o=a.notification)||void 0===o?void 0:o.apiUrl;if(!c)throw new Error("No Push URL set");return this.sendNotificationWithAccessToken({url:c,recipient:a.address,title:e,body:t,payload:n,protocolIdentifier:r,accessToken:null===(s=a.notification)||void 0===s?void 0:s.token})}))}addBlockchain(e){this.blockchains.set(e.identifier,e),e.getWalletLists().then((e=>{var t,n,r,i;i=e.desktopList,oo=i,r=e.extensionList,so=r,n=e.webList,ao=n,t=e.iOSList,co=t}))}removeBlockchain(e){this.blockchains.delete(e)}permissionRequest(e){return qf(this,void 0,void 0,(function*(){zf.log("PERMISSION REQUEST");const t=this.blockchains.get(e.blockchainIdentifier);if(!t)throw new Error(`Blockchain "${e.blockchainIdentifier}" not supported by dAppClient`);const n=Object.assign(Object.assign({},e),{type:b.PermissionRequest,blockchainData:Object.assign(Object.assign({},e.blockchainData),{appMetadata:yield this.getOwnAppMetadata()})});zf.log("REQUESTION PERMIMISSION V3","xxx",n);const{message:r,connectionInfo:i}=yield this.makeRequestV3(n).catch((e=>qf(this,void 0,void 0,(function*(){throw new Error("TODO")}))));zf.log("RESPONSE V3",r,i);const o=yield t.getAccountInfosFromPermissionResponse(r.message),s={accountIdentifier:o[0].accountId,senderId:r.senderId,origin:{type:i.origin,id:i.id},address:o[0].address,publicKey:o[0].publicKey,scopes:r.message.blockchainData.scopes,connectedAt:(new Date).getTime(),chainData:r.message.blockchainData};return yield this.accountManager.addAccount(s),yield this.setActiveAccount(s),yield t.handleResponse({request:n,account:s,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),yield this.notifySuccess(n,{account:s,output:{address:o[0].address,network:{type:v.MAINNET},scopes:[m.OPERATION_REQUEST]},blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),r.message}))}request(e){return qf(this,void 0,void 0,(function*(){zf.log("REQUEST",e);const t=this.blockchains.get(e.blockchainIdentifier);if(!t)throw new Error(`Blockchain "${t}" not supported by dAppClient`);yield t.validateRequest(e);const n=yield this.getActiveAccount();if(!n)throw yield this.sendInternalError("No active account!");const r=Object.assign(Object.assign({},e),{type:b.BlockchainRequest,accountId:n.accountIdentifier}),{message:i,connectionInfo:o}=yield this.makeRequestV3(r).catch((e=>qf(this,void 0,void 0,(function*(){throw zf.error(e),new Error("TODO")}))));return yield t.handleResponse({request:r,account:n,output:i,blockExplorer:this.blockExplorer,connectionContext:o,walletInfo:yield this.getWalletInfo()}),i.message}))}requestPermissions(e){return qf(this,void 0,void 0,(function*(){const t={appMetadata:yield this.getOwnAppMetadata(),type:b.PermissionRequest,network:e&&e.network?e.network:{type:v.MAINNET},scopes:e&&e.scopes?e.scopes:[m.OPERATION_REQUEST,m.SIGN]};this.analytics.track("event","DAppClient","Permission requested");const{message:n,connectionInfo:r}=yield this.makeRequest(t).catch((e=>qf(this,void 0,void 0,(function*(){throw yield this.handleRequestError(t,e)})))),i=n.publicKey||n.pubkey||n.pubKey,o=yield function(e){return ye(this,void 0,void 0,(function*(){const t={edpk:{length:54,prefix:ge.from(new Uint8Array([6,161,159]))},sppk:{length:55,prefix:ge.from(new Uint8Array([6,161,161]))},p2pk:{length:55,prefix:ge.from(new Uint8Array([6,161,164]))}};let n,r;if(64===e.length)n=t.edpk.prefix,r=e;else{const i=Object.entries(t);for(let t=0;t{switch(e.signingType){case ee.OPERATION:if(!n.startsWith("03"))throw new Error('When using signing type "OPERATION", the payload must start with prefix "03"');return ee.OPERATION;case ee.MICHELINE:if(!n.startsWith("05"))throw new Error('When using signing type "MICHELINE", the payload must start with prefix "05"');return ee.MICHELINE;case ee.RAW:default:return ee.RAW}})();this.analytics.track("event","DAppClient","Signature requested");const i={type:b.SignPayloadRequest,signingType:r,payload:n,sourceAddress:e.sourceAddress||t.address},{message:o,connectionInfo:s}=yield this.makeRequest(i).catch((e=>qf(this,void 0,void 0,(function*(){throw yield this.handleRequestError(i,e)}))));return yield this.notifySuccess(i,{account:t,output:o,connectionContext:s,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Signature response"),o}))}requestOperation(e){return qf(this,void 0,void 0,(function*(){if(!e.operationDetails)throw yield this.sendInternalError("Operation details must be provided");const t=yield this.getActiveAccount();if(!t)throw yield this.sendInternalError("No active account!");const n={type:b.OperationRequest,network:t.network||{type:v.MAINNET},operationDetails:e.operationDetails,sourceAddress:t.address||""};this.analytics.track("event","DAppClient","Operation requested");const{message:r,connectionInfo:i}=yield this.makeRequest(n).catch((e=>qf(this,void 0,void 0,(function*(){throw yield this.handleRequestError(n,e)}))));return yield this.notifySuccess(n,{account:t,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Operation response"),r}))}requestBroadcast(e){return qf(this,void 0,void 0,(function*(){if(!e.signedTransaction)throw yield this.sendInternalError("Signed transaction must be provided");const t=e.network||{type:v.MAINNET},n={type:b.BroadcastRequest,network:t,signedTransaction:e.signedTransaction};this.analytics.track("event","DAppClient","Broadcast requested");const{message:r,connectionInfo:i}=yield this.makeRequest(n).catch((e=>qf(this,void 0,void 0,(function*(){throw yield this.handleRequestError(n,e)}))));return yield this.notifySuccess(n,{network:t,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Broadcast response"),r}))}setActivePeer(e){return qf(this,void 0,void 0,(function*(){this._activePeer.isSettled()?this._activePeer=he.resolve(e):this._activePeer.resolve(e),e&&(yield this.initInternalTransports(),"postmessage-pairing-response"===e.type?yield this.setTransport(this.postMessageTransport):"p2p-pairing-response"===e.type&&(yield this.setTransport(this.p2pTransport)))}))}setTransport(e){const t=Object.create(null,{setTransport:{get:()=>super.setTransport}});return qf(this,void 0,void 0,(function*(){e||(this._initPromise=void 0);const n=t.setTransport.call(this,e);return yield this.events.emit(Ko.ACTIVE_TRANSPORT_SET,e),n}))}sendInternalError(e){return qf(this,void 0,void 0,(function*(){throw yield this.events.emit(Ko.INTERNAL_ERROR,{text:e}),new Error(e)}))}removeAccountsForPeers(e){return qf(this,void 0,void 0,(function*(){const t=yield this.accountManager.getAccounts(),n=e.map((e=>e.senderId)),r=t.filter((e=>n.includes(e.senderId))).map((e=>e.accountIdentifier));yield this.accountManager.removeAccounts(r);const i=yield this.getActiveAccount();i&&r.includes(i.accountIdentifier)&&(yield this.setActiveAccount(void 0))}))}handleRequestError(e,t){return qf(this,void 0,void 0,(function*(){if(Df.error("handleRequestError","error response",t),t.errorType){const n=[];if(t.errorType===I.NO_PRIVATE_KEY_FOUND_ERROR){const t=()=>qf(this,void 0,void 0,(function*(){const t=e;let n;if(t.sourceAddress&&t.network){const e=yield je(t.sourceAddress,t.network);n=yield this.getAccount(e),n&&(yield this.removeAccount(n.accountIdentifier))}}));n.push({text:"Remove account",actionCallback:t})}const r=yield this.getPeer(),i=yield this.getActiveAccount();throw e.type===b.PermissionRequest&&void 0===(yield this.getActiveAccount())&&(this._initPromise=void 0,this.postMessageTransport=void 0,this.p2pTransport=void 0,yield this.setTransport(),yield this.setActivePeer()),this.events.emit(Vo[e.type].error,{errorResponse:t,walletInfo:yield this.getWalletInfo(r,i),errorMessages:this.errorMessages},n).catch((e=>Df.error("handleRequestError",e))),Qe.getError(t.errorType,t.errorData)}throw t}))}notifySuccess(e,t){return qf(this,void 0,void 0,(function*(){this.events.emit(Vo[e.type].success,t).catch((e=>zf.warn(e)))}))}getWalletInfo(e,t){var n,r;return qf(this,void 0,void 0,(function*(){const i=t||(yield this.getActiveAccount()),o=e||(yield this.getPeer(i));let s;i&&(s=yield this.appMetadataManager.getAppMetadata(i.senderId));const a=o;s||(s={name:null==a?void 0:a.name,icon:null==a?void 0:a.icon});const c=(e,t)=>!(!e||!t)&&e.toLowerCase()===t.toLowerCase();let l,h;if(fo().find((e=>c(e.name,null==s?void 0:s.name)))?(l=fo().find((e=>c(e.name,null==s?void 0:s.name))),h="mobile"):uo().find((e=>c(e.name,null==s?void 0:s.name)))?(l=uo().find((e=>c(e.name,null==s?void 0:s.name))),h="web"):lo().find((e=>c(e.name,null==s?void 0:s.name)))?(l=lo().find((e=>c(e.name,null==s?void 0:s.name))),h="desktop"):ho().find((e=>c(e.name,null==s?void 0:s.name)))&&(l=ho().find((e=>c(e.name,null==s?void 0:s.name))),h="extension"),l){let e;return l.hasOwnProperty("links")?e=l.links[null!==(n=null==i?void 0:i.network.type)&&void 0!==n?n:this.preferredNetwork]:l.hasOwnProperty("deepLink")&&(e=l.deepLink),{name:s.name,icon:null!==(r=s.icon)&&void 0!==r?r:l.logo,deeplink:e,type:h}}return s}))}getPeer(e){var t,n,r,i,o,s;return qf(this,void 0,void 0,(function*(){let a;if(e){Df.log("getPeer","We have an account",e);const c=[...null!==(n=yield null===(t=this.postMessageTransport)||void 0===t?void 0:t.getPeers())&&void 0!==n?n:[],...null!==(i=yield null===(r=this.p2pTransport)||void 0===r?void 0:r.getPeers())&&void 0!==i?i:[],...null!==(s=yield null===(o=this.walletConnectTransport)||void 0===o?void 0:o.getPeers())&&void 0!==s?s:[]];Df.log("getPeer","Found peers",c,e),a=c.find((t=>t.senderId===e.senderId)),a||(a=c.find((t=>t.extensionId===e.origin.id)))}else a=yield this._activePeer.promise,Df.log("getPeer","Active peer",a);return a}))}makeRequest(e){var t;return qf(this,void 0,void 0,(function*(){const n=yield Ae();if(zf.time(n),Df.log("makeRequest","starting"),yield this.init(),zf.timeLog(n,"init done"),Df.log("makeRequest","after init"),yield this.addRequestAndCheckIfRateLimited())throw this.events.emit(Ko.LOCAL_RATE_LIMIT_REACHED).catch((e=>zf.warn(e))),new Error("rate limit reached");if(!(yield this.checkPermissions(e.type)))throw this.events.emit(Ko.NO_PERMISSIONS).catch((e=>zf.warn(e))),new Error("No permissions to send this request to wallet!");if(!this.beaconId)throw yield this.sendInternalError("BeaconID not defined");const r=Object.assign({id:n,version:"2",senderId:yield Be(yield this.beaconId)},e),i=new he;this.addOpenRequest(r.id,i);const o=yield(new ft).serialize(r),s=yield this.getActiveAccount(),a=yield this.getPeer(s),c=yield this.getWalletInfo(a,s);Df.log("makeRequest","sending message",r),zf.timeLog(n,"sending");try{yield(yield this.transport).send(o,a)}catch(e){throw this.events.emit(Ko.INTERNAL_ERROR,{text:"Unable to send message. If this problem persists, please reset the connection and pair your wallet again.",buttons:[{text:"Reset Connection",actionCallback:()=>qf(this,void 0,void 0,(function*(){yield No(),this.disconnect()}))}]}),zf.timeLog(n,"send error"),e}return zf.timeLog(n,"sent"),this.events.emit(Vo[e.type].sent,{walletInfo:Object.assign(Object.assign({},c),{name:null!==(t=c.name)&&void 0!==t?t:"Wallet"}),extraInfo:{resetCallback:()=>qf(this,void 0,void 0,(function*(){this.disconnect()}))}}).catch((e=>zf.warn(e))),i.promise}))}makeRequestV3(e){var t;return qf(this,void 0,void 0,(function*(){const n=yield Ae();if(zf.time(n),Df.log("makeRequest","starting"),yield this.init(),zf.timeLog(n,"init done"),Df.log("makeRequest","after init"),yield this.addRequestAndCheckIfRateLimited())throw this.events.emit(Ko.LOCAL_RATE_LIMIT_REACHED).catch((e=>zf.warn(e))),new Error("rate limit reached");if(!this.beaconId)throw yield this.sendInternalError("BeaconID not defined");const r={id:n,version:"3",senderId:yield Be(yield this.beaconId),message:e},i=new he;this.addOpenRequest(r.id,i);const o=yield(new ft).serialize(r),s=yield this.getActiveAccount(),a=yield this.getPeer(s),c=yield this.getWalletInfo(a,s);Df.log("makeRequest","sending message",r),zf.timeLog(n,"sending");try{yield(yield this.transport).send(o,a)}catch(e){throw this.events.emit(Ko.INTERNAL_ERROR,{text:"Unable to send message. If this problem persists, please reset the connection and pair your wallet again.",buttons:[{text:"Reset Connection",actionCallback:()=>qf(this,void 0,void 0,(function*(){yield No(),this.disconnect()}))}]}),zf.timeLog(n,"send error"),e}zf.timeLog(n,"sent");const l=e.type;return this.events.emit(Vo[l].sent,{walletInfo:Object.assign(Object.assign({},c),{name:null!==(t=c.name)&&void 0!==t?t:"Wallet"}),extraInfo:{resetCallback:()=>qf(this,void 0,void 0,(function*(){this.disconnect()}))}}).catch((e=>zf.warn(e))),i.promise}))}disconnect(){return qf(this,void 0,void 0,(function*(){this.postMessageTransport=void 0,this.p2pTransport=void 0,this.walletConnectTransport=void 0,yield Promise.all([this.clearActiveAccount(),(yield this.transport).disconnect()])}))}addOpenRequest(e,t){Df.log("addOpenRequest",this.name,`adding request ${e} and waiting for answer`),this.openRequests.set(e,t)}sendNotificationWithAccessToken(e){return qf(this,void 0,void 0,(function*(){const{url:t,recipient:n,title:r,body:i,payload:o,protocolIdentifier:s,accessToken:a}=e,c=(new Date).toISOString(),l=yield this.keyPair,h=l.publicKey,u=Kf.from(new Uint8Array([13,15,37,217])),d=U.encode(Kf.concat([u,Kf.from(h)])),f=be(["Tezos Signed Message: ",n,r,i,c,o].join(" ")),p="0501"+f.length.toString(16).padStart(8,"0")+f,g=yield((e,t)=>ye(void 0,void 0,void 0,(function*(){const n=yield(e=>ye(void 0,void 0,void 0,(function*(){if(e.length%2!=0)return(0,fe.cv)(e);let t=e;e.startsWith("0x")&&(t=e.slice(2));const n=ge.from(t,"hex");return n.length===t.length/2?n:(0,fe.cv)(e)})))(e),r=new Uint8Array([9,245,205,134,18]),i=yield((e,t=32)=>ye(void 0,void 0,void 0,(function*(){return(0,C.hash)(e,t)})))(n),o=(0,k.Xx)(t.secretKey,i);return U.encode(ge.concat([ge.from(r),ge.from(o)]))})))(p,{secretKey:Kf.from(l.secretKey)});return(yield Pt().post(`${t}/send`,{recipient:n,title:r,body:i,timestamp:c,payload:o,accessToken:a,protocolIdentifier:s,sender:{name:this.name,publicKey:d,signature:g}})).data}))}}n(5108),new He("IncomingRequestInterceptor"),n(5108),new He("OutgoingResponseInterceptor"),n(5108),new He("WalletClient");var Wf,Ff=n(5108),Vf=(Wf=function(e,t){return Wf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Wf(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}Wf(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),Hf=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Gf=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!((i=(i=s.trys).length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]{var e={8099:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(7117);function i(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>8,t[n+1]=e>>>0,t}function o(e,t,n){return void 0===t&&(t=new Uint8Array(2)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t}function s(e,t){return void 0===t&&(t=0),e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function a(e,t){return void 0===t&&(t=0),(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function c(e,t){return void 0===t&&(t=0),e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]}function l(e,t){return void 0===t&&(t=0),(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0}function u(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>24,t[n+1]=e>>>16,t[n+2]=e>>>8,t[n+3]=e>>>0,t}function h(e,t,n){return void 0===t&&(t=new Uint8Array(4)),void 0===n&&(n=0),t[n+0]=e>>>0,t[n+1]=e>>>8,t[n+2]=e>>>16,t[n+3]=e>>>24,t}function d(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),u(e/4294967296>>>0,t,n),u(e>>>0,t,n+4),t}function f(e,t,n){return void 0===t&&(t=new Uint8Array(8)),void 0===n&&(n=0),h(e>>>0,t,n),h(e/4294967296>>>0,t,n+4),t}t.readInt16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])<<16>>16},t.readUint16BE=function(e,t){return void 0===t&&(t=0),(e[t+0]<<8|e[t+1])>>>0},t.readInt16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])<<16>>16},t.readUint16LE=function(e,t){return void 0===t&&(t=0),(e[t+1]<<8|e[t])>>>0},t.writeUint16BE=i,t.writeInt16BE=i,t.writeUint16LE=o,t.writeInt16LE=o,t.readInt32BE=s,t.readUint32BE=a,t.readInt32LE=c,t.readUint32LE=l,t.writeUint32BE=u,t.writeInt32BE=u,t.writeUint32LE=h,t.writeInt32LE=h,t.readInt64BE=function(e,t){void 0===t&&(t=0);var n=s(e,t),r=s(e,t+4);return 4294967296*n+r-4294967296*(r>>31)},t.readUint64BE=function(e,t){return void 0===t&&(t=0),4294967296*a(e,t)+a(e,t+4)},t.readInt64LE=function(e,t){void 0===t&&(t=0);var n=c(e,t);return 4294967296*c(e,t+4)+n-4294967296*(n>>31)},t.readUint64LE=function(e,t){void 0===t&&(t=0);var n=l(e,t);return 4294967296*l(e,t+4)+n},t.writeUint64BE=d,t.writeInt64BE=d,t.writeUint64LE=f,t.writeInt64LE=f,t.readUintBE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintBE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintBE: array is too short for the given bitLength");for(var r=0,i=1,o=e/8+n-1;o>=n;o--)r+=t[o]*i,i*=256;return r},t.readUintLE=function(e,t,n){if(void 0===n&&(n=0),e%8!=0)throw new Error("readUintLE supports only bitLengths divisible by 8");if(e/8>t.length-n)throw new Error("readUintLE: array is too short for the given bitLength");for(var r=0,i=1,o=n;o=i;s--)n[s]=t/o&255,o*=256;return n},t.writeUintLE=function(e,t,n,i){if(void 0===n&&(n=new Uint8Array(e/8)),void 0===i&&(i=0),e%8!=0)throw new Error("writeUintLE supports only bitLengths divisible by 8");if(!r.isSafeInteger(t))throw new Error("writeUintLE value must be an integer");for(var o=1,s=i;s{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309);t.BLOCK_SIZE=128,t.DIGEST_LENGTH=64,t.KEY_LENGTH=64,t.PERSONALIZATION_LENGTH=16,t.SALT_LENGTH=16,t.MAX_LEAF_SIZE=Math.pow(2,32)-1,t.MAX_FANOUT=255,t.MAX_MAX_DEPTH=255;var o=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),s=[[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6],[22,16,24,0,10,4,30,26,20,28,6,12,14,2,18,8],[14,18,6,2,26,24,22,28,4,12,10,20,8,0,30,16],[18,0,10,14,4,8,20,30,28,2,22,24,12,16,6,26],[4,24,12,20,0,22,16,6,8,26,14,10,30,28,2,18],[24,10,2,30,28,26,8,20,0,14,12,6,18,4,16,22],[26,22,14,28,24,2,6,18,10,0,30,8,16,12,4,20],[12,30,28,18,22,6,0,16,24,4,26,14,2,8,20,10],[20,4,16,8,14,12,2,10,30,22,18,28,6,24,26,0],[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30],[28,20,8,16,18,30,26,12,2,24,0,4,22,14,10,6]],a=function(){function e(e,n){if(void 0===e&&(e=64),this.digestLength=e,this.blockSize=t.BLOCK_SIZE,this._state=new Int32Array(o),this._buffer=new Uint8Array(t.BLOCK_SIZE),this._bufferLength=0,this._ctr=new Uint32Array(4),this._flag=new Uint32Array(4),this._lastNode=!1,this._finished=!1,this._vtmp=new Uint32Array(32),this._mtmp=new Uint32Array(32),e<1||e>t.DIGEST_LENGTH)throw new Error("blake2b: wrong digest length");n&&this.validateConfig(n);var i=0;n&&n.key&&(i=n.key.length);var s=1,a=1;n&&n.tree&&(s=n.tree.fanout,a=n.tree.maxDepth),this._state[0]^=e|i<<8|s<<16|a<<24,n&&n.tree&&(this._state[1]^=n.tree.leafSize,this._state[2]^=n.tree.nodeOffsetLowBits,this._state[3]^=n.tree.nodeOffsetHighBits,this._state[4]^=n.tree.nodeDepth|n.tree.innerDigestLength<<8,this._lastNode=n.tree.lastNode),n&&n.salt&&(this._state[8]^=r.readUint32LE(n.salt,0),this._state[9]^=r.readUint32LE(n.salt,4),this._state[10]^=r.readUint32LE(n.salt,8),this._state[11]^=r.readUint32LE(n.salt,12)),n&&n.personalization&&(this._state[12]^=r.readUint32LE(n.personalization,0),this._state[13]^=r.readUint32LE(n.personalization,4),this._state[14]^=r.readUint32LE(n.personalization,8),this._state[15]^=r.readUint32LE(n.personalization,12)),this._initialState=new Uint32Array(this._state),n&&n.key&&i>0&&(this._paddedKey=new Uint8Array(t.BLOCK_SIZE),this._paddedKey.set(n.key),this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE)}return e.prototype.reset=function(){return this._state.set(this._initialState),this._paddedKey?(this._buffer.set(this._paddedKey),this._bufferLength=t.BLOCK_SIZE):this._bufferLength=0,i.wipe(this._ctr),i.wipe(this._flag),this._finished=!1,this},e.prototype.validateConfig=function(e){if(e.key&&e.key.length>t.KEY_LENGTH)throw new Error("blake2b: wrong key length");if(e.salt&&e.salt.length!==t.SALT_LENGTH)throw new Error("blake2b: wrong salt length");if(e.personalization&&e.personalization.length!==t.PERSONALIZATION_LENGTH)throw new Error("blake2b: wrong personalization length");if(e.tree){if(e.tree.fanout<0||e.tree.fanout>t.MAX_FANOUT)throw new Error("blake2b: wrong tree fanout");if(e.tree.maxDepth<0||e.tree.maxDepth>t.MAX_MAX_DEPTH)throw new Error("blake2b: wrong tree depth");if(e.tree.leafSize<0||e.tree.leafSize>t.MAX_LEAF_SIZE)throw new Error("blake2b: wrong leaf size");if(e.tree.innerDigestLength<0||e.tree.innerDigestLength>t.DIGEST_LENGTH)throw new Error("blake2b: wrong tree inner digest length")}},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("blake2b: can't update because hash was finished.");var r=t.BLOCK_SIZE-this._bufferLength,i=0;if(0===n)return this;if(n>r){for(var o=0;ot.BLOCK_SIZE;){for(o=0;o>>16,I=65535&p,R=p>>>16;S+=g>>>16,I+=65535&y,R+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(R+=I>>>16)<<16),R=p>>>16,S+=l>>>16,I+=65535&u,R+=u>>>16,f=65535&(E+=65535&l)|(S+=E>>>16)<<16,E=w^=p=65535&(I+=S>>>16)|(R+=I>>>16)<<16,w=v^=f,v=E,E=65535&b,S=b>>>16,I=65535&m,R=m>>>16,S+=v>>>16,I+=65535&w,R+=w>>>16,E=(g^=b=65535&(E+=65535&v)|(S+=E>>>16)<<16)<<8|(y^=m=65535&(I+=S>>>16)|(R+=I>>>16)<<16)>>>24,g=y<<8|g>>>24,y=E,E=65535&f,S=f>>>16,I=65535&p,R=p>>>16,S+=g>>>16,I+=65535&y,R+=y>>>16,I+=(S+=(E+=65535&g)>>>16)>>>16,E=65535&(f=65535&E|S<<16),S=f>>>16,I=65535&(p=65535&I|(R+=I>>>16)<<16),R=p>>>16,S+=h>>>16,I+=65535&d,R+=d>>>16,E=(v^=f=65535&(E+=65535&h)|(S+=E>>>16)<<16)<<16|(w^=p=65535&(I+=S>>>16)|(R+=I>>>16)<<16)>>>16,v=w<<16|v>>>16,w=E,E=65535&b,S=b>>>16,I=65535&m,R=m>>>16,S+=v>>>16,I+=65535&w,R+=w>>>16,E=(y^=m=65535&(I+=(S+=(E+=65535&v)>>>16)>>>16)|(R+=I>>>16)<<16)<<1|(g^=b=65535&E|S<<16)>>>31,g=g<<1|y>>>31,y=E,e[t]=f,e[o]=p,e[n]=g,e[s]=y,e[r]=b,e[a]=m,e[i]=v,e[c]=w},e.prototype._incrementCounter=function(e){for(var t=0;t<3;t++){var n=this._ctr[t]+e;if(this._ctr[t]=n>>>0,this._ctr[t]===n)return;e=1}},e.prototype._processBlock=function(e){this._incrementCounter(e);var t=this._vtmp;t.set(this._state),t.set(o,16),t[24]^=this._ctr[0],t[25]^=this._ctr[1],t[26]^=this._ctr[2],t[27]^=this._ctr[3],t[28]^=this._flag[0],t[29]^=this._flag[1],t[30]^=this._flag[2],t[31]^=this._flag[3];for(var n=this._mtmp,i=0;i<32;i++)n[i]=r.readUint32LE(this._buffer,4*i);for(var a=0;a<12;a++)this._G(t,0,8,16,24,1,9,17,25,n[s[a][0]],n[s[a][0]+1],n[s[a][1]],n[s[a][1]+1]),this._G(t,2,10,18,26,3,11,19,27,n[s[a][2]],n[s[a][2]+1],n[s[a][3]],n[s[a][3]+1]),this._G(t,4,12,20,28,5,13,21,29,n[s[a][4]],n[s[a][4]+1],n[s[a][5]],n[s[a][5]+1]),this._G(t,6,14,22,30,7,15,23,31,n[s[a][6]],n[s[a][6]+1],n[s[a][7]],n[s[a][7]+1]),this._G(t,0,10,20,30,1,11,21,31,n[s[a][8]],n[s[a][8]+1],n[s[a][9]],n[s[a][9]+1]),this._G(t,2,12,22,24,3,13,23,25,n[s[a][10]],n[s[a][10]+1],n[s[a][11]],n[s[a][11]+1]),this._G(t,4,14,16,26,5,15,17,27,n[s[a][12]],n[s[a][12]+1],n[s[a][13]],n[s[a][13]+1]),this._G(t,6,8,18,28,7,9,19,29,n[s[a][14]],n[s[a][14]+1],n[s[a][15]],n[s[a][15]+1]);for(i=0;i<16;i++)this._state[i]^=t[i]^t[i+16]},e}();t.BLAKE2b=a,t.hash=function(e,n,r){void 0===n&&(n=t.DIGEST_LENGTH);var i=new a(n,r);i.update(e);var o=i.digest();return i.clean(),o}},3683:(e,t)=>{"use strict";t.z=function(){for(var e=0,t=0;t{"use strict";var r=n(5439),i=n(3027),o=n(7309),s=n(8099),a=n(4153);t.Cv=32,t.WH=12,t.pg=16;var c=new Uint8Array(16),l=function(){function e(e){if(this.nonceLength=t.WH,this.tagLength=t.pg,e.length!==t.Cv)throw new Error("ChaCha20Poly1305 needs 32-byte key");this._key=new Uint8Array(e)}return e.prototype.seal=function(e,t,n,i){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");var s=new Uint8Array(16);s.set(e,s.length-e.length);var a=new Uint8Array(32);r.stream(this._key,s,a,4);var c,l=t.length+this.tagLength;if(i){if(i.length!==l)throw new Error("ChaCha20Poly1305: incorrect destination length");c=i}else c=new Uint8Array(l);return r.streamXOR(this._key,s,t,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),a,c.subarray(0,c.length-this.tagLength),n),o.wipe(s),c},e.prototype.open=function(e,t,n,i){if(e.length>16)throw new Error("ChaCha20Poly1305: incorrect nonce length");if(t.length0&&a.update(c.subarray(r.length%16))),a.update(n),n.length%16>0&&a.update(c.subarray(n.length%16));var l=new Uint8Array(8);r&&s.writeUint64LE(r.length,l),a.update(l),s.writeUint64LE(n.length,l),a.update(l);for(var u=a.digest(),h=0;h{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309),o=20;function s(e,t,n){for(var i=1634760805,s=857760878,a=2036477234,c=1797285236,l=n[3]<<24|n[2]<<16|n[1]<<8|n[0],u=n[7]<<24|n[6]<<16|n[5]<<8|n[4],h=n[11]<<24|n[10]<<16|n[9]<<8|n[8],d=n[15]<<24|n[14]<<16|n[13]<<8|n[12],f=n[19]<<24|n[18]<<16|n[17]<<8|n[16],p=n[23]<<24|n[22]<<16|n[21]<<8|n[20],g=n[27]<<24|n[26]<<16|n[25]<<8|n[24],y=n[31]<<24|n[30]<<16|n[29]<<8|n[28],b=t[3]<<24|t[2]<<16|t[1]<<8|t[0],m=t[7]<<24|t[6]<<16|t[5]<<8|t[4],v=t[11]<<24|t[10]<<16|t[9]<<8|t[8],w=t[15]<<24|t[14]<<16|t[13]<<8|t[12],E=i,S=s,I=a,R=c,A=l,x=u,M=h,T=d,O=f,P=p,N=g,k=y,C=b,U=m,L=v,j=w,z=0;z>>16|C<<16)|0)>>>20|A<<12,x=(x^=P=P+(U=(U^=S=S+x|0)>>>16|U<<16)|0)>>>20|x<<12,M=(M^=N=N+(L=(L^=I=I+M|0)>>>16|L<<16)|0)>>>20|M<<12,T=(T^=k=k+(j=(j^=R=R+T|0)>>>16|j<<16)|0)>>>20|T<<12,M=(M^=N=N+(L=(L^=I=I+M|0)>>>24|L<<8)|0)>>>25|M<<7,T=(T^=k=k+(j=(j^=R=R+T|0)>>>24|j<<8)|0)>>>25|T<<7,x=(x^=P=P+(U=(U^=S=S+x|0)>>>24|U<<8)|0)>>>25|x<<7,A=(A^=O=O+(C=(C^=E=E+A|0)>>>24|C<<8)|0)>>>25|A<<7,x=(x^=N=N+(j=(j^=E=E+x|0)>>>16|j<<16)|0)>>>20|x<<12,M=(M^=k=k+(C=(C^=S=S+M|0)>>>16|C<<16)|0)>>>20|M<<12,T=(T^=O=O+(U=(U^=I=I+T|0)>>>16|U<<16)|0)>>>20|T<<12,A=(A^=P=P+(L=(L^=R=R+A|0)>>>16|L<<16)|0)>>>20|A<<12,T=(T^=O=O+(U=(U^=I=I+T|0)>>>24|U<<8)|0)>>>25|T<<7,A=(A^=P=P+(L=(L^=R=R+A|0)>>>24|L<<8)|0)>>>25|A<<7,M=(M^=k=k+(C=(C^=S=S+M|0)>>>24|C<<8)|0)>>>25|M<<7,x=(x^=N=N+(j=(j^=E=E+x|0)>>>24|j<<8)|0)>>>25|x<<7;r.writeUint32LE(E+i|0,e,0),r.writeUint32LE(S+s|0,e,4),r.writeUint32LE(I+a|0,e,8),r.writeUint32LE(R+c|0,e,12),r.writeUint32LE(A+l|0,e,16),r.writeUint32LE(x+u|0,e,20),r.writeUint32LE(M+h|0,e,24),r.writeUint32LE(T+d|0,e,28),r.writeUint32LE(O+f|0,e,32),r.writeUint32LE(P+p|0,e,36),r.writeUint32LE(N+g|0,e,40),r.writeUint32LE(k+y|0,e,44),r.writeUint32LE(C+b|0,e,48),r.writeUint32LE(U+m|0,e,52),r.writeUint32LE(L+v|0,e,56),r.writeUint32LE(j+w|0,e,60)}function a(e,t,n,r,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("ChaCha: key size must be 32 bytes");if(r.length>>=8,t++;if(r>0)throw new Error("ChaCha: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,r){return void 0===r&&(r=0),i.wipe(n),a(e,t,n,n,r)}},4153:(e,t)=>{"use strict";function n(e,t){if(e.length!==t.length)return 0;for(var n=0,r=0;r>>8}Object.defineProperty(t,"__esModule",{value:!0}),t.select=function(e,t,n){return~(e-1)&t|e-1&n},t.lessOrEqual=function(e,t){return(0|e)-(0|t)-1>>>31&1},t.compare=n,t.equal=function(e,t){return 0!==e.length&&0!==t.length&&0!==n(e,t)}},1050:(e,t,n)=>{"use strict";t.zh=t.SH=t.Xx=t._w=t.aP=t.KS=t.jQ=void 0;const r=n(1416),i=n(3350),o=n(7309);function s(e){const t=new Float64Array(16);if(e)for(let n=0;n>16&1),n[e-1]&=65535;n[15]=r[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,y(r,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&r[t],e[2*t+1]=r[t]>>8}function m(e,t){let n=0;for(let r=0;r<32;r++)n|=e[r]^t[r];return(1&n-1>>>8)-1}function v(e,t){const n=new Uint8Array(32),r=new Uint8Array(32);return b(n,e),b(r,t),m(n,r)}function w(e){const t=new Uint8Array(32);return b(t,e),1&t[0]}function E(e,t,n){for(let r=0;r<16;r++)e[r]=t[r]+n[r]}function S(e,t,n){for(let r=0;r<16;r++)e[r]=t[r]-n[r]}function I(e,t,n){let r,i,o=0,s=0,a=0,c=0,l=0,u=0,h=0,d=0,f=0,p=0,g=0,y=0,b=0,m=0,v=0,w=0,E=0,S=0,I=0,R=0,A=0,x=0,M=0,T=0,O=0,P=0,N=0,k=0,C=0,U=0,L=0,j=n[0],z=n[1],K=n[2],q=n[3],D=n[4],B=n[5],W=n[6],F=n[7],V=n[8],H=n[9],G=n[10],J=n[11],Z=n[12],Y=n[13],Q=n[14],X=n[15];r=t[0],o+=r*j,s+=r*z,a+=r*K,c+=r*q,l+=r*D,u+=r*B,h+=r*W,d+=r*F,f+=r*V,p+=r*H,g+=r*G,y+=r*J,b+=r*Z,m+=r*Y,v+=r*Q,w+=r*X,r=t[1],s+=r*j,a+=r*z,c+=r*K,l+=r*q,u+=r*D,h+=r*B,d+=r*W,f+=r*F,p+=r*V,g+=r*H,y+=r*G,b+=r*J,m+=r*Z,v+=r*Y,w+=r*Q,E+=r*X,r=t[2],a+=r*j,c+=r*z,l+=r*K,u+=r*q,h+=r*D,d+=r*B,f+=r*W,p+=r*F,g+=r*V,y+=r*H,b+=r*G,m+=r*J,v+=r*Z,w+=r*Y,E+=r*Q,S+=r*X,r=t[3],c+=r*j,l+=r*z,u+=r*K,h+=r*q,d+=r*D,f+=r*B,p+=r*W,g+=r*F,y+=r*V,b+=r*H,m+=r*G,v+=r*J,w+=r*Z,E+=r*Y,S+=r*Q,I+=r*X,r=t[4],l+=r*j,u+=r*z,h+=r*K,d+=r*q,f+=r*D,p+=r*B,g+=r*W,y+=r*F,b+=r*V,m+=r*H,v+=r*G,w+=r*J,E+=r*Z,S+=r*Y,I+=r*Q,R+=r*X,r=t[5],u+=r*j,h+=r*z,d+=r*K,f+=r*q,p+=r*D,g+=r*B,y+=r*W,b+=r*F,m+=r*V,v+=r*H,w+=r*G,E+=r*J,S+=r*Z,I+=r*Y,R+=r*Q,A+=r*X,r=t[6],h+=r*j,d+=r*z,f+=r*K,p+=r*q,g+=r*D,y+=r*B,b+=r*W,m+=r*F,v+=r*V,w+=r*H,E+=r*G,S+=r*J,I+=r*Z,R+=r*Y,A+=r*Q,x+=r*X,r=t[7],d+=r*j,f+=r*z,p+=r*K,g+=r*q,y+=r*D,b+=r*B,m+=r*W,v+=r*F,w+=r*V,E+=r*H,S+=r*G,I+=r*J,R+=r*Z,A+=r*Y,x+=r*Q,M+=r*X,r=t[8],f+=r*j,p+=r*z,g+=r*K,y+=r*q,b+=r*D,m+=r*B,v+=r*W,w+=r*F,E+=r*V,S+=r*H,I+=r*G,R+=r*J,A+=r*Z,x+=r*Y,M+=r*Q,T+=r*X,r=t[9],p+=r*j,g+=r*z,y+=r*K,b+=r*q,m+=r*D,v+=r*B,w+=r*W,E+=r*F,S+=r*V,I+=r*H,R+=r*G,A+=r*J,x+=r*Z,M+=r*Y,T+=r*Q,O+=r*X,r=t[10],g+=r*j,y+=r*z,b+=r*K,m+=r*q,v+=r*D,w+=r*B,E+=r*W,S+=r*F,I+=r*V,R+=r*H,A+=r*G,x+=r*J,M+=r*Z,T+=r*Y,O+=r*Q,P+=r*X,r=t[11],y+=r*j,b+=r*z,m+=r*K,v+=r*q,w+=r*D,E+=r*B,S+=r*W,I+=r*F,R+=r*V,A+=r*H,x+=r*G,M+=r*J,T+=r*Z,O+=r*Y,P+=r*Q,N+=r*X,r=t[12],b+=r*j,m+=r*z,v+=r*K,w+=r*q,E+=r*D,S+=r*B,I+=r*W,R+=r*F,A+=r*V,x+=r*H,M+=r*G,T+=r*J,O+=r*Z,P+=r*Y,N+=r*Q,k+=r*X,r=t[13],m+=r*j,v+=r*z,w+=r*K,E+=r*q,S+=r*D,I+=r*B,R+=r*W,A+=r*F,x+=r*V,M+=r*H,T+=r*G,O+=r*J,P+=r*Z,N+=r*Y,k+=r*Q,C+=r*X,r=t[14],v+=r*j,w+=r*z,E+=r*K,S+=r*q,I+=r*D,R+=r*B,A+=r*W,x+=r*F,M+=r*V,T+=r*H,O+=r*G,P+=r*J,N+=r*Z,k+=r*Y,C+=r*Q,U+=r*X,r=t[15],w+=r*j,E+=r*z,S+=r*K,I+=r*q,R+=r*D,A+=r*B,x+=r*W,M+=r*F,T+=r*V,O+=r*H,P+=r*G,N+=r*J,k+=r*Z,C+=r*Y,U+=r*Q,L+=r*X,o+=38*E,s+=38*S,a+=38*I,c+=38*R,l+=38*A,u+=38*x,h+=38*M,d+=38*T,f+=38*O,p+=38*P,g+=38*N,y+=38*k,b+=38*C,m+=38*U,v+=38*L,i=1,r=o+i+65535,i=Math.floor(r/65536),o=r-65536*i,r=s+i+65535,i=Math.floor(r/65536),s=r-65536*i,r=a+i+65535,i=Math.floor(r/65536),a=r-65536*i,r=c+i+65535,i=Math.floor(r/65536),c=r-65536*i,r=l+i+65535,i=Math.floor(r/65536),l=r-65536*i,r=u+i+65535,i=Math.floor(r/65536),u=r-65536*i,r=h+i+65535,i=Math.floor(r/65536),h=r-65536*i,r=d+i+65535,i=Math.floor(r/65536),d=r-65536*i,r=f+i+65535,i=Math.floor(r/65536),f=r-65536*i,r=p+i+65535,i=Math.floor(r/65536),p=r-65536*i,r=g+i+65535,i=Math.floor(r/65536),g=r-65536*i,r=y+i+65535,i=Math.floor(r/65536),y=r-65536*i,r=b+i+65535,i=Math.floor(r/65536),b=r-65536*i,r=m+i+65535,i=Math.floor(r/65536),m=r-65536*i,r=v+i+65535,i=Math.floor(r/65536),v=r-65536*i,r=w+i+65535,i=Math.floor(r/65536),w=r-65536*i,o+=i-1+37*(i-1),i=1,r=o+i+65535,i=Math.floor(r/65536),o=r-65536*i,r=s+i+65535,i=Math.floor(r/65536),s=r-65536*i,r=a+i+65535,i=Math.floor(r/65536),a=r-65536*i,r=c+i+65535,i=Math.floor(r/65536),c=r-65536*i,r=l+i+65535,i=Math.floor(r/65536),l=r-65536*i,r=u+i+65535,i=Math.floor(r/65536),u=r-65536*i,r=h+i+65535,i=Math.floor(r/65536),h=r-65536*i,r=d+i+65535,i=Math.floor(r/65536),d=r-65536*i,r=f+i+65535,i=Math.floor(r/65536),f=r-65536*i,r=p+i+65535,i=Math.floor(r/65536),p=r-65536*i,r=g+i+65535,i=Math.floor(r/65536),g=r-65536*i,r=y+i+65535,i=Math.floor(r/65536),y=r-65536*i,r=b+i+65535,i=Math.floor(r/65536),b=r-65536*i,r=m+i+65535,i=Math.floor(r/65536),m=r-65536*i,r=v+i+65535,i=Math.floor(r/65536),v=r-65536*i,r=w+i+65535,i=Math.floor(r/65536),w=r-65536*i,o+=i-1+37*(i-1),e[0]=o,e[1]=s,e[2]=a,e[3]=c,e[4]=l,e[5]=u,e[6]=h,e[7]=d,e[8]=f,e[9]=p,e[10]=g,e[11]=y,e[12]=b,e[13]=m,e[14]=v,e[15]=w}function R(e,t){I(e,t,t)}function A(e,t){const n=s();let r;for(r=0;r<16;r++)n[r]=t[r];for(r=253;r>=0;r--)R(n,n),2!==r&&4!==r&&I(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}function x(e,t){const n=s(),r=s(),i=s(),o=s(),a=s(),c=s(),l=s(),h=s(),d=s();S(n,e[1],e[0]),S(d,t[1],t[0]),I(n,n,d),E(r,e[0],e[1]),E(d,t[0],t[1]),I(r,r,d),I(i,e[3],t[3]),I(i,i,u),I(o,e[2],t[2]),E(o,o,o),S(a,r,n),S(c,o,i),E(l,o,i),E(h,r,n),I(e[0],a,c),I(e[1],h,l),I(e[2],l,c),I(e[3],a,h)}function M(e,t,n){for(let r=0;r<4;r++)y(e[r],t[r],n)}function T(e,t){const n=s(),r=s(),i=s();A(i,t[2]),I(n,t[0],i),I(r,t[1],i),b(e,r),e[31]^=w(n)<<7}function O(e,t,n){p(e[0],a),p(e[1],c),p(e[2],c),p(e[3],a);for(let r=255;r>=0;--r){const i=n[r/8|0]>>(7&r)&1;M(e,t,i),x(t,e),x(e,e),M(e,t,i)}}function P(e,t){const n=[s(),s(),s(),s()];p(n[0],h),p(n[1],d),p(n[2],c),I(n[3],h,d),O(e,n,t)}function N(e){if(e.length!==t.aP)throw new Error(`ed25519: seed must be ${t.aP} bytes`);const n=(0,i.hash)(e);n[0]&=248,n[31]&=127,n[31]|=64;const r=new Uint8Array(32),o=[s(),s(),s(),s()];P(o,n),T(r,o);const a=new Uint8Array(64);return a.set(e),a.set(r,32),{publicKey:r,secretKey:a}}t._w=N;const k=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function C(e,t){let n,r,i,o;for(r=63;r>=32;--r){for(n=0,i=r-32,o=r-12;i>4)*k[i],n=t[i]>>8,t[i]&=255;for(i=0;i<32;i++)t[i]-=n*k[i];for(r=0;r<32;r++)t[r+1]+=t[r]>>8,e[r]=255&t[r]}function U(e){const t=new Float64Array(64);for(let n=0;n<64;n++)t[n]=e[n];for(let t=0;t<64;t++)e[t]=0;C(e,t)}function L(e,t){const n=s(),r=s(),i=s(),o=s(),u=s(),h=s(),d=s();return p(e[2],c),function(e,t){for(let n=0;n<16;n++)e[n]=t[2*n]+(t[2*n+1]<<8);e[15]&=32767}(e[1],t),R(i,e[1]),I(o,i,l),S(i,i,e[2]),E(o,e[2],o),R(u,o),R(h,u),I(d,h,u),I(n,d,i),I(n,n,o),function(e,t){const n=s();let r;for(r=0;r<16;r++)n[r]=t[r];for(r=250;r>=0;r--)R(n,n),1!==r&&I(n,n,t);for(r=0;r<16;r++)e[r]=n[r]}(n,n),I(n,n,i),I(n,n,o),I(n,n,o),I(e[0],n,o),R(r,e[0]),I(r,r,o),v(r,i)&&I(e[0],e[0],f),R(r,e[0]),I(r,r,o),v(r,i)?-1:(w(e[0])===t[31]>>7&&S(e[0],a,e[0]),I(e[3],e[0],e[1]),0)}t.Xx=function(e,t){const n=new Float64Array(64),r=[s(),s(),s(),s()],o=(0,i.hash)(e.subarray(0,32));o[0]&=248,o[31]&=127,o[31]|=64;const a=new Uint8Array(64);a.set(o.subarray(32),32);const c=new i.SHA512;c.update(a.subarray(32)),c.update(t);const l=c.digest();c.clean(),U(l),P(r,l),T(a,r),c.reset(),c.update(a.subarray(0,32)),c.update(e.subarray(32)),c.update(t);const u=c.digest();U(u);for(let e=0;e<32;e++)n[e]=l[e];for(let e=0;e<32;e++)for(let t=0;t<32;t++)n[e+t]+=u[e]*o[t];return C(a.subarray(32),n),a},t.SH=function(e){let t=[s(),s(),s(),s()];if(L(t,e))throw new Error("Ed25519: invalid public key");let n=s(),r=s(),i=t[1];E(n,c,i),S(r,c,i),A(r,r),I(n,n,r);let o=new Uint8Array(32);return b(o,n),o},t.zh=function(e){const t=(0,i.hash)(e.subarray(0,32));t[0]&=248,t[31]&=127,t[31]|=64;const n=new Uint8Array(t.subarray(0,32));return(0,o.wipe)(t),n}},9984:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isSerializableHash=function(e){return void 0!==e.saveState&&void 0!==e.restoreState&&void 0!==e.cleanSavedState}},512:(e,t,n)=>{"use strict";var r=n(5629),i=n(7309),o=function(){function e(e,t,n,i){void 0===n&&(n=new Uint8Array(0)),this._counter=new Uint8Array(1),this._hash=e,this._info=i;var o=r.hmac(this._hash,n,t);this._hmac=new r.HMAC(e,o),this._buffer=new Uint8Array(this._hmac.digestLength),this._bufpos=this._buffer.length}return e.prototype._fillBuffer=function(){this._counter[0]++;var e=this._counter[0];if(0===e)throw new Error("hkdf: cannot expand more");this._hmac.reset(),e>1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0},e.prototype.expand=function(e){for(var t=new Uint8Array(e),n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(9984),i=n(4153),o=n(7309),s=function(){function e(e,t){this._finished=!1,this._inner=new e,this._outer=new e,this.blockSize=this._outer.blockSize,this.digestLength=this._outer.digestLength;var n=new Uint8Array(this.blockSize);t.length>this.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(var i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mul=Math.imul||function(e,t){var n=65535&e,r=65535&t;return n*r+((e>>>16&65535)*r+n*(t>>>16&65535)<<16>>>0)|0},t.add=function(e,t){return e+t|0},t.sub=function(e,t){return e-t|0},t.rotl=function(e,t){return e<>>32-t},t.rotr=function(e,t){return e<<32-t|e>>>t},t.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},t.MAX_SAFE_INTEGER=9007199254740991,t.isSafeInteger=function(e){return t.isInteger(e)&&e>=-t.MAX_SAFE_INTEGER&&e<=t.MAX_SAFE_INTEGER}},19:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.openBox=t.box=t.precomputeSharedKey=t.generateKeyPair=void 0;const r=n(7664),i=n(7025),o=n(7801),s=n(7309);var a=n(7664);Object.defineProperty(t,"generateKeyPair",{enumerable:!0,get:function(){return a.generateKeyPair}});const c=new Uint8Array(16);function l(e,t){const n=(0,r.scalarMult)(t,e);return(0,i.hsalsa)(n,c,n),n}t.precomputeSharedKey=l,t.box=function(e,t,n,r){const i=l(e,t),a=(0,o.secretBox)(i,n,r);return(0,s.wipe)(i),a},t.openBox=function(e,t,n,r){const i=l(e,t),a=(0,o.openSecretBox)(i,n,r);return(0,s.wipe)(i),a}},450:function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),i=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),i(n(19),t),i(n(7801),t)},7801:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateKey=t.openSecretBox=t.secretBox=void 0;const r=n(7025),i=n(3027),o=n(7309),s=n(1416);t.secretBox=function(e,t,n){if(24!==t.length)throw new Error("secretBox nonce must be 24 bytes");const s=new Uint8Array(64),a=new Uint8Array(32);a.set(t),(0,r.stream)(e,a,s,8);const c=new Uint8Array(16+n.length);for(let e=0;e<32&&e32&&(0,r.streamXOR)(e,a,n.subarray(32),c.subarray(48),8);const l=(0,i.oneTimeAuth)(s.subarray(0,32),c.subarray(16));for(let e=0;e32&&(0,r.streamXOR)(e,a,l.subarray(32),u.subarray(32),8),(0,o.wipe)(c),(0,o.wipe)(s),(0,o.wipe)(a),u},t.generateKey=function(e){return(0,s.randomBytes)(32,e)}},3027:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(4153),i=n(7309);t.DIGEST_LENGTH=16;var o=function(){function e(e){this.digestLength=t.DIGEST_LENGTH,this._buffer=new Uint8Array(16),this._r=new Uint16Array(10),this._h=new Uint16Array(10),this._pad=new Uint16Array(8),this._leftover=0,this._fin=0,this._finished=!1;var n=e[0]|e[1]<<8;this._r[0]=8191&n;var r=e[2]|e[3]<<8;this._r[1]=8191&(n>>>13|r<<3);var i=e[4]|e[5]<<8;this._r[2]=7939&(r>>>10|i<<6);var o=e[6]|e[7]<<8;this._r[3]=8191&(i>>>7|o<<9);var s=e[8]|e[9]<<8;this._r[4]=255&(o>>>4|s<<12),this._r[5]=s>>>1&8190;var a=e[10]|e[11]<<8;this._r[6]=8191&(s>>>14|a<<2);var c=e[12]|e[13]<<8;this._r[7]=8065&(a>>>11|c<<5);var l=e[14]|e[15]<<8;this._r[8]=8191&(c>>>8|l<<8),this._r[9]=l>>>5&127,this._pad[0]=e[16]|e[17]<<8,this._pad[1]=e[18]|e[19]<<8,this._pad[2]=e[20]|e[21]<<8,this._pad[3]=e[22]|e[23]<<8,this._pad[4]=e[24]|e[25]<<8,this._pad[5]=e[26]|e[27]<<8,this._pad[6]=e[28]|e[29]<<8,this._pad[7]=e[30]|e[31]<<8}return e.prototype._blocks=function(e,t,n){for(var r=this._fin?0:2048,i=this._h[0],o=this._h[1],s=this._h[2],a=this._h[3],c=this._h[4],l=this._h[5],u=this._h[6],h=this._h[7],d=this._h[8],f=this._h[9],p=this._r[0],g=this._r[1],y=this._r[2],b=this._r[3],m=this._r[4],v=this._r[5],w=this._r[6],E=this._r[7],S=this._r[8],I=this._r[9];n>=16;){var R=e[t+0]|e[t+1]<<8;i+=8191&R;var A=e[t+2]|e[t+3]<<8;o+=8191&(R>>>13|A<<3);var x=e[t+4]|e[t+5]<<8;s+=8191&(A>>>10|x<<6);var M=e[t+6]|e[t+7]<<8;a+=8191&(x>>>7|M<<9);var T=e[t+8]|e[t+9]<<8;c+=8191&(M>>>4|T<<12),l+=T>>>1&8191;var O=e[t+10]|e[t+11]<<8;u+=8191&(T>>>14|O<<2);var P=e[t+12]|e[t+13]<<8;h+=8191&(O>>>11|P<<5);var N=e[t+14]|e[t+15]<<8,k=0,C=k;C+=i*p,C+=o*(5*I),C+=s*(5*S),C+=a*(5*E),k=(C+=c*(5*w))>>>13,C&=8191,C+=l*(5*v),C+=u*(5*m),C+=h*(5*b),C+=(d+=8191&(P>>>8|N<<8))*(5*y);var U=k+=(C+=(f+=N>>>5|r)*(5*g))>>>13;U+=i*g,U+=o*p,U+=s*(5*I),U+=a*(5*S),k=(U+=c*(5*E))>>>13,U&=8191,U+=l*(5*w),U+=u*(5*v),U+=h*(5*m),U+=d*(5*b),k+=(U+=f*(5*y))>>>13,U&=8191;var L=k;L+=i*y,L+=o*g,L+=s*p,L+=a*(5*I),k=(L+=c*(5*S))>>>13,L&=8191,L+=l*(5*E),L+=u*(5*w),L+=h*(5*v),L+=d*(5*m);var j=k+=(L+=f*(5*b))>>>13;j+=i*b,j+=o*y,j+=s*g,j+=a*p,k=(j+=c*(5*I))>>>13,j&=8191,j+=l*(5*S),j+=u*(5*E),j+=h*(5*w),j+=d*(5*v);var z=k+=(j+=f*(5*m))>>>13;z+=i*m,z+=o*b,z+=s*y,z+=a*g,k=(z+=c*p)>>>13,z&=8191,z+=l*(5*I),z+=u*(5*S),z+=h*(5*E),z+=d*(5*w);var K=k+=(z+=f*(5*v))>>>13;K+=i*v,K+=o*m,K+=s*b,K+=a*y,k=(K+=c*g)>>>13,K&=8191,K+=l*p,K+=u*(5*I),K+=h*(5*S),K+=d*(5*E);var q=k+=(K+=f*(5*w))>>>13;q+=i*w,q+=o*v,q+=s*m,q+=a*b,k=(q+=c*y)>>>13,q&=8191,q+=l*g,q+=u*p,q+=h*(5*I),q+=d*(5*S);var D=k+=(q+=f*(5*E))>>>13;D+=i*E,D+=o*w,D+=s*v,D+=a*m,k=(D+=c*b)>>>13,D&=8191,D+=l*y,D+=u*g,D+=h*p,D+=d*(5*I);var B=k+=(D+=f*(5*S))>>>13;B+=i*S,B+=o*E,B+=s*w,B+=a*v,k=(B+=c*m)>>>13,B&=8191,B+=l*b,B+=u*y,B+=h*g,B+=d*p;var W=k+=(B+=f*(5*I))>>>13;W+=i*I,W+=o*S,W+=s*E,W+=a*w,k=(W+=c*v)>>>13,W&=8191,W+=l*m,W+=u*b,W+=h*y,W+=d*g,i=C=8191&(k=(k=((k+=(W+=f*p)>>>13)<<2)+k|0)+(C&=8191)|0),o=U+=k>>>=13,s=L&=8191,a=j&=8191,c=z&=8191,l=K&=8191,u=q&=8191,h=D&=8191,d=B&=8191,f=W&=8191,t+=16,n-=16}this._h[0]=i,this._h[1]=o,this._h[2]=s,this._h[3]=a,this._h[4]=c,this._h[5]=l,this._h[6]=u,this._h[7]=h,this._h[8]=d,this._h[9]=f},e.prototype.finish=function(e,t){void 0===t&&(t=0);var n,r,i,o,s=new Uint16Array(10);if(this._leftover){for(o=this._leftover,this._buffer[o++]=1;o<16;o++)this._buffer[o]=0;this._fin=1,this._blocks(this._buffer,0,16)}for(n=this._h[1]>>>13,this._h[1]&=8191,o=2;o<10;o++)this._h[o]+=n,n=this._h[o]>>>13,this._h[o]&=8191;for(this._h[0]+=5*n,n=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=n,n=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=n,s[0]=this._h[0]+5,n=s[0]>>>13,s[0]&=8191,o=1;o<10;o++)s[o]=this._h[o]+n,n=s[o]>>>13,s[o]&=8191;for(s[9]-=8192,r=(1^n)-1,o=0;o<10;o++)s[o]&=r;for(r=~r,o=0;o<10;o++)this._h[o]=this._h[o]&r|s[o];for(this._h[0]=65535&(this._h[0]|this._h[1]<<13),this._h[1]=65535&(this._h[1]>>>3|this._h[2]<<10),this._h[2]=65535&(this._h[2]>>>6|this._h[3]<<7),this._h[3]=65535&(this._h[3]>>>9|this._h[4]<<4),this._h[4]=65535&(this._h[4]>>>12|this._h[5]<<1|this._h[6]<<14),this._h[5]=65535&(this._h[6]>>>2|this._h[7]<<11),this._h[6]=65535&(this._h[7]>>>5|this._h[8]<<8),this._h[7]=65535&(this._h[8]>>>8|this._h[9]<<5),i=this._h[0]+this._pad[0],this._h[0]=65535&i,o=1;o<8;o++)i=(this._h[o]+this._pad[o]|0)+(i>>>16)|0,this._h[o]=65535&i;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this},e.prototype.update=function(e){var t,n=0,r=e.length;if(this._leftover){(t=16-this._leftover)>r&&(t=r);for(var i=0;i=16&&(t=r-r%16,this._blocks(e,n,t),n+=t,r-=t),r){for(i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.randomStringForEntropy=t.randomString=t.randomUint32=t.randomBytes=t.defaultRandomSource=void 0;const r=n(6008),i=n(8099),o=n(7309);function s(e,n=t.defaultRandomSource){return n.randomBytes(e)}t.defaultRandomSource=new r.SystemRandomSource,t.randomBytes=s,t.randomUint32=function(e=t.defaultRandomSource){const n=s(4,e),r=(0,i.readUint32LE)(n);return(0,o.wipe)(n),r};const a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";function c(e,n=a,r=t.defaultRandomSource){if(n.length<2)throw new Error("randomString charset is too short");if(n.length>256)throw new Error("randomString charset is too long");let i="";const c=n.length,l=256-256%c;for(;e>0;){const t=s(Math.ceil(256*e/l),r);for(let r=0;r0;r++){const o=t[r];o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserRandomSource=void 0;t.BrowserRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;const e="undefined"!=typeof self?self.crypto||self.msCrypto:null;e&&void 0!==e.getRandomValues&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Browser random byte generator is not available.");const t=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeRandomSource=void 0;const r=n(7309);t.NodeRandomSource=class{constructor(){this.isAvailable=!1,this.isInstantiated=!1;{const e=n(5883);e&&e.randomBytes&&(this._crypto=e,this.isAvailable=!0,this.isInstantiated=!0)}}randomBytes(e){if(!this.isAvailable||!this._crypto)throw new Error("Node.js random byte generator is not available.");let t=this._crypto.randomBytes(e);if(t.length!==e)throw new Error("NodeRandomSource: got fewer bytes than requested");const n=new Uint8Array(e);for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SystemRandomSource=void 0;const r=n(5455),i=n(8871);t.SystemRandomSource=class{constructor(){return this.isAvailable=!1,this.name="",this._source=new r.BrowserRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Browser")):(this._source=new i.NodeRandomSource,this._source.isAvailable?(this.isAvailable=!0,void(this.name="Node")):void 0)}randomBytes(e){if(!this.isAvailable)throw new Error("System random byte generator is not available.");return this._source.randomBytes(e)}}},7318:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309),o=20;function s(e,t,n){for(var i,s=1634760805,a=n[3]<<24|n[2]<<16|n[1]<<8|n[0],c=n[7]<<24|n[6]<<16|n[5]<<8|n[4],l=n[11]<<24|n[10]<<16|n[9]<<8|n[8],u=n[15]<<24|n[14]<<16|n[13]<<8|n[12],h=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=n[19]<<24|n[18]<<16|n[17]<<8|n[16],m=n[23]<<24|n[22]<<16|n[21]<<8|n[20],v=n[27]<<24|n[26]<<16|n[25]<<8|n[24],w=n[31]<<24|n[30]<<16|n[29]<<8|n[28],E=1797285236,S=s,I=a,R=c,A=l,x=u,M=h,T=d,O=f,P=p,N=g,k=y,C=b,U=m,L=v,j=w,z=E,K=0;K>>25)+S|0)<<9|i>>>23)+x|0)<<13|i>>>19)+P|0)<<18|i>>>14,M^=(i=(I^=(i=(L^=(i=(N^=(i=M+I|0)<<7|i>>>25)+M|0)<<9|i>>>23)+N|0)<<13|i>>>19)+L|0)<<18|i>>>14,k^=(i=(T^=(i=(R^=(i=(j^=(i=k+T|0)<<7|i>>>25)+k|0)<<9|i>>>23)+j|0)<<13|i>>>19)+R|0)<<18|i>>>14,z^=(i=(C^=(i=(O^=(i=(A^=(i=z+C|0)<<7|i>>>25)+z|0)<<9|i>>>23)+A|0)<<13|i>>>19)+O|0)<<18|i>>>14,S^=(i=(A^=(i=(R^=(i=(I^=(i=S+A|0)<<7|i>>>25)+S|0)<<9|i>>>23)+I|0)<<13|i>>>19)+R|0)<<18|i>>>14,M^=(i=(x^=(i=(O^=(i=(T^=(i=M+x|0)<<7|i>>>25)+M|0)<<9|i>>>23)+T|0)<<13|i>>>19)+O|0)<<18|i>>>14,k^=(i=(N^=(i=(P^=(i=(C^=(i=k+N|0)<<7|i>>>25)+k|0)<<9|i>>>23)+C|0)<<13|i>>>19)+P|0)<<18|i>>>14,z^=(i=(j^=(i=(L^=(i=(U^=(i=z+j|0)<<7|i>>>25)+z|0)<<9|i>>>23)+U|0)<<13|i>>>19)+L|0)<<18|i>>>14;r.writeUint32LE(S+s|0,e,0),r.writeUint32LE(I+a|0,e,4),r.writeUint32LE(R+c|0,e,8),r.writeUint32LE(A+l|0,e,12),r.writeUint32LE(x+u|0,e,16),r.writeUint32LE(M+h|0,e,20),r.writeUint32LE(T+d|0,e,24),r.writeUint32LE(O+f|0,e,28),r.writeUint32LE(P+p|0,e,32),r.writeUint32LE(N+g|0,e,36),r.writeUint32LE(k+y|0,e,40),r.writeUint32LE(C+b|0,e,44),r.writeUint32LE(U+m|0,e,48),r.writeUint32LE(L+v|0,e,52),r.writeUint32LE(j+w|0,e,56),r.writeUint32LE(z+E|0,e,60)}function a(e,t,n,r,o){if(void 0===o&&(o=0),32!==e.length)throw new Error("Salsa20: key size must be 32 bytes");if(r.length>>=8,t++;if(r>0)throw new Error("Salsa20: counter overflow")}t.streamXOR=a,t.stream=function(e,t,n,r){return void 0===r&&(r=0),i.wipe(n),a(e,t,n,n,r)}},3294:(e,t,n)=>{"use strict";var r=n(8099),i=n(7309);t.k=32,t.cn=64;var o=function(){function e(){this.digestLength=t.k,this.blockSize=t.cn,this._state=new Int32Array(8),this._temp=new Int32Array(64),this._buffer=new Uint8Array(128),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._state[0]=1779033703,this._state[1]=3144134277,this._state[2]=1013904242,this._state[3]=2773480762,this._state[4]=1359893119,this._state[5]=2600822924,this._state[6]=528734635,this._state[7]=1541459225},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){i.wipe(this._buffer),i.wipe(this._temp),this.reset()},e.prototype.update=function(e,t){if(void 0===t&&(t=e.length),this._finished)throw new Error("SHA256: can't update because hash was finished.");var n=0;if(this._bytesHashed+=t,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[n++],t--;this._bufferLength===this.blockSize&&(a(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(n=a(this._temp,this._state,e,n,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[n++],t--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,i=t/536870912|0,o=t<<3,s=t%64<56?64:128;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){i.wipe(e.state),e.buffer&&i.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.mE=o;var s=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function a(e,t,n,i,o){for(;o>=64;){for(var a=t[0],c=t[1],l=t[2],u=t[3],h=t[4],d=t[5],f=t[6],p=t[7],g=0;g<16;g++){var y=i+4*g;e[g]=r.readUint32BE(n,y)}for(g=16;g<64;g++){var b=e[g-2],m=(b>>>17|b<<15)^(b>>>19|b<<13)^b>>>10,v=((b=e[g-15])>>>7|b<<25)^(b>>>18|b<<14)^b>>>3;e[g]=(m+e[g-7]|0)+(v+e[g-16]|0)}for(g=0;g<64;g++){m=(((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(h&d^~h&f)|0)+(p+(s[g]+e[g]|0)|0)|0,v=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&c^a&l^c&l)|0;p=f,f=d,d=h,h=u+m|0,u=l,l=c,c=a,a=m+v|0}t[0]+=a,t[1]+=c,t[2]+=l,t[3]+=u,t[4]+=h,t[5]+=d,t[6]+=f,t[7]+=p,i+=64,o-=64}return i}t.vp=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},3350:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7309);t.DIGEST_LENGTH=64,t.BLOCK_SIZE=128;var o=function(){function e(){this.digestLength=t.DIGEST_LENGTH,this.blockSize=t.BLOCK_SIZE,this._stateHi=new Int32Array(8),this._stateLo=new Int32Array(8),this._tempHi=new Int32Array(16),this._tempLo=new Int32Array(16),this._buffer=new Uint8Array(256),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this.reset()}return e.prototype._initState=function(){this._stateHi[0]=1779033703,this._stateHi[1]=3144134277,this._stateHi[2]=1013904242,this._stateHi[3]=2773480762,this._stateHi[4]=1359893119,this._stateHi[5]=2600822924,this._stateHi[6]=528734635,this._stateHi[7]=1541459225,this._stateLo[0]=4089235720,this._stateLo[1]=2227873595,this._stateLo[2]=4271175723,this._stateLo[3]=1595750129,this._stateLo[4]=2917565137,this._stateLo[5]=725511199,this._stateLo[6]=4215389547,this._stateLo[7]=327033209},e.prototype.reset=function(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this},e.prototype.clean=function(){i.wipe(this._buffer),i.wipe(this._tempHi),i.wipe(this._tempLo),this.reset()},e.prototype.update=function(e,n){if(void 0===n&&(n=e.length),this._finished)throw new Error("SHA512: can't update because hash was finished.");var r=0;if(this._bytesHashed+=n,this._bufferLength>0){for(;this._bufferLength0;)this._buffer[this._bufferLength++]=e[r++],n--;this._bufferLength===this.blockSize&&(a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,this._buffer,0,this.blockSize),this._bufferLength=0)}for(n>=this.blockSize&&(r=a(this._tempHi,this._tempLo,this._stateHi,this._stateLo,e,r,n),n%=this.blockSize);n>0;)this._buffer[this._bufferLength++]=e[r++],n--;return this},e.prototype.finish=function(e){if(!this._finished){var t=this._bytesHashed,n=this._bufferLength,i=t/536870912|0,o=t<<3,s=t%128<112?128:256;this._buffer[n]=128;for(var c=n+1;c0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}},e.prototype.restoreState=function(e){return this._stateHi.set(e.stateHi),this._stateLo.set(e.stateLo),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this},e.prototype.cleanSavedState=function(e){i.wipe(e.stateHi),i.wipe(e.stateLo),e.buffer&&i.wipe(e.buffer),e.bufferLength=0,e.bytesHashed=0},e}();t.SHA512=o;var s=new Int32Array([1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591]);function a(e,t,n,i,o,a,c){for(var l,u,h,d,f,p,g,y,b=n[0],m=n[1],v=n[2],w=n[3],E=n[4],S=n[5],I=n[6],R=n[7],A=i[0],x=i[1],M=i[2],T=i[3],O=i[4],P=i[5],N=i[6],k=i[7];c>=128;){for(var C=0;C<16;C++){var U=8*C+a;e[C]=r.readUint32BE(o,U),t[C]=r.readUint32BE(o,U+4)}for(C=0;C<80;C++){var L,j,z=b,K=m,q=v,D=w,B=E,W=S,F=I,V=A,H=x,G=M,J=T,Z=O,Y=P,Q=N;if(f=65535&(u=k),p=u>>>16,g=65535&(l=R),y=l>>>16,f+=65535&(u=(O>>>14|E<<18)^(O>>>18|E<<14)^(E>>>9|O<<23)),p+=u>>>16,g+=65535&(l=(E>>>14|O<<18)^(E>>>18|O<<14)^(O>>>9|E<<23)),y+=l>>>16,f+=65535&(u=O&P^~O&N),p+=u>>>16,g+=65535&(l=E&S^~E&I),y+=l>>>16,l=s[2*C],f+=65535&(u=s[2*C+1]),p+=u>>>16,g+=65535&l,y+=l>>>16,l=e[C%16],p+=(u=t[C%16])>>>16,g+=65535&l,y+=l>>>16,g+=(p+=(f+=65535&u)>>>16)>>>16,f=65535&(u=d=65535&f|p<<16),p=u>>>16,g=65535&(l=h=65535&g|(y+=g>>>16)<<16),y=l>>>16,f+=65535&(u=(A>>>28|b<<4)^(b>>>2|A<<30)^(b>>>7|A<<25)),p+=u>>>16,g+=65535&(l=(b>>>28|A<<4)^(A>>>2|b<<30)^(A>>>7|b<<25)),y+=l>>>16,p+=(u=A&x^A&M^x&M)>>>16,g+=65535&(l=b&m^b&v^m&v),y+=l>>>16,L=65535&(g+=(p+=(f+=65535&u)>>>16)>>>16)|(y+=g>>>16)<<16,j=65535&f|p<<16,f=65535&(u=J),p=u>>>16,g=65535&(l=D),y=l>>>16,p+=(u=d)>>>16,g+=65535&(l=h),y+=l>>>16,m=z,v=K,w=q,E=D=65535&(g+=(p+=(f+=65535&u)>>>16)>>>16)|(y+=g>>>16)<<16,S=B,I=W,R=F,b=L,x=V,M=H,T=G,O=J=65535&f|p<<16,P=Z,N=Y,k=Q,A=j,C%16==15)for(U=0;U<16;U++)l=e[U],f=65535&(u=t[U]),p=u>>>16,g=65535&l,y=l>>>16,l=e[(U+9)%16],f+=65535&(u=t[(U+9)%16]),p+=u>>>16,g+=65535&l,y+=l>>>16,h=e[(U+1)%16],f+=65535&(u=((d=t[(U+1)%16])>>>1|h<<31)^(d>>>8|h<<24)^(d>>>7|h<<25)),p+=u>>>16,g+=65535&(l=(h>>>1|d<<31)^(h>>>8|d<<24)^h>>>7),y+=l>>>16,h=e[(U+14)%16],p+=(u=((d=t[(U+14)%16])>>>19|h<<13)^(h>>>29|d<<3)^(d>>>6|h<<26))>>>16,g+=65535&(l=(h>>>19|d<<13)^(d>>>29|h<<3)^h>>>6),y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,e[U]=65535&g|y<<16,t[U]=65535&f|p<<16}f=65535&(u=A),p=u>>>16,g=65535&(l=b),y=l>>>16,l=n[0],p+=(u=i[0])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[0]=b=65535&g|y<<16,i[0]=A=65535&f|p<<16,f=65535&(u=x),p=u>>>16,g=65535&(l=m),y=l>>>16,l=n[1],p+=(u=i[1])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[1]=m=65535&g|y<<16,i[1]=x=65535&f|p<<16,f=65535&(u=M),p=u>>>16,g=65535&(l=v),y=l>>>16,l=n[2],p+=(u=i[2])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[2]=v=65535&g|y<<16,i[2]=M=65535&f|p<<16,f=65535&(u=T),p=u>>>16,g=65535&(l=w),y=l>>>16,l=n[3],p+=(u=i[3])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[3]=w=65535&g|y<<16,i[3]=T=65535&f|p<<16,f=65535&(u=O),p=u>>>16,g=65535&(l=E),y=l>>>16,l=n[4],p+=(u=i[4])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[4]=E=65535&g|y<<16,i[4]=O=65535&f|p<<16,f=65535&(u=P),p=u>>>16,g=65535&(l=S),y=l>>>16,l=n[5],p+=(u=i[5])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[5]=S=65535&g|y<<16,i[5]=P=65535&f|p<<16,f=65535&(u=N),p=u>>>16,g=65535&(l=I),y=l>>>16,l=n[6],p+=(u=i[6])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[6]=I=65535&g|y<<16,i[6]=N=65535&f|p<<16,f=65535&(u=k),p=u>>>16,g=65535&(l=R),y=l>>>16,l=n[7],p+=(u=i[7])>>>16,g+=65535&l,y+=l>>>16,y+=(g+=(p+=(f+=65535&u)>>>16)>>>16)>>>16,n[7]=R=65535&g|y<<16,i[7]=k=65535&f|p<<16,a+=128,c-=128}return a}t.hash=function(e){var t=new o;t.update(e);var n=t.digest();return t.clean(),n}},6249:(e,t)=>{"use strict";var n="utf8: invalid string",r="utf8: invalid source encoding";function i(e){for(var t=0,r=0;r=e.length-1)throw new Error(n);r++,t+=4}}return t}t.cv=function(e){for(var t=new Uint8Array(i(e)),n=0,r=0;r>6,t[n++]=128|63&o):o<55296?(t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|63&o):(r++,o=(1023&o)<<10,o|=1023&e.charCodeAt(r),o+=65536,t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|63&o)}return t}},7309:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.wipe=function(e){for(var t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.X25519Session=t.SECRET_SEED_LENGTH=t.SAVED_STATE_LENGTH=t.ACCEPT_MESSAGE_LENGTH=t.OFFER_MESSAGE_LENGTH=void 0;const r=n(1416),i=n(7309),o=n(7664),s=n(4826);t.OFFER_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.ACCEPT_MESSAGE_LENGTH=o.PUBLIC_KEY_LENGTH,t.SAVED_STATE_LENGTH=o.SECRET_KEY_LENGTH,t.SECRET_SEED_LENGTH=o.SECRET_KEY_LENGTH;t.X25519Session=class{constructor(e,n){this.offerMessageLength=t.OFFER_MESSAGE_LENGTH,this.acceptMessageLength=t.ACCEPT_MESSAGE_LENGTH,this.sharedKeyLength=o.SHARED_KEY_LENGTH,this.savedStateLength=t.SAVED_STATE_LENGTH,this._seed=e||(0,r.randomBytes)(o.SECRET_KEY_LENGTH,n)}saveState(){return new Uint8Array(this._seed)}restoreState(e){return this._seed=new Uint8Array(e),this}clean(){this._seed&&(0,i.wipe)(this._seed),this._keyPair&&((0,i.wipe)(this._keyPair.secretKey),(0,i.wipe)(this._keyPair.publicKey)),this._sharedKey&&(0,i.wipe)(this._sharedKey),this._sessionKeys&&((0,i.wipe)(this._sessionKeys.receive),(0,i.wipe)(this._sessionKeys.send))}offer(){return this._keyPair=(0,o.generateKeyPairFromSeed)(this._seed),new Uint8Array(this._keyPair.publicKey)}accept(e){if(this._keyPair)throw new Error("X25519Session: accept shouldn't be called by offering party");if(e.length!==this.offerMessageLength)throw new Error("X25519Session: incorrect offer message length");if(this._sharedKey)throw new Error("X25519Session: accept was already called");const t=(0,o.generateKeyPairFromSeed)(this._seed);return this._sharedKey=(0,o.sharedKey)(t.secretKey,e),this._sessionKeys=(0,s.clientSessionKeysFromSharedKey)(this._sharedKey,t.publicKey,e),(0,i.wipe)(t.secretKey),t.publicKey}finish(e){if(e.length!==this.acceptMessageLength)throw new Error("X25519Session: incorrect accept message length");if(!this._keyPair)throw new Error("X25519Session: no offer state");if(this._sharedKey)throw new Error("X25519Session: finish was already called");return this._sharedKey=(0,o.sharedKey)(this._keyPair.secretKey,e),this._sessionKeys=(0,s.serverSessionKeysFromSharedKey)(this._sharedKey,this._keyPair.publicKey,e),this}getSharedKey(){if(!this._sharedKey)throw new Error("X25519Session: no shared key established");return new Uint8Array(this._sharedKey)}getSessionKeys(){if(!this._sessionKeys)throw new Error("X25519Session: no shared key established");return{receive:new Uint8Array(this._sessionKeys.receive),send:new Uint8Array(this._sessionKeys.send)}}}},4826:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clientSessionKeys=t.serverSessionKeys=t.clientSessionKeysFromSharedKey=t.serverSessionKeysFromSharedKey=t.X25519Session=void 0;const r=n(1322),i=n(7664);var o=n(6273);Object.defineProperty(t,"X25519Session",{enumerable:!0,get:function(){return o.X25519Session}});const s=32;function a(e,t,n,i=r.BLAKE2b){const o=new i;if(o.digestLength!==2*s)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(n).update(t).digest();return{send:a.subarray(0,s),receive:a.subarray(s)}}function c(e,t,n,i=r.BLAKE2b){const o=new i;if(o.digestLength!==2*s)throw new Error("X25519: incorrect digest length");const a=o.update(e).update(t).update(n).digest();return{receive:a.subarray(0,s),send:a.subarray(s)}}t.serverSessionKeysFromSharedKey=a,t.clientSessionKeysFromSharedKey=c,t.serverSessionKeys=function(e,t,n=r.BLAKE2b){return a((0,i.sharedKey)(e.secretKey,t),e.publicKey,t,n)},t.clientSessionKeys=function(e,t,n=r.BLAKE2b){return c((0,i.sharedKey)(e.secretKey,t),e.publicKey,t,n)}},7664:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sharedKey=t.generateKeyPair=t.generateKeyPairFromSeed=t.scalarMultBase=t.scalarMult=t.SHARED_KEY_LENGTH=t.SECRET_KEY_LENGTH=t.PUBLIC_KEY_LENGTH=void 0;const r=n(1416),i=n(7309);function o(e){const t=new Float64Array(16);if(e)for(let n=0;n=0;--e){const t=n[e>>>3]>>>(7&e)&1;l(i,s,t),l(p,g,t),u(y,i,p),h(i,i,p),u(p,s,g),h(s,s,g),f(g,y),f(b,i),d(i,p,i),d(p,s,y),u(y,i,p),h(i,i,p),f(s,i),h(p,g,b),d(i,p,a),u(i,i,g),d(p,p,i),d(i,g,b),d(g,s,r),f(s,y),l(i,s,t),l(p,g,t)}for(let e=0;e<16;e++)r[e+16]=i[e],r[e+32]=p[e],r[e+48]=s[e],r[e+64]=g[e];const m=r.subarray(32),v=r.subarray(16);!function(e,t){const n=o();for(let e=0;e<16;e++)n[e]=t[e];for(let e=253;e>=0;e--)f(n,n),2!==e&&4!==e&&d(n,n,t);for(let t=0;t<16;t++)e[t]=n[t]}(m,m),d(v,v,m);const w=new Uint8Array(32);return function(e,t){const n=o(),r=o();for(let e=0;e<16;e++)r[e]=t[e];c(r),c(r),c(r);for(let e=0;e<2;e++){n[0]=r[0]-65517;for(let e=1;e<15;e++)n[e]=r[e]-65535-(n[e-1]>>16&1),n[e-1]&=65535;n[15]=r[15]-32767-(n[14]>>16&1);const e=n[15]>>16&1;n[14]&=65535,l(r,n,1-e)}for(let t=0;t<16;t++)e[2*t]=255&r[t],e[2*t+1]=r[t]>>8}(w,v),w}function g(e){return p(e,s)}function y(e){if(e.length!==t.SECRET_KEY_LENGTH)throw new Error(`x25519: seed must be ${t.SECRET_KEY_LENGTH} bytes`);const n=new Uint8Array(e);return{publicKey:g(n),secretKey:n}}t.scalarMult=p,t.scalarMultBase=g,t.generateKeyPairFromSeed=y,t.generateKeyPair=function(e){const t=(0,r.randomBytes)(32,e),n=y(t);return(0,i.wipe)(t),n},t.sharedKey=function(e,n,r=!1){if(e.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect secret key length");if(n.length!==t.PUBLIC_KEY_LENGTH)throw new Error("X25519: incorrect public key length");const i=p(e,n);if(r){let e=0;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8099),i=n(7318),o=n(7309);function s(e,t,n,r,s){if(void 0===s&&(s=0),0===s){if(24!==t.length)throw new Error("XSalsa20 nonce must be 24 bytes")}else if(32!==t.length)throw new Error("XSalsa20 nonce with counter must be 32 bytes");var a=c(e,t.subarray(0,16),new Uint8Array(32)),l=i.streamXOR(a,t.subarray(16),n,r,s);return o.wipe(a),l}t.streamXOR=s,t.stream=function(e,t,n,r){return void 0===r&&(r=0),o.wipe(n),s(e,t,n,n,r)};var a=20;function c(e,t,n){for(var i,o=1634760805,s=e[3]<<24|e[2]<<16|e[1]<<8|e[0],c=e[7]<<24|e[6]<<16|e[5]<<8|e[4],l=e[11]<<24|e[10]<<16|e[9]<<8|e[8],u=e[15]<<24|e[14]<<16|e[13]<<8|e[12],h=857760878,d=t[3]<<24|t[2]<<16|t[1]<<8|t[0],f=t[7]<<24|t[6]<<16|t[5]<<8|t[4],p=t[11]<<24|t[10]<<16|t[9]<<8|t[8],g=t[15]<<24|t[14]<<16|t[13]<<8|t[12],y=2036477234,b=e[19]<<24|e[18]<<16|e[17]<<8|e[16],m=e[23]<<24|e[22]<<16|e[21]<<8|e[20],v=e[27]<<24|e[26]<<16|e[25]<<8|e[24],w=e[31]<<24|e[30]<<16|e[29]<<8|e[28],E=1797285236,S=0;S>>25)+o|0)<<9|i>>>23)+u|0)<<13|i>>>19)+p|0)<<18|i>>>14,h^=(i=(s^=(i=(v^=(i=(g^=(i=h+s|0)<<7|i>>>25)+h|0)<<9|i>>>23)+g|0)<<13|i>>>19)+v|0)<<18|i>>>14,y^=(i=(d^=(i=(c^=(i=(w^=(i=y+d|0)<<7|i>>>25)+y|0)<<9|i>>>23)+w|0)<<13|i>>>19)+c|0)<<18|i>>>14,E^=(i=(b^=(i=(f^=(i=(l^=(i=E+b|0)<<7|i>>>25)+E|0)<<9|i>>>23)+l|0)<<13|i>>>19)+f|0)<<18|i>>>14,o^=(i=(l^=(i=(c^=(i=(s^=(i=o+l|0)<<7|i>>>25)+o|0)<<9|i>>>23)+s|0)<<13|i>>>19)+c|0)<<18|i>>>14,h^=(i=(u^=(i=(f^=(i=(d^=(i=h+u|0)<<7|i>>>25)+h|0)<<9|i>>>23)+d|0)<<13|i>>>19)+f|0)<<18|i>>>14,y^=(i=(g^=(i=(p^=(i=(b^=(i=y+g|0)<<7|i>>>25)+y|0)<<9|i>>>23)+b|0)<<13|i>>>19)+p|0)<<18|i>>>14,E^=(i=(w^=(i=(v^=(i=(m^=(i=E+w|0)<<7|i>>>25)+E|0)<<9|i>>>23)+m|0)<<13|i>>>19)+v|0)<<18|i>>>14;return r.writeUint32LE(o,n,0),r.writeUint32LE(h,n,4),r.writeUint32LE(y,n,8),r.writeUint32LE(E,n,12),r.writeUint32LE(d,n,16),r.writeUint32LE(f,n,20),r.writeUint32LE(p,n,24),r.writeUint32LE(g,n,28),n}t.hsalsa=c},926:(e,t,n)=>{"use strict";function r(){return(null===n.g||void 0===n.g?void 0:n.g.crypto)||(null===n.g||void 0===n.g?void 0:n.g.msCrypto)||{}}function i(){const e=r();return e.subtle||e.webkitSubtle}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowserCryptoAvailable=t.getSubtleCrypto=t.getBrowerCrypto=void 0,t.getBrowerCrypto=r,t.getSubtleCrypto=i,t.isBrowserCryptoAvailable=function(){return!!r()&&!!i()}},8618:(e,t,n)=>{"use strict";var r=n(4155);function i(){return"undefined"==typeof document&&"undefined"!=typeof navigator&&"ReactNative"===navigator.product}function o(){return void 0!==r&&void 0!==r.versions&&void 0!==r.versions.node}Object.defineProperty(t,"__esModule",{value:!0}),t.isBrowser=t.isNode=t.isReactNative=void 0,t.isReactNative=i,t.isNode=o,t.isBrowser=function(){return!i()&&!o()}},1468:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(926),t),r.__exportStar(n(8618),t)},8200:(e,t,n)=>{"use strict";n.d(t,{q:()=>r});class r{}},997:(e,t,n)=>{"use strict";n.r(t),n.d(t,{IEvents:()=>r.q});var r=n(8200)},2568:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HEARTBEAT_EVENTS=t.HEARTBEAT_INTERVAL=void 0;const r=n(6736);t.HEARTBEAT_INTERVAL=r.FIVE_SECONDS,t.HEARTBEAT_EVENTS={pulse:"heartbeat_pulse"}},3401:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(2568),t)},8969:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeartBeat=void 0;const r=n(655),i=n(7187),o=n(6736),s=n(1614),a=n(3401);class c extends s.IHeartBeat{constructor(e){super(e),this.events=new i.EventEmitter,this.interval=a.HEARTBEAT_INTERVAL,this.interval=(null==e?void 0:e.interval)||a.HEARTBEAT_INTERVAL}static init(e){return r.__awaiter(this,void 0,void 0,(function*(){const t=new c(e);return yield t.init(),t}))}init(){return r.__awaiter(this,void 0,void 0,(function*(){yield this.initialize()}))}stop(){clearInterval(this.intervalRef)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}initialize(){return r.__awaiter(this,void 0,void 0,(function*(){this.intervalRef=setInterval((()=>this.pulse()),o.toMiliseconds(this.interval))}))}pulse(){this.events.emit(a.HEARTBEAT_EVENTS.pulse)}}t.HeartBeat=c},159:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(8969),t),r.__exportStar(n(1614),t),r.__exportStar(n(3401),t)},4174:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IHeartBeat=void 0;const r=n(997);class i extends r.IEvents{constructor(e){super()}}t.IHeartBeat=i},1614:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(4174),t)},5150:(e,t,n)=>{"use strict";const r=n(655),i=n(3954),o=r.__importDefault(n(653)),s=n(9728);class a{constructor(){this.localStorage=o.default}getKeys(){return r.__awaiter(this,void 0,void 0,(function*(){return Object.keys(this.localStorage)}))}getEntries(){return r.__awaiter(this,void 0,void 0,(function*(){return Object.entries(this.localStorage).map(s.parseEntry)}))}getItem(e){return r.__awaiter(this,void 0,void 0,(function*(){const t=this.localStorage.getItem(e);if(null!==t)return i.safeJsonParse(t)}))}setItem(e,t){return r.__awaiter(this,void 0,void 0,(function*(){this.localStorage.setItem(e,i.safeJsonStringify(t))}))}removeItem(e){return r.__awaiter(this,void 0,void 0,(function*(){this.localStorage.removeItem(e)}))}}t.ZP=a},653:(e,t,n)=>{"use strict";!function(){let t;function r(){}t=r,t.prototype.getItem=function(e){return this.hasOwnProperty(e)?String(this[e]):null},t.prototype.setItem=function(e,t){this[e]=String(t)},t.prototype.removeItem=function(e){delete this[e]},t.prototype.clear=function(){const e=this;Object.keys(e).forEach((function(t){e[t]=void 0,delete e[t]}))},t.prototype.key=function(e){return e=e||0,Object.keys(this)[e]},t.prototype.__defineGetter__("length",(function(){return Object.keys(this).length})),void 0!==n.g&&n.g.localStorage?e.exports=n.g.localStorage:"undefined"!=typeof window&&window.localStorage?e.exports=window.localStorage:e.exports=new r}()},9728:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(9076),t),r.__exportStar(n(496),t)},9076:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IKeyValueStorage=void 0;t.IKeyValueStorage=class{}},496:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.parseEntry=void 0;const r=n(3954);t.parseEntry=function(e){var t;return[e[0],r.safeJsonParse(null!==(t=e[1])&&void 0!==t?t:"")]}},5727:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PINO_CUSTOM_CONTEXT_KEY=t.PINO_LOGGER_DEFAULTS=void 0,t.PINO_LOGGER_DEFAULTS={level:"info"},t.PINO_CUSTOM_CONTEXT_KEY="custom_context"},9107:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.pino=void 0;const r=n(655),i=r.__importDefault(n(6559));Object.defineProperty(t,"pino",{enumerable:!0,get:function(){return i.default}}),r.__exportStar(n(5727),t),r.__exportStar(n(8048),t)},8048:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generateChildLogger=t.formatChildLoggerContext=t.getLoggerContext=t.setBrowserLoggerContext=t.getBrowserLoggerContext=t.getDefaultLoggerOptions=void 0;const r=n(5727);function i(e,t=r.PINO_CUSTOM_CONTEXT_KEY){return e[t]||""}function o(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){return e[n]=t,e}function s(e,t=r.PINO_CUSTOM_CONTEXT_KEY){let n="";return n=void 0===e.bindings?i(e,t):e.bindings().context||"",n}function a(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){const i=s(e,n);return i.trim()?`${i}/${t}`:t}t.getDefaultLoggerOptions=function(e){return Object.assign(Object.assign({},e),{level:(null==e?void 0:e.level)||r.PINO_LOGGER_DEFAULTS.level})},t.getBrowserLoggerContext=i,t.setBrowserLoggerContext=o,t.getLoggerContext=s,t.formatChildLoggerContext=a,t.generateChildLogger=function(e,t,n=r.PINO_CUSTOM_CONTEXT_KEY){const i=a(e,t,n);return o(e.child({context:i}),i,n)}},1882:()=>{},3014:()=>{},6900:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(6869),t),r.__exportStar(n(8033),t)},6869:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_THOUSAND=t.ONE_HUNDRED=void 0,t.ONE_HUNDRED=100,t.ONE_THOUSAND=1e3},8033:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_YEAR=t.FOUR_WEEKS=t.THREE_WEEKS=t.TWO_WEEKS=t.ONE_WEEK=t.THIRTY_DAYS=t.SEVEN_DAYS=t.FIVE_DAYS=t.THREE_DAYS=t.ONE_DAY=t.TWENTY_FOUR_HOURS=t.TWELVE_HOURS=t.SIX_HOURS=t.THREE_HOURS=t.ONE_HOUR=t.SIXTY_MINUTES=t.THIRTY_MINUTES=t.TEN_MINUTES=t.FIVE_MINUTES=t.ONE_MINUTE=t.SIXTY_SECONDS=t.THIRTY_SECONDS=t.TEN_SECONDS=t.FIVE_SECONDS=t.ONE_SECOND=void 0,t.ONE_SECOND=1,t.FIVE_SECONDS=5,t.TEN_SECONDS=10,t.THIRTY_SECONDS=30,t.SIXTY_SECONDS=60,t.ONE_MINUTE=t.SIXTY_SECONDS,t.FIVE_MINUTES=5*t.ONE_MINUTE,t.TEN_MINUTES=10*t.ONE_MINUTE,t.THIRTY_MINUTES=30*t.ONE_MINUTE,t.SIXTY_MINUTES=60*t.ONE_MINUTE,t.ONE_HOUR=t.SIXTY_MINUTES,t.THREE_HOURS=3*t.ONE_HOUR,t.SIX_HOURS=6*t.ONE_HOUR,t.TWELVE_HOURS=12*t.ONE_HOUR,t.TWENTY_FOUR_HOURS=24*t.ONE_HOUR,t.ONE_DAY=t.TWENTY_FOUR_HOURS,t.THREE_DAYS=3*t.ONE_DAY,t.FIVE_DAYS=5*t.ONE_DAY,t.SEVEN_DAYS=7*t.ONE_DAY,t.THIRTY_DAYS=30*t.ONE_DAY,t.ONE_WEEK=t.SEVEN_DAYS,t.TWO_WEEKS=2*t.ONE_WEEK,t.THREE_WEEKS=3*t.ONE_WEEK,t.FOUR_WEEKS=4*t.ONE_WEEK,t.ONE_YEAR=365*t.ONE_DAY},6736:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(4273),t),r.__exportStar(n(7001),t),r.__exportStar(n(2939),t),r.__exportStar(n(6900),t)},2939:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(655).__exportStar(n(8766),t)},8766:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IWatch=void 0;t.IWatch=class{}},3207:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.fromMiliseconds=t.toMiliseconds=void 0;const r=n(6900);t.toMiliseconds=function(e){return e*r.ONE_THOUSAND},t.fromMiliseconds=function(e){return Math.floor(e/r.ONE_THOUSAND)}},3873:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.delay=void 0,t.delay=function(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}},4273:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(655);r.__exportStar(n(3873),t),r.__exportStar(n(3207),t)},7001:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Watch=void 0;class n{constructor(){this.timestamps=new Map}start(e){if(this.timestamps.has(e))throw new Error(`Watch already started for label: ${e}`);this.timestamps.set(e,{started:Date.now()})}stop(e){const t=this.get(e);if(void 0!==t.elapsed)throw new Error(`Watch already stopped for label: ${e}`);const n=Date.now()-t.started;this.timestamps.set(e,{started:t.started,elapsed:n})}get(e){const t=this.timestamps.get(e);if(void 0===t)throw new Error(`No timestamp found for label: ${e}`);return t}elapsed(e){const t=this.get(e);return t.elapsed||Date.now()-t.started}}t.Watch=n,t.default=n},2873:(e,t)=>{"use strict";function n(e){let t;return"undefined"!=typeof window&&void 0!==window[e]&&(t=window[e]),t}function r(e){const t=n(e);if(!t)throw new Error(`${e} is not defined in Window`);return t}Object.defineProperty(t,"__esModule",{value:!0}),t.getLocalStorage=t.getLocalStorageOrThrow=t.getCrypto=t.getCryptoOrThrow=t.getLocation=t.getLocationOrThrow=t.getNavigator=t.getNavigatorOrThrow=t.getDocument=t.getDocumentOrThrow=t.getFromWindowOrThrow=t.getFromWindow=void 0,t.getFromWindow=n,t.getFromWindowOrThrow=r,t.getDocumentOrThrow=function(){return r("document")},t.getDocument=function(){return n("document")},t.getNavigatorOrThrow=function(){return r("navigator")},t.getNavigator=function(){return n("navigator")},t.getLocationOrThrow=function(){return r("location")},t.getLocation=function(){return n("location")},t.getCryptoOrThrow=function(){return r("crypto")},t.getCrypto=function(){return n("crypto")},t.getLocalStorageOrThrow=function(){return r("localStorage")},t.getLocalStorage=function(){return n("localStorage")}},5755:(e,t,n)=>{"use strict";t.D=void 0;const r=n(2873);t.D=function(){let e,t;try{e=r.getDocumentOrThrow(),t=r.getLocationOrThrow()}catch(e){return null}function n(...t){const n=e.getElementsByTagName("meta");for(let e=0;er.getAttribute(e))).filter((e=>!!e&&t.includes(e)));if(i.length&&i){const e=r.getAttribute("content");if(e)return e}}return""}const i=function(){let t=n("name","og:site_name","og:title","twitter:title");return t||(t=e.title),t}();return{description:n("description","og:description","twitter:description","keywords"),url:t.origin,icons:function(){const n=e.getElementsByTagName("link"),r=[];for(let e=0;e-1){const e=i.getAttribute("href");if(e)if(-1===e.toLowerCase().indexOf("https:")&&-1===e.toLowerCase().indexOf("http:")&&0!==e.indexOf("//")){let n=t.protocol+"//"+t.host;if(0===e.indexOf("/"))n+=e;else{const r=t.pathname.split("/");r.pop();n+=r.join("/")+"/"+e}r.push(n)}else if(0===e.indexOf("//")){const n=t.protocol+e;r.push(n)}else r.push(e)}}return r}(),name:i}}},9282:(e,t,n)=>{"use strict";var r=n(4155),i=n(5108);function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}var s,a,c=n(2136).codes,l=c.ERR_AMBIGUOUS_ARGUMENT,u=c.ERR_INVALID_ARG_TYPE,h=c.ERR_INVALID_ARG_VALUE,d=c.ERR_INVALID_RETURN_VALUE,f=c.ERR_MISSING_ARGS,p=n(5961),g=n(9539).inspect,y=n(9539).types,b=y.isPromise,m=y.isRegExp,v=Object.assign?Object.assign:n(8091).assign,w=Object.is?Object.is:n(609);new Map;function E(){var e=n(9158);s=e.isDeepEqual,a=e.isDeepStrictEqual}var S=!1,I=e.exports=M,R={};function A(e){if(e.message instanceof Error)throw e.message;throw new p(e)}function x(e,t,n,r){if(!n){var i=!1;if(0===t)i=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var o=new p({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw o.generatedMessage=i,o}}function M(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),i=1;i1?n-1:0),i=1;i1?n-1:0),i=1;i1?n-1:0),i=1;i{"use strict";var r=n(4155);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;ne.length)&&(n=e.length),e.substring(n-t.length,n)===t}var y="",b="",m="",v="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function S(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function I(e,t,n){var i="",o="",s=0,a="",c=!1,l=S(e),u=l.split("\n"),h=S(t).split("\n"),f=0,p="";if("strictEqual"===n&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===h.length&&u[0]!==h[0]){var E=u[0].length+h[0].length;if(E<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(w[n],"\n\n")+"".concat(u[0]," !== ").concat(h[0],"\n")}else if("strictEqualObject"!==n){if(E<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][f]===h[0][f];)f++;f>2&&(p="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",f),"^"),f=0)}}}for(var I=u[u.length-1],R=h[h.length-1];I===R&&(f++<2?a="\n ".concat(I).concat(a):i=I,u.pop(),h.pop(),0!==u.length&&0!==h.length);)I=u[u.length-1],R=h[h.length-1];var A=Math.max(u.length,h.length);if(0===A){var x=l.split("\n");if(x.length>30)for(x[26]="".concat(y,"...").concat(v);x.length>27;)x.pop();return"".concat(w.notIdentical,"\n\n").concat(x.join("\n"),"\n")}f>3&&(a="\n".concat(y,"...").concat(v).concat(a),c=!0),""!==i&&(a="\n ".concat(i).concat(a),i="");var M=0,T=w[n]+"\n".concat(b,"+ actual").concat(v," ").concat(m,"- expected").concat(v),O=" ".concat(y,"...").concat(v," Lines skipped");for(f=0;f1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(h[f-2]),M++),o+="\n ".concat(h[f-1]),M++),s=f,i+="\n".concat(m,"-").concat(v," ").concat(h[f]),M++;else if(h.length1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(u[f-2]),M++),o+="\n ".concat(u[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(u[f]),M++;else{var N=h[f],k=u[f],C=k!==N&&(!g(k,",")||k.slice(0,-1)!==N);C&&g(N,",")&&N.slice(0,-1)===k&&(C=!1,k+=","),C?(P>1&&f>2&&(P>4?(o+="\n".concat(y,"...").concat(v),c=!0):P>3&&(o+="\n ".concat(u[f-2]),M++),o+="\n ".concat(u[f-1]),M++),s=f,o+="\n".concat(b,"+").concat(v," ").concat(k),i+="\n".concat(m,"-").concat(v," ").concat(N),M+=2):(o+=i,i="",1!==P&&0!==f||(o+="\n ".concat(k),M++))}if(M>20&&f30)for(R[26]="".concat(y,"...").concat(v);R.length>27;)R.pop();n=1===R.length?s(this,h(t).call(this,"".concat(g," ").concat(R[0]))):s(this,h(t).call(this,"".concat(g,"\n\n").concat(R.join("\n"),"\n")))}else{var A=S(l),x="",M=w[o];"notDeepEqual"===o||"notEqual"===o?(A="".concat(w[o],"\n\n").concat(A)).length>1024&&(A="".concat(A.slice(0,1021),"...")):(x="".concat(S(u)),A.length>512&&(A="".concat(A.slice(0,509),"...")),x.length>512&&(x="".concat(x.slice(0,509),"...")),"deepEqual"===o||"equal"===o?A="".concat(M,"\n\n").concat(A,"\n\nshould equal\n\n"):x=" ".concat(o," ").concat(x)),n=s(this,h(t).call(this,"".concat(A).concat(x)))}return Error.stackTraceLimit=f,n.generatedMessage=!i,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=l,n.expected=u,n.operator=o,Error.captureStackTrace&&Error.captureStackTrace(a(n),c),n.stack,n.name="AssertionError",s(n)}var n,c,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&u(e,t)}(t,e),n=t,c=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}function s(e,t){return s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},s(e,t)}var a,c,l={};function u(e,t,n){n||(n=Error);var r=function(n){function r(n,s,a){var c;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),c=i(this,o(r).call(this,function(e,n,r){return"string"==typeof t?t:t(e,n,r)}(n,s,a))),c.code=e,c}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(r,n),r}(n);l[e]=r}function h(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(e,t,i){var o,s,c,l;if(void 0===a&&(a=n(9282)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(!c||c<0?0:+c,s.length)===s)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))l="The ".concat(e," ").concat(o," ").concat(h(t,"type"));else{var u=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(u," ").concat(o," ").concat(h(t,"type"))}return l+=". Received type ".concat(r(i))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===c&&(c=n(9539));var i=c.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(i)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var i;return i=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var i="The ",o=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),o){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,o-1).join(", "),i+=", and ".concat(t[o-1]," arguments")}return"".concat(i," must be specified")}),TypeError),e.exports.codes=l},9158:(e,t,n)=>{"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(e){i=!0,o=e}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}var o=void 0!==/a/g.flags,s=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},c=Object.is?Object.is:n(609),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},u=Number.isNaN?Number.isNaN:n(360);function h(e){return e.call.bind(e)}var d=h(Object.prototype.hasOwnProperty),f=h(Object.prototype.propertyIsEnumerable),p=h(Object.prototype.toString),g=n(9539).types,y=g.isAnyArrayBuffer,b=g.isArrayBufferView,m=g.isDate,v=g.isMap,w=g.isRegExp,E=g.isSet,S=g.isNativeError,I=g.isBoxedPrimitive,R=g.isNumberObject,A=g.isStringObject,x=g.isBooleanObject,M=g.isBigIntObject,T=g.isSymbolObject,O=g.isFloat32Array,P=g.isFloat64Array;function N(e){if(0===e.length||e.length>10)return!0;for(var t=0;t57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function k(e){return Object.keys(e).filter(N).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function C(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i{e.exports=n(1609)},5448:(e,t,n)=>{"use strict";var r=n(4867),i=n(6026),o=n(4372),s=n(5327),a=n(4097),c=n(4109),l=n(7985),u=n(5061),h=n(5655),d=n(5263);e.exports=function(e){return new Promise((function(t,n){var f,p=e.data,g=e.headers,y=e.responseType;function b(){e.cancelToken&&e.cancelToken.unsubscribe(f),e.signal&&e.signal.removeEventListener("abort",f)}r.isFormData(p)&&delete g["Content-Type"];var m=new XMLHttpRequest;if(e.auth){var v=e.auth.username||"",w=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(v+":"+w)}var E=a(e.baseURL,e.url);function S(){if(m){var r="getAllResponseHeaders"in m?c(m.getAllResponseHeaders()):null,o={data:y&&"text"!==y&&"json"!==y?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:r,config:e,request:m};i((function(e){t(e),b()}),(function(e){n(e),b()}),o),m=null}}if(m.open(e.method.toUpperCase(),s(E,e.params,e.paramsSerializer),!0),m.timeout=e.timeout,"onloadend"in m?m.onloadend=S:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(S)},m.onabort=function(){m&&(n(u("Request aborted",e,"ECONNABORTED",m)),m=null)},m.onerror=function(){n(u("Network Error",e,null,m)),m=null},m.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",r=e.transitional||h.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(u(t,e,r.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",m)),m=null},r.isStandardBrowserEnv()){var I=(e.withCredentials||l(E))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;I&&(g[e.xsrfHeaderName]=I)}"setRequestHeader"in m&&r.forEach(g,(function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete g[t]:m.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(m.withCredentials=!!e.withCredentials),y&&"json"!==y&&(m.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&m.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(f=function(e){m&&(n(!e||e&&e.type?new d("canceled"):e),m.abort(),m=null)},e.cancelToken&&e.cancelToken.subscribe(f),e.signal&&(e.signal.aborted?f():e.signal.addEventListener("abort",f))),p||(p=null),m.send(p)}))}},1609:(e,t,n)=>{"use strict";var r=n(4867),i=n(1849),o=n(321),s=n(7185);var a=function e(t){var n=new o(t),a=i(o.prototype.request,n);return r.extend(a,o.prototype,n),r.extend(a,n),a.create=function(n){return e(s(t,n))},a}(n(5655));a.Axios=o,a.Cancel=n(5263),a.CancelToken=n(4972),a.isCancel=n(6502),a.VERSION=n(7288).version,a.all=function(e){return Promise.all(e)},a.spread=n(8713),a.isAxiosError=n(6268),e.exports=a,e.exports.default=a},5263:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},4972:(e,t,n)=>{"use strict";var r=n(5263);function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t{"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},321:(e,t,n)=>{"use strict";var r=n(4867),i=n(5327),o=n(782),s=n(3572),a=n(7185),c=n(4875),l=c.validators;function u(e){this.defaults=e,this.interceptors={request:new o,response:new o}}u.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=a(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=e.transitional;void 0!==t&&c.assertOptions(t,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},!1);var n=[],r=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(r=r&&t.synchronous,n.unshift(t.fulfilled,t.rejected))}));var i,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!r){var u=[s,void 0];for(Array.prototype.unshift.apply(u,n),u=u.concat(o),i=Promise.resolve(e);u.length;)i=i.then(u.shift(),u.shift());return i}for(var h=e;n.length;){var d=n.shift(),f=n.shift();try{h=d(h)}catch(e){f(e);break}}try{i=s(h)}catch(e){return Promise.reject(e)}for(;o.length;)i=i.then(o.shift(),o.shift());return i},u.prototype.getUri=function(e){return e=a(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},r.forEach(["delete","get","head","options"],(function(e){u.prototype[e]=function(t,n){return this.request(a(n||{},{method:e,url:t,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(e){u.prototype[e]=function(t,n,r){return this.request(a(r||{},{method:e,url:t,data:n}))}})),e.exports=u},782:(e,t,n)=>{"use strict";var r=n(4867);function i(){this.handlers=[]}i.prototype.use=function(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){r.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=i},4097:(e,t,n)=>{"use strict";var r=n(1793),i=n(7303);e.exports=function(e,t){return e&&!r(t)?i(e,t):t}},5061:(e,t,n)=>{"use strict";var r=n(481);e.exports=function(e,t,n,i,o){var s=new Error(e);return r(s,t,n,i,o)}},3572:(e,t,n)=>{"use strict";var r=n(4867),i=n(8527),o=n(6502),s=n(5655),a=n(5263);function c(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a("canceled")}e.exports=function(e){return c(e),e.headers=e.headers||{},e.data=i.call(e,e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||s.adapter)(e).then((function(t){return c(e),t.data=i.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(c(e),t&&t.response&&(t.response.data=i.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},481:e=>{"use strict";e.exports=function(e,t,n,r,i){return e.config=t,n&&(e.code=n),e.request=r,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},7185:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){t=t||{};var n={};function i(e,t){return r.isPlainObject(e)&&r.isPlainObject(t)?r.merge(e,t):r.isPlainObject(t)?r.merge({},t):r.isArray(t)?t.slice():t}function o(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:i(void 0,e[n]):i(e[n],t[n])}function s(e){if(!r.isUndefined(t[e]))return i(void 0,t[e])}function a(n){return r.isUndefined(t[n])?r.isUndefined(e[n])?void 0:i(void 0,e[n]):i(void 0,t[n])}function c(n){return n in t?i(e[n],t[n]):n in e?i(void 0,e[n]):void 0}var l={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c};return r.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=l[e]||o,i=t(e);r.isUndefined(i)&&t!==c||(n[e]=i)})),n}},6026:(e,t,n)=>{"use strict";var r=n(5061);e.exports=function(e,t,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},8527:(e,t,n)=>{"use strict";var r=n(4867),i=n(5655);e.exports=function(e,t,n){var o=this||i;return r.forEach(n,(function(n){e=n.call(o,e,t)})),e}},5655:(e,t,n)=>{"use strict";var r=n(4155),i=n(4867),o=n(6016),s=n(481),a={"Content-Type":"application/x-www-form-urlencoded"};function c(e,t){!i.isUndefined(e)&&i.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var l,u={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==r&&"[object process]"===Object.prototype.toString.call(r))&&(l=n(5448)),l),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),i.isFormData(e)||i.isArrayBuffer(e)||i.isBuffer(e)||i.isStream(e)||i.isFile(e)||i.isBlob(e)?e:i.isArrayBufferView(e)?e.buffer:i.isURLSearchParams(e)?(c(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):i.isObject(e)||t&&"application/json"===t["Content-Type"]?(c(t,"application/json"),function(e,t,n){if(i.isString(e))try{return(t||JSON.parse)(e),i.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||u.transitional,n=t&&t.silentJSONParsing,r=t&&t.forcedJSONParsing,o=!n&&"json"===this.responseType;if(o||r&&i.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw s(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};i.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),i.forEach(["post","put","patch"],(function(e){u.headers[e]=i.merge(a)})),e.exports=u},7288:e=>{e.exports={version:"0.24.0"}},1849:e=>{"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r{"use strict";var r=n(4867);function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var o;if(n)o=n(t);else if(r.isURLSearchParams(t))o=t.toString();else{var s=[];r.forEach(t,(function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,(function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),s.push(i(t)+"="+i(e))})))})),o=s.join("&")}if(o){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},7303:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},4372:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,i,o,s){var a=[];a.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(i)&&a.push("path="+i),r.isString(o)&&a.push("domain="+o),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},1793:e=>{"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},6268:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},7985:(e,t,n)=>{"use strict";var r=n(4867);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=i(window.location.href),function(t){var n=r.isString(t)?i(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},6016:(e,t,n)=>{"use strict";var r=n(4867);e.exports=function(e,t){r.forEach(e,(function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])}))}},4109:(e,t,n)=>{"use strict";var r=n(4867),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,o,s={};return e?(r.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=r.trim(e.substr(0,o)).toLowerCase(),n=r.trim(e.substr(o+1)),t){if(s[t]&&i.indexOf(t)>=0)return;s[t]="set-cookie"===t?(s[t]?s[t]:[]).concat([n]):s[t]?s[t]+", "+n:n}})),s):s}},8713:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},4875:(e,t,n)=>{"use strict";var r=n(5108),i=n(7288).version,o={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){o[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));var s={};o.transitional=function(e,t,n){function o(e,t){return"[Axios v"+i+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return function(n,i,a){if(!1===e)throw new Error(o(i," has been removed"+(t?" in "+t:"")));return t&&!s[i]&&(s[i]=!0,r.warn(o(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}},e.exports={assertOptions:function(e,t,n){if("object"!=typeof e)throw new TypeError("options must be an object");for(var r=Object.keys(e),i=r.length;i-- >0;){var o=r[i],s=t[o];if(s){var a=e[o],c=void 0===a||s(a,o,e);if(!0!==c)throw new TypeError("option "+o+" must be "+c)}else if(!0!==n)throw Error("Unknown option "+o)}},validators:o}},4867:(e,t,n)=>{"use strict";var r=n(1849),i=Object.prototype.toString;function o(e){return"[object Array]"===i.call(e)}function s(e){return void 0===e}function a(e){return null!==e&&"object"==typeof e}function c(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function l(e){return"[object Function]"===i.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var n=0,r=e.length;n{"use strict";var r=n(9509).Buffer;e.exports=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n>>0,u=new Uint8Array(s);e[n];){var h=t[e.charCodeAt(n)];if(255===h)return;for(var d=0,f=s-1;(0!==h||d>>0,u[f]=h%256>>>0,h=h/256>>>0;if(0!==h)throw new Error("Non-zero carry");o=d,n++}for(var p=s-o;p!==s&&0===u[p];)p++;var g=r.allocUnsafe(i+(s-p));g.fill(0,0,i);for(var y=i;p!==s;)g[y++]=u[p++];return g}return{encode:function(t){if((Array.isArray(t)||t instanceof Uint8Array)&&(t=r.from(t)),!r.isBuffer(t))throw new TypeError("Expected Buffer");if(0===t.length)return"";for(var n=0,i=0,o=0,s=t.length;o!==s&&0===t[o];)o++,n++;for(var l=(s-o)*u+1>>>0,h=new Uint8Array(l);o!==s;){for(var d=t[o],f=0,p=l-1;(0!==d||f>>0,h[p]=d%a>>>0,d=d/a>>>0;if(0!==d)throw new Error("Non-zero carry");i=f,o++}for(var g=l-i;g!==l&&0===h[g];)g++;for(var y=c.repeat(n);g{"use strict";t.byteLength=function(e){var t=a(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=a(e),s=o[0],c=o[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,s,c)),u=0,h=c>0?s-4:s;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===c&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,l[u++]=255&t);1===c&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],s=16383,a=0,l=r-i;al?l:a+s));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)n[s]=o[s],r[o.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function c(e,t,r){for(var i,o,s=[],a=t;a>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},8442:(e,t,n)=>{const r=n(9488);function i(e,t,n){const r=e[t]+e[n];let i=e[t+1]+e[n+1];r>=4294967296&&i++,e[t]=r,e[t+1]=i}function o(e,t,n,r){let i=e[t]+n;n<0&&(i+=4294967296);let o=e[t+1]+r;i>=4294967296&&o++,e[t]=i,e[t+1]=o}function s(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function a(e,t,n,r,s,a){const c=h[s],l=h[s+1],d=h[a],f=h[a+1];i(u,e,t),o(u,e,c,l);let p=u[r]^u[e],g=u[r+1]^u[e+1];u[r]=g,u[r+1]=p,i(u,n,r),p=u[t]^u[n],g=u[t+1]^u[n+1],u[t]=p>>>24^g<<8,u[t+1]=g>>>24^p<<8,i(u,e,t),o(u,e,d,f),p=u[r]^u[e],g=u[r+1]^u[e+1],u[r]=p>>>16^g<<16,u[r+1]=g>>>16^p<<16,i(u,n,r),p=u[t]^u[n],g=u[t+1]^u[n+1],u[t]=g>>>31^p<<1,u[t+1]=p>>>31^g<<1}const c=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),l=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3].map((function(e){return 2*e}))),u=new Uint32Array(32),h=new Uint32Array(32);function d(e,t){let n=0;for(n=0;n<16;n++)u[n]=e.h[n],u[n+16]=c[n];for(u[24]=u[24]^e.t,u[25]=u[25]^e.t/4294967296,t&&(u[28]=~u[28],u[29]=~u[29]),n=0;n<32;n++)h[n]=s(e.b,4*n);for(n=0;n<12;n++)a(0,8,16,24,l[16*n+0],l[16*n+1]),a(2,10,18,26,l[16*n+2],l[16*n+3]),a(4,12,20,28,l[16*n+4],l[16*n+5]),a(6,14,22,30,l[16*n+6],l[16*n+7]),a(0,10,20,30,l[16*n+8],l[16*n+9]),a(2,12,22,24,l[16*n+10],l[16*n+11]),a(4,14,16,26,l[16*n+12],l[16*n+13]),a(6,8,18,28,l[16*n+14],l[16*n+15]);for(n=0;n<16;n++)e.h[n]=e.h[n]^u[n]^u[n+16]}const f=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function p(e,t,n,r){if(0===e||e>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(t&&t.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&16!==n.length)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(r&&16!==r.length)throw new Error("Illegal personal, expected Uint8Array with length is 16");const i={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:e};f.fill(0),f[0]=e,t&&(f[1]=t.length),f[2]=1,f[3]=1,n&&f.set(n,32),r&&f.set(r,48);for(let e=0;e<16;e++)i.h[e]=c[e]^s(f,4*e);return t&&(g(i,t),i.c=128),i}function g(e,t){for(let n=0;n>2]>>8*(3&n);return t}function b(e,t,n,i,o){n=n||64,e=r.normalizeInput(e),i&&(i=r.normalizeInput(i)),o&&(o=r.normalizeInput(o));const s=p(n,t,i,o);return g(s,e),y(s)}e.exports={blake2b:b,blake2bHex:function(e,t,n,i,o){const s=b(e,t,n,i,o);return r.toHex(s)},blake2bInit:p,blake2bUpdate:g,blake2bFinal:y}},5297:(e,t,n)=>{const r=n(9488);function i(e,t){return e[t]^e[t+1]<<8^e[t+2]<<16^e[t+3]<<24}function o(e,t,n,r,i,o){l[e]=l[e]+l[t]+i,l[r]=s(l[r]^l[e],16),l[n]=l[n]+l[r],l[t]=s(l[t]^l[n],12),l[e]=l[e]+l[t]+o,l[r]=s(l[r]^l[e],8),l[n]=l[n]+l[r],l[t]=s(l[t]^l[n],7)}function s(e,t){return e>>>t^e<<32-t}const a=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),c=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),l=new Uint32Array(16),u=new Uint32Array(16);function h(e,t){let n=0;for(n=0;n<8;n++)l[n]=e.h[n],l[n+8]=a[n];for(l[12]^=e.t,l[13]^=e.t/4294967296,t&&(l[14]=~l[14]),n=0;n<16;n++)u[n]=i(e.b,4*n);for(n=0;n<10;n++)o(0,4,8,12,u[c[16*n+0]],u[c[16*n+1]]),o(1,5,9,13,u[c[16*n+2]],u[c[16*n+3]]),o(2,6,10,14,u[c[16*n+4]],u[c[16*n+5]]),o(3,7,11,15,u[c[16*n+6]],u[c[16*n+7]]),o(0,5,10,15,u[c[16*n+8]],u[c[16*n+9]]),o(1,6,11,12,u[c[16*n+10]],u[c[16*n+11]]),o(2,7,8,13,u[c[16*n+12]],u[c[16*n+13]]),o(3,4,9,14,u[c[16*n+14]],u[c[16*n+15]]);for(n=0;n<8;n++)e.h[n]^=l[n]^l[n+8]}function d(e,t){if(!(e>0&&e<=32))throw new Error("Incorrect output length, should be in [1, 32]");const n=t?t.length:0;if(t&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(a),b:new Uint8Array(64),c:0,t:0,outlen:e};return r.h[0]^=16842752^n<<8^e,n>0&&(f(r,t),r.c=64),r}function f(e,t){for(let n=0;n>2]>>8*(3&n)&255;return t}function g(e,t,n){n=n||32,e=r.normalizeInput(e);const i=d(n,t);return f(i,e),p(i)}e.exports={blake2s:g,blake2sHex:function(e,t,n){const i=g(e,t,n);return r.toHex(i)},blake2sInit:d,blake2sUpdate:f,blake2sFinal:p}},1191:(e,t,n)=>{const r=n(8442),i=n(5297);e.exports={blake2b:r.blake2b,blake2bHex:r.blake2bHex,blake2bInit:r.blake2bInit,blake2bUpdate:r.blake2bUpdate,blake2bFinal:r.blake2bFinal,blake2s:i.blake2s,blake2sHex:i.blake2sHex,blake2sInit:i.blake2sInit,blake2sUpdate:i.blake2sUpdate,blake2sFinal:i.blake2sFinal}},9488:(e,t,n)=>{var r=n(5108);function i(e){return(4294967296+e).toString(16).substring(1)}e.exports={normalizeInput:function(e){let t;if(e instanceof Uint8Array)t=e;else{if("string"!=typeof e)throw new Error("Input must be an string, Buffer or Uint8Array");t=(new TextEncoder).encode(e)}return t},toHex:function(e){return Array.prototype.map.call(e,(function(e){return(e<16?"0":"")+e.toString(16)})).join("")},debugPrint:function(e,t,n){let o="\n"+e+" = ";for(let r=0;r=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function l(e,t,n,r){for(var i=0,o=Math.min(e.length,n),s=t;s=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r=t;r-=2)i=c(e,t,r)<=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(r=(e.length-t)%2==0?t+1:t;r=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var o=e.length-n,s=o%r,a=Math.min(o,o-s)+n,c=0,u=n;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?""};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function f(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var l=1;l>>26,h=67108863&c,d=Math.min(l,t.length-1),f=Math.max(0,l-e.length+1);f<=d;f++){var p=l-f|0;u+=(s=(i=0|e.words[p])*(o=0|t.words[f])+h)/67108864|0,h=67108863&s}n.words[l]=0|h,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s>>24-i&16777215)||s!==this.length-1?u[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],f=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(f).toString(e);n=(p=p.idivn(f)).isZero()?g+n:u[l-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,l=new e(o),u=this.clone();if(c){for(a=0;!u.isZero();a++)s=u.andln(255),u.iushrn(8),l[a]=s;for(;a=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;te.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;ne.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;re.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<e.length?(n=this,r=e):(n=e,r=this);for(var i=0,o=0;o>>26;for(;0!==i&&o>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;oe.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var o=0,s=0;s>26,this.words[s]=67108863&t;for(;0!==o&&s>26,this.words[s]=67108863&t;if(0===o&&s>>13,f=0|s[1],p=8191&f,g=f>>>13,y=0|s[2],b=8191&y,m=y>>>13,v=0|s[3],w=8191&v,E=v>>>13,S=0|s[4],I=8191&S,R=S>>>13,A=0|s[5],x=8191&A,M=A>>>13,T=0|s[6],O=8191&T,P=T>>>13,N=0|s[7],k=8191&N,C=N>>>13,U=0|s[8],L=8191&U,j=U>>>13,z=0|s[9],K=8191&z,q=z>>>13,D=0|a[0],B=8191&D,W=D>>>13,F=0|a[1],V=8191&F,H=F>>>13,G=0|a[2],J=8191&G,Z=G>>>13,Y=0|a[3],Q=8191&Y,X=Y>>>13,_=0|a[4],$=8191&_,ee=_>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ce=8191&ae,le=ae>>>13,ue=0|a[8],he=8191&ue,de=ue>>>13,fe=0|a[9],pe=8191&fe,ge=fe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(l+(r=Math.imul(h,B))|0)+((8191&(i=(i=Math.imul(h,W))+Math.imul(d,B)|0))<<13)|0;l=((o=Math.imul(d,W))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(p,B),i=(i=Math.imul(p,W))+Math.imul(g,B)|0,o=Math.imul(g,W);var be=(l+(r=r+Math.imul(h,V)|0)|0)+((8191&(i=(i=i+Math.imul(h,H)|0)+Math.imul(d,V)|0))<<13)|0;l=((o=o+Math.imul(d,H)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,B),i=(i=Math.imul(b,W))+Math.imul(m,B)|0,o=Math.imul(m,W),r=r+Math.imul(p,V)|0,i=(i=i+Math.imul(p,H)|0)+Math.imul(g,V)|0,o=o+Math.imul(g,H)|0;var me=(l+(r=r+Math.imul(h,J)|0)|0)+((8191&(i=(i=i+Math.imul(h,Z)|0)+Math.imul(d,J)|0))<<13)|0;l=((o=o+Math.imul(d,Z)|0)+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(w,B),i=(i=Math.imul(w,W))+Math.imul(E,B)|0,o=Math.imul(E,W),r=r+Math.imul(b,V)|0,i=(i=i+Math.imul(b,H)|0)+Math.imul(m,V)|0,o=o+Math.imul(m,H)|0,r=r+Math.imul(p,J)|0,i=(i=i+Math.imul(p,Z)|0)+Math.imul(g,J)|0,o=o+Math.imul(g,Z)|0;var ve=(l+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,X)|0)+Math.imul(d,Q)|0))<<13)|0;l=((o=o+Math.imul(d,X)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(I,B),i=(i=Math.imul(I,W))+Math.imul(R,B)|0,o=Math.imul(R,W),r=r+Math.imul(w,V)|0,i=(i=i+Math.imul(w,H)|0)+Math.imul(E,V)|0,o=o+Math.imul(E,H)|0,r=r+Math.imul(b,J)|0,i=(i=i+Math.imul(b,Z)|0)+Math.imul(m,J)|0,o=o+Math.imul(m,Z)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(g,Q)|0,o=o+Math.imul(g,X)|0;var we=(l+(r=r+Math.imul(h,$)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(d,$)|0))<<13)|0;l=((o=o+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(x,B),i=(i=Math.imul(x,W))+Math.imul(M,B)|0,o=Math.imul(M,W),r=r+Math.imul(I,V)|0,i=(i=i+Math.imul(I,H)|0)+Math.imul(R,V)|0,o=o+Math.imul(R,H)|0,r=r+Math.imul(w,J)|0,i=(i=i+Math.imul(w,Z)|0)+Math.imul(E,J)|0,o=o+Math.imul(E,Z)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(m,Q)|0,o=o+Math.imul(m,X)|0,r=r+Math.imul(p,$)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,$)|0,o=o+Math.imul(g,ee)|0;var Ee=(l+(r=r+Math.imul(h,ne)|0)|0)+((8191&(i=(i=i+Math.imul(h,re)|0)+Math.imul(d,ne)|0))<<13)|0;l=((o=o+Math.imul(d,re)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(O,B),i=(i=Math.imul(O,W))+Math.imul(P,B)|0,o=Math.imul(P,W),r=r+Math.imul(x,V)|0,i=(i=i+Math.imul(x,H)|0)+Math.imul(M,V)|0,o=o+Math.imul(M,H)|0,r=r+Math.imul(I,J)|0,i=(i=i+Math.imul(I,Z)|0)+Math.imul(R,J)|0,o=o+Math.imul(R,Z)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(E,Q)|0,o=o+Math.imul(E,X)|0,r=r+Math.imul(b,$)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(m,$)|0,o=o+Math.imul(m,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(g,ne)|0,o=o+Math.imul(g,re)|0;var Se=(l+(r=r+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,se)|0)+Math.imul(d,oe)|0))<<13)|0;l=((o=o+Math.imul(d,se)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(k,B),i=(i=Math.imul(k,W))+Math.imul(C,B)|0,o=Math.imul(C,W),r=r+Math.imul(O,V)|0,i=(i=i+Math.imul(O,H)|0)+Math.imul(P,V)|0,o=o+Math.imul(P,H)|0,r=r+Math.imul(x,J)|0,i=(i=i+Math.imul(x,Z)|0)+Math.imul(M,J)|0,o=o+Math.imul(M,Z)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,X)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,X)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(E,$)|0,o=o+Math.imul(E,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(m,ne)|0,o=o+Math.imul(m,re)|0,r=r+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Ie=(l+(r=r+Math.imul(h,ce)|0)|0)+((8191&(i=(i=i+Math.imul(h,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((o=o+Math.imul(d,le)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,B),i=(i=Math.imul(L,W))+Math.imul(j,B)|0,o=Math.imul(j,W),r=r+Math.imul(k,V)|0,i=(i=i+Math.imul(k,H)|0)+Math.imul(C,V)|0,o=o+Math.imul(C,H)|0,r=r+Math.imul(O,J)|0,i=(i=i+Math.imul(O,Z)|0)+Math.imul(P,J)|0,o=o+Math.imul(P,Z)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(M,Q)|0,o=o+Math.imul(M,X)|0,r=r+Math.imul(I,$)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(R,$)|0,o=o+Math.imul(R,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(E,ne)|0,o=o+Math.imul(E,re)|0,r=r+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(m,oe)|0,o=o+Math.imul(m,se)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,le)|0)+Math.imul(g,ce)|0,o=o+Math.imul(g,le)|0;var Re=(l+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,de)|0)+Math.imul(d,he)|0))<<13)|0;l=((o=o+Math.imul(d,de)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(K,B),i=(i=Math.imul(K,W))+Math.imul(q,B)|0,o=Math.imul(q,W),r=r+Math.imul(L,V)|0,i=(i=i+Math.imul(L,H)|0)+Math.imul(j,V)|0,o=o+Math.imul(j,H)|0,r=r+Math.imul(k,J)|0,i=(i=i+Math.imul(k,Z)|0)+Math.imul(C,J)|0,o=o+Math.imul(C,Z)|0,r=r+Math.imul(O,Q)|0,i=(i=i+Math.imul(O,X)|0)+Math.imul(P,Q)|0,o=o+Math.imul(P,X)|0,r=r+Math.imul(x,$)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(M,$)|0,o=o+Math.imul(M,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(R,ne)|0,o=o+Math.imul(R,re)|0,r=r+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(E,oe)|0,o=o+Math.imul(E,se)|0,r=r+Math.imul(b,ce)|0,i=(i=i+Math.imul(b,le)|0)+Math.imul(m,ce)|0,o=o+Math.imul(m,le)|0,r=r+Math.imul(p,he)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(g,he)|0,o=o+Math.imul(g,de)|0;var Ae=(l+(r=r+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ge)|0)+Math.imul(d,pe)|0))<<13)|0;l=((o=o+Math.imul(d,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(K,V),i=(i=Math.imul(K,H))+Math.imul(q,V)|0,o=Math.imul(q,H),r=r+Math.imul(L,J)|0,i=(i=i+Math.imul(L,Z)|0)+Math.imul(j,J)|0,o=o+Math.imul(j,Z)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(C,Q)|0,o=o+Math.imul(C,X)|0,r=r+Math.imul(O,$)|0,i=(i=i+Math.imul(O,ee)|0)+Math.imul(P,$)|0,o=o+Math.imul(P,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(M,ne)|0,o=o+Math.imul(M,re)|0,r=r+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(E,ce)|0,o=o+Math.imul(E,le)|0,r=r+Math.imul(b,he)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(m,he)|0,o=o+Math.imul(m,de)|0;var xe=(l+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;l=((o=o+Math.imul(g,ge)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(K,J),i=(i=Math.imul(K,Z))+Math.imul(q,J)|0,o=Math.imul(q,Z),r=r+Math.imul(L,Q)|0,i=(i=i+Math.imul(L,X)|0)+Math.imul(j,Q)|0,o=o+Math.imul(j,X)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(C,$)|0,o=o+Math.imul(C,ee)|0,r=r+Math.imul(O,ne)|0,i=(i=i+Math.imul(O,re)|0)+Math.imul(P,ne)|0,o=o+Math.imul(P,re)|0,r=r+Math.imul(x,oe)|0,i=(i=i+Math.imul(x,se)|0)+Math.imul(M,oe)|0,o=o+Math.imul(M,se)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,le)|0)+Math.imul(R,ce)|0,o=o+Math.imul(R,le)|0,r=r+Math.imul(w,he)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(E,he)|0,o=o+Math.imul(E,de)|0;var Me=(l+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(m,pe)|0))<<13)|0;l=((o=o+Math.imul(m,ge)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(K,Q),i=(i=Math.imul(K,X))+Math.imul(q,Q)|0,o=Math.imul(q,X),r=r+Math.imul(L,$)|0,i=(i=i+Math.imul(L,ee)|0)+Math.imul(j,$)|0,o=o+Math.imul(j,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(C,ne)|0,o=o+Math.imul(C,re)|0,r=r+Math.imul(O,oe)|0,i=(i=i+Math.imul(O,se)|0)+Math.imul(P,oe)|0,o=o+Math.imul(P,se)|0,r=r+Math.imul(x,ce)|0,i=(i=i+Math.imul(x,le)|0)+Math.imul(M,ce)|0,o=o+Math.imul(M,le)|0,r=r+Math.imul(I,he)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,de)|0;var Te=(l+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ge)|0)+Math.imul(E,pe)|0))<<13)|0;l=((o=o+Math.imul(E,ge)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(K,$),i=(i=Math.imul(K,ee))+Math.imul(q,$)|0,o=Math.imul(q,ee),r=r+Math.imul(L,ne)|0,i=(i=i+Math.imul(L,re)|0)+Math.imul(j,ne)|0,o=o+Math.imul(j,re)|0,r=r+Math.imul(k,oe)|0,i=(i=i+Math.imul(k,se)|0)+Math.imul(C,oe)|0,o=o+Math.imul(C,se)|0,r=r+Math.imul(O,ce)|0,i=(i=i+Math.imul(O,le)|0)+Math.imul(P,ce)|0,o=o+Math.imul(P,le)|0,r=r+Math.imul(x,he)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(M,he)|0,o=o+Math.imul(M,de)|0;var Oe=(l+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,ge)|0)+Math.imul(R,pe)|0))<<13)|0;l=((o=o+Math.imul(R,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(K,ne),i=(i=Math.imul(K,re))+Math.imul(q,ne)|0,o=Math.imul(q,re),r=r+Math.imul(L,oe)|0,i=(i=i+Math.imul(L,se)|0)+Math.imul(j,oe)|0,o=o+Math.imul(j,se)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(C,ce)|0,o=o+Math.imul(C,le)|0,r=r+Math.imul(O,he)|0,i=(i=i+Math.imul(O,de)|0)+Math.imul(P,he)|0,o=o+Math.imul(P,de)|0;var Pe=(l+(r=r+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,ge)|0)+Math.imul(M,pe)|0))<<13)|0;l=((o=o+Math.imul(M,ge)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(K,oe),i=(i=Math.imul(K,se))+Math.imul(q,oe)|0,o=Math.imul(q,se),r=r+Math.imul(L,ce)|0,i=(i=i+Math.imul(L,le)|0)+Math.imul(j,ce)|0,o=o+Math.imul(j,le)|0,r=r+Math.imul(k,he)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(C,he)|0,o=o+Math.imul(C,de)|0;var Ne=(l+(r=r+Math.imul(O,pe)|0)|0)+((8191&(i=(i=i+Math.imul(O,ge)|0)+Math.imul(P,pe)|0))<<13)|0;l=((o=o+Math.imul(P,ge)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(K,ce),i=(i=Math.imul(K,le))+Math.imul(q,ce)|0,o=Math.imul(q,le),r=r+Math.imul(L,he)|0,i=(i=i+Math.imul(L,de)|0)+Math.imul(j,he)|0,o=o+Math.imul(j,de)|0;var ke=(l+(r=r+Math.imul(k,pe)|0)|0)+((8191&(i=(i=i+Math.imul(k,ge)|0)+Math.imul(C,pe)|0))<<13)|0;l=((o=o+Math.imul(C,ge)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(K,he),i=(i=Math.imul(K,de))+Math.imul(q,he)|0,o=Math.imul(q,de);var Ce=(l+(r=r+Math.imul(L,pe)|0)|0)+((8191&(i=(i=i+Math.imul(L,ge)|0)+Math.imul(j,pe)|0))<<13)|0;l=((o=o+Math.imul(j,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863;var Ue=(l+(r=Math.imul(K,pe))|0)+((8191&(i=(i=Math.imul(K,ge))+Math.imul(q,pe)|0))<<13)|0;return l=((o=Math.imul(q,ge))+(i>>>13)|0)+(Ue>>>26)|0,Ue&=67108863,c[0]=ye,c[1]=be,c[2]=me,c[3]=ve,c[4]=we,c[5]=Ee,c[6]=Se,c[7]=Ie,c[8]=Re,c[9]=Ae,c[10]=xe,c[11]=Me,c[12]=Te,c[13]=Oe,c[14]=Pe,c[15]=Ne,c[16]=ke,c[17]=Ce,c[18]=Ue,0!==l&&(c[19]=l,n.length++),n};function g(e,t,n){return(new y).mulp(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(p=f),o.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):r<63?f(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,o=0;o>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n.strip()}(this,e,t):g(this,e,t),n},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r>=1;return r},y.prototype.permute=function(e,t,n,r,i,o){for(var s=0;s>>=1)i++;return 1<>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s>=26,t+=i/67108864|0,t+=o>>>26,this.words[n]=67108863&o}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n>>i}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<s)for(this.length-=s,l=0;l=0&&(0!==u||l>=i);l--){var h=0|this.words[l];this.words[l]=u<<26-o|h>>>o,u=h&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i>26,this.words[i+n]=67108863&o;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l=0;h--){var d=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(d=Math.min(d/s|0,67108863),r._ishlnsubmul(i,d,h);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=d)}return a&&a.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),h=t.clone();!t.isZero();){for(var d=0,f=1;0==(t.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(u),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(h)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a,b:c,gcd:n.iushln(l)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,d=1;0==(n.words[0]&d)&&h<26;++h,d<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var o=t;t=n,n=o}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:ie.length)return 1;if(this.length=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){ri&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new I(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function m(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function v(){m.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){m.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function E(){m.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){m.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function I(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function R(e){I.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}m.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},m.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},m.prototype.split=function(e,t){e.iushrn(this.n,0,t)},m.prototype.imulK=function(e){return e.imul(this.k)},i(v,m),v.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i>>22,o=s}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},v.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new v;else if("p224"===e)t=new w;else if("p192"===e)t=new E;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},I.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},I.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},I.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},I.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},I.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},I.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},I.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},I.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},I.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},I.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},I.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},I.prototype.isqr=function(e){return this.imul(e,e.clone())},I.prototype.sqr=function(e){return this.mul(e,e)},I.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new o(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var h=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),f=this.pow(e,i),p=s;0!==f.cmp(a);){for(var g=f,y=0;0!==g.cmp(a);y++)g=g.redSqr();r(y=0;r--){for(var l=t.words[r],u=c-1;u>=0;u--){var h=l>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===u)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},I.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},I.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new R(e)},i(R,I),R.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},R.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},R.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},R.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},R.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},9931:(e,t,n)=>{var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n{var r=n(8162);e.exports=r("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")},3310:(e,t,n)=>{"use strict";var r=n(7191),i=n(9509).Buffer;e.exports=function(e){function t(t){var n=t.slice(0,-4),r=t.slice(-4),i=e(n);if(!(r[0]^i[0]|r[1]^i[1]|r[2]^i[2]|r[3]^i[3]))return n}return{encode:function(t){var n=e(t);return r.encode(i.concat([t,n],t.length+4))},decode:function(e){var n=t(r.decode(e));if(!n)throw new Error("Invalid checksum");return n},decodeUnsafe:function(e){var n=r.decodeUnsafe(e);if(n)return t(n)}}}},8334:(e,t,n)=>{"use strict";var r=n(3482),i=n(3310);e.exports=i((function(e){var t=r("sha256").update(e).digest();return r("sha256").update(t).digest()}))},8764:(e,t,n)=>{"use strict";var r=n(5108);const i=n(9742),o=n(645),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function c(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|y(e,t);let r=c(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(Q(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(Q(e,ArrayBuffer)||e&&Q(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(Q(e,SharedArrayBuffer)||e&&Q(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const i=function(e){if(l.isBuffer(e)){const t=0|g(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||X(e.length)?c(0):f(e);if("Buffer"===e.type&&Array.isArray(e.data))return f(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return h(e),c(e<0?0:0|g(e))}function f(e){const t=e.length<0?0:0|g(e.length),n=c(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function y(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||Q(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return J(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Z(e).length;default:if(i)return r?-1:J(e).length;t=(""+t).toLowerCase(),i=!0}}function b(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return N(this,t,n);case"utf8":case"utf-8":return M(this,t,n);case"ascii":return O(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return x(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),X(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){let o,s=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let r=-1;for(o=n;oa&&(n=a-c),o=n;o>=0;o--){let n=!0;for(let r=0;ri&&(r=i):r=i;const o=t.length;let s;for(r>o/2&&(r=o/2),s=0;s>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function x(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function M(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i239?4:t>223?3:t>191?2:1;if(i+s<=n){let n,r,a,c;switch(s){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(o=c));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(c=(15&t)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=e[i+1],r=e[i+2],a=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},l.byteLength=y,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},s&&(l.prototype[s]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,i){if(Q(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(o,s),c=this.slice(r,i),u=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return E(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":case"latin1":case"binary":return I(this,e,t,n);case"base64":return R(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function O(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;ir)&&(n=r);let i="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,n,r,i,o){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function L(e,t,n,r,i){F(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function j(e,t,n,r,i){F(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function z(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function K(e,t,n,r,i){return t=+t,n>>>=0,i||z(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function q(e,t,n,r,i){return t=+t,n>>>=0,i||z(e,0,n,8),o.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e],i=1,o=0;for(;++o>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||C(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=$((function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||C(e,t,this.length);let r=this[e],i=1,o=0;for(;++o=i&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||C(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},l.prototype.readInt8=function(e,t){return e>>>=0,t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||C(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||C(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=$((function(e){V(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||C(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||C(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||C(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||C(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){U(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[t]=255&e;++o>>=0,n>>>=0,!r){U(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=$((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=$((function(e,t=0){return j(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}let i=0,o=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}let i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=$((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=$((function(e,t=0){return j(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return K(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return K(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return q(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return q(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function F(e,t,n,r,i,o){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new D.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){V(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||H(t,e.length-(n+1))}(r,i,o)}function V(e,t){if("number"!=typeof e)throw new D.ERR_INVALID_ARG_TYPE(t,"number",e)}function H(e,t,n){if(Math.floor(e)!==e)throw V(e,n),new D.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new D.ERR_BUFFER_OUT_OF_BOUNDS;throw new D.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}B("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),B("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),B("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=W(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=W(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function J(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let s=0;s55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function Z(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Y(e,t,n,r){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function Q(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function X(e){return e!=e}const _=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function $(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},1924:(e,t,n)=>{"use strict";var r=n(210),i=n(5559),o=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&o(e,".prototype.")>-1?i(n):n}},5559:(e,t,n)=>{"use strict";var r=n(8612),i=n(210),o=i("%Function.prototype.apply%"),s=i("%Function.prototype.call%"),a=i("%Reflect.apply%",!0)||r.call(s,o),c=i("%Object.getOwnPropertyDescriptor%",!0),l=i("%Object.defineProperty%",!0),u=i("%Math.max%");if(l)try{l({},"a",{value:1})}catch(e){l=null}e.exports=function(e){var t=a(r,s,arguments);c&&l&&(c(t,"length").configurable&&l(t,"length",{value:1+u(0,e.length-(arguments.length-1))}));return t};var h=function(){return a(r,o,arguments)};l?l(e.exports,"apply",{value:h}):e.exports.apply=h},1027:(e,t,n)=>{var r=n(9509).Buffer,i=n(2830).Transform,o=n(2553).s;function s(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(5717)(s,i),s.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=s},5108:(e,t,n)=>{var r=n(9539),i=n(9282);function o(){return(new Date).getTime()}var s,a=Array.prototype.slice,c={};s=void 0!==n.g&&n.g.console?n.g.console:"undefined"!=typeof window&&window.console?window.console:{};for(var l=[[function(){},"log"],[function(){s.log.apply(s,arguments)},"info"],[function(){s.log.apply(s,arguments)},"warn"],[function(){s.warn.apply(s,arguments)},"error"],[function(e){c[e]=o()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=o()-t;s.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),s.error(e.stack)},"trace"],[function(e){s.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);i.ok(!1,r.format.apply(null,t))}},"assert"]],u=0;u{"use strict";var r=n(5717),i=n(2318),o=n(9785),s=n(9072),a=n(1027);function c(e){a.call(this,"digest"),this._hash=e}r(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new o:new c(s(e))}},4020:e=>{"use strict";var t="%[a-f0-9]{2}",n=new RegExp("("+t+")|([^%]+?)","gi"),r=new RegExp("("+t+")+","gi");function i(e,t){try{return[decodeURIComponent(e.join(""))]}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],i(n),i(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n)||[],r=1;r{"use strict";var r=n(2215),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),o=Object.prototype.toString,s=Array.prototype.concat,a=Object.defineProperty,c=n(1044)(),l=a&&c,u=function(e,t,n,r){if(t in e)if(!0===r){if(e[t]===n)return}else if("function"!=typeof(i=r)||"[object Function]"!==o.call(i)||!r())return;var i;l?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n},h=function(e,t){var n=arguments.length>2?arguments[2]:{},o=r(t);i&&(o=s.call(o,Object.getOwnPropertySymbols(t)));for(var a=0;a{"use strict";var r=t;r.version=n(8597).i8,r.utils=n(953),r.rand=n(9931),r.curve=n(8254),r.curves=n(5427),r.ec=n(7954),r.eddsa=n(5980)},4918:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.getNAF,s=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),r=o(t,1,this._bitLength),i=(1<=s;u--)c=(c<<1)+r[u];l.push(c)}for(var h=this.jpoint(null,null,null),d=this.jpoint(null,null,null),f=i;f>0;f--){for(s=0;s=0;l--){for(var u=0;l>=0&&0===s[l];l--)u++;if(l>=0&&u++,c=c.dblp(u),l<0)break;var h=s[l];a(0!==h),c="affine"===e.type?h>0?c.mixedAdd(i[h-1>>1]):c.mixedAdd(i[-h-1>>1].neg()):h>0?c.add(i[h-1>>1]):c.add(i[-h-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){var a,c,l,u=this._wnafT1,h=this._wnafT2,d=this._wnafT3,f=0;for(a=0;a=1;a-=2){var g=a-1,y=a;if(1===u[g]&&1===u[y]){var b=[t[g],null,null,t[y]];0===t[g].y.cmp(t[y].y)?(b[1]=t[g].add(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg())):0===t[g].y.cmp(t[y].y.redNeg())?(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].add(t[y].neg())):(b[1]=t[g].toJ().mixedAdd(t[y]),b[2]=t[g].toJ().mixedAdd(t[y].neg()));var m=[-3,-1,-5,-7,0,7,5,1,3],v=s(n[g],n[y]);for(f=Math.max(v[0].length,f),d[g]=new Array(f),d[y]=new Array(f),c=0;c=0;a--){for(var R=0;a>=0;){var A=!0;for(c=0;c=0&&R++,S=S.dblp(R),a<0)break;for(c=0;c0?l=h[c][x-1>>1]:x<0&&(l=h[c][-x-1>>1].neg()),S="affine"===l.type?S.mixedAdd(l):S.add(l))}}for(a=0;a=Math.ceil((e.bitLength()+1)/t.step)},l.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i{"use strict";var r=n(953),i=n(3550),o=n(5717),s=n(4918),a=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function l(e,t,n,r,o){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(c,s),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},o(l,s.BasePoint),c.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new l(this,e,t,n,r)},l.fromJSON=function(e,t){return new l(e,t[0],t[1],t[2])},l.prototype.inspect=function(){return this.isInfinity()?"":""},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=r.redAdd(t),s=o.redSub(n),a=r.redSub(t),c=i.redMul(s),l=o.redMul(a),u=i.redMul(a),h=s.redMul(o);return this.curve.point(c,l,h,u)},l.prototype._projDbl=function(){var e,t,n,r,i,o,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var l=(r=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(l.redSub(this.curve.two)),t=l.redMul(r.redSub(c)),n=l.redSqr().redSub(l).redSub(l)):(i=this.z.redSqr(),o=l.redSub(i).redISub(i),e=s.redSub(a).redISub(c).redMul(o),t=l.redMul(r.redSub(c)),n=l.redMul(o))}else r=a.redAdd(c),i=this.curve._mulC(this.z).redSqr(),o=r.redSub(i).redSub(i),e=this.curve._mulC(s.redISub(r)).redMul(o),t=this.curve._mulC(r).redMul(a.redISub(c)),n=r.redMul(o);return this.curve.point(e,t,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(t),s=i.redSub(r),a=i.redAdd(r),c=n.redAdd(t),l=o.redMul(s),u=a.redMul(c),h=o.redMul(c),d=s.redMul(a);return this.curve.point(l,u,d,h)},l.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),o=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(o).redMul(s),c=i.redSub(a),l=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(s),h=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(l).redMul(s.redSub(this.curve._mulA(o))),n=c.redMul(l)):(t=r.redMul(l).redMul(s.redSub(o)),n=this.curve._mulC(c).redMul(l)),this.curve.point(h,t,n)},l.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},l.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},l.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},l.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},8254:(e,t,n)=>{"use strict";var r=t;r.base=n(4918),r.short=n(6673),r.mont=n(2881),r.edwards=n(1138)},2881:(e,t,n)=>{"use strict";var r=n(3550),i=n(5717),o=n(4918),s=n(953);function a(e){o.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){o.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,o.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"":""},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(n),s=i.redMul(r),a=t.z.redMul(o.redAdd(s).redSqr()),c=t.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},6673:(e,t,n)=>{"use strict";var r=n(953),i=n(3550),o=n(5717),s=n(4918),a=r.assert;function c(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(c,s),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,o,s,a,c,l,u,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new i(1),g=new i(0),y=new i(0),b=new i(1),m=0;0!==d.cmpn(0);){var v=f.div(d);l=f.sub(v.mul(d)),u=y.sub(v.mul(p));var w=b.sub(v.mul(g));if(!r&&l.cmp(h)<0)t=c.neg(),n=p,r=l.neg(),o=u;else if(r&&2==++m)break;c=l,f=d,d=l,y=p,p=u,b=g,g=w}s=l.neg(),a=u;var E=r.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(E)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:o},{a:s,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),c=i.mul(n.b),l=o.mul(r.b);return{k1:e.sub(s).sub(a),k2:c.add(l).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(t&&!o||!t&&o)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o":""},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},l.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},l.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},l.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},l.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},l.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(u,s.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),u=l.redMul(a),h=r.redMul(l),d=c.redSqr().redIAdd(u).redISub(h).redISub(h),f=c.redMul(h.redISub(d)).redISub(o.redMul(u)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(d,f,p)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),u=n.redMul(c),h=a.redSqr().redIAdd(l).redISub(u).redISub(u),d=a.redMul(u.redISub(h)).redISub(i.redMul(l)),f=this.z.redMul(s);return this.curve.jpoint(h,d,f)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"":""},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},5427:(e,t,n)=>{"use strict";var r,i=t,o=n(3715),s=n(8254),a=n(953).assert;function c(e){"short"===e.type?this.curve=new s.short(e):"edwards"===e.type?this.curve=new s.edwards(e):this.curve=new s.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function l(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(1037)}catch(e){r=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},7954:(e,t,n)=>{"use strict";var r=n(3550),i=n(2156),o=n(953),s=n(5427),a=n(9931),c=o.assert,l=n(1251),u=n(611);function h(e){if(!(this instanceof h))return new h(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=h,h.prototype.keyPair=function(e){return new l(this,e)},h.prototype.keyFromPrivate=function(e,t){return l.fromPrivate(this,e,t)},h.prototype.keyFromPublic=function(e,t){return l.fromPublic(this,e,t)},h.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new r(2));;){var s=new r(t.generate(n));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},h.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},h.prototype.sign=function(e,t,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),c=e.toArray("be",s),l=new i({hash:this.hash,entropy:a,nonce:c,pers:o.pers,persEnc:o.persEnc||"utf8"}),h=this.n.sub(new r(1)),d=0;;d++){var f=o.k?o.k(d):new r(l.generate(this.n.byteLength()));if(!((f=this._truncateToN(f,!0)).cmpn(1)<=0||f.cmp(h)>=0)){var p=this.g.mul(f);if(!p.isInfinity()){var g=p.getX(),y=g.umod(this.n);if(0!==y.cmpn(0)){var b=f.invm(this.n).mul(y.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var m=(p.getY().isOdd()?1:0)|(0!==g.cmp(y)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),m^=1),new u({r:y,s:b,recoveryParam:m})}}}}}},h.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var o=(t=new u(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),l=c.mul(e).umod(this.n),h=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,n.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(l,n.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},h.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,i);var o=this.n,s=new r(e),a=t.r,l=t.s,h=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),h):this.curve.pointFromX(a,h);var f=t.r.invm(o),p=o.sub(s).mul(f).umod(o),g=l.mul(f).umod(o);return this.g.mulAdd(p,a,g)},h.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},1251:(e,t,n)=>{"use strict";var r=n(3550),i=n(953).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,n){return t instanceof o?t:new o(e,{pub:t,pubEnc:n})},o.fromPrivate=function(e,t,n){return t instanceof o?t:new o(e,{priv:t,privEnc:n})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},o.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return""}},611:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,o=0,s=t.place;o>>=0;return!(i<=127)&&(t.place=s,i)}function l(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;var o=c(e,n);if(!1===o)return!1;if(o+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=c(e,n);if(!1===s)return!1;var l=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var u=c(e,n);if(!1===u)return!1;if(e.length!==u+n.place)return!1;var h=e.slice(n.place,u+n.place);if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new r(l),this.s=new r(h),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=l(t),n=l(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var o=r.concat(n),s=[48];return u(s,o.length),s=s.concat(o),i.encode(s,e)}},5980:(e,t,n)=>{"use strict";var r=n(3715),i=n(5427),o=n(953),s=o.assert,a=o.parseBytes,c=n(9087),l=n(3622);function u(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),o=this.encodePoint(i),s=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),c=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:o})},u.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(o)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t{"use strict";var r=n(953),i=r.assert,o=r.parseBytes,s=r.cachedProperty;function a(e,t){this.eddsa=e,this._secret=o(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=o(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},a.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=a},3622:(e,t,n)=>{"use strict";var r=n(3550),i=n(953),o=i.assert,s=i.cachedProperty,a=i.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),o(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},1037:e=>{e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},953:(e,t,n)=>{"use strict";var r=t,i=n(3550),o=n(9746),s=n(4504);r.assert=o,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<(i>>1)-1?(i>>1)-c:c,o.isubn(a)):a=0,r[s]=a,o.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,c=e.andln(3)+i&3,l=t.andln(3)+o&3;3===c&&(c=-1),3===l&&(l=-1),s=0==(1&c)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==l?c:-c,n[0].push(s),a=0==(1&l)?0:3!==(r=t.andln(7)+o&7)&&5!==r||2!==c?l:-l,n[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},8091:e=>{"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),r=1;r{"use strict";var r,i=n(5108),o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}m(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&m(e,"error",t,n)}(e,i,{once:!0})}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var l=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function d(e,t,n,r){var o,s,a,c;if(u(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]),void 0===a)a=s[t]=n,++e._eventsCount;else if("function"==typeof a?a=s[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=h(e))>0&&a.length>o&&!a.warned){a.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=a.length,c=l,i&&i.warn&&i.warn(c)}return e}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function g(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var l=c.length,u=b(c,l);for(n=0;n=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return g(this,e,!0)},c.prototype.rawListeners=function(e){return g(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):y.call(e,t)},c.prototype.listenerCount=y,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},4029:(e,t,n)=>{"use strict";var r=n(5320),i=Object.prototype.toString,o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){if(!r(t))throw new TypeError("iterator must be a function");var s;arguments.length>=3&&(s=n),"[object Array]"===i.call(e)?function(e,t,n){for(var r=0,i=e.length;r{"use strict";var t=Array.prototype.slice,n=Object.prototype.toString;e.exports=function(e){var r=this;if("function"!=typeof r||"[object Function]"!==n.call(r))throw new TypeError("Function.prototype.bind called on incompatible "+r);for(var i,o=t.call(arguments,1),s=Math.max(0,r.length-o.length),a=[],c=0;c{"use strict";var r=n(7648);e.exports=Function.prototype.bind||r},210:(e,t,n)=>{"use strict";var r,i=SyntaxError,o=Function,s=TypeError,a=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var l=function(){throw new s},u=c?function(){try{return l}catch(e){try{return c(arguments,"callee").get}catch(e){return l}}}():l,h=n(1405)(),d=n(8185)(),f=Object.getPrototypeOf||(d?function(e){return e.__proto__}:null),p={},g="undefined"!=typeof Uint8Array&&f?f(Uint8Array):r,y={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":h&&f?f([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":p,"%AsyncGenerator%":p,"%AsyncGeneratorFunction%":p,"%AsyncIteratorPrototype%":p,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?r:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":p,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":h&&f?f(f([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&h&&f?f((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&h&&f?f((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":h&&f?f(""[Symbol.iterator]()):r,"%Symbol%":h?Symbol:r,"%SyntaxError%":i,"%ThrowTypeError%":u,"%TypedArray%":g,"%TypeError%":s,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet};if(f)try{null.error}catch(e){var b=f(f(e));y["%Error.prototype%"]=b}var m=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&f&&(n=f(i.prototype))}return y[t]=n,n},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},w=n(8612),E=n(7642),S=w.call(Function.call,Array.prototype.concat),I=w.call(Function.apply,Array.prototype.splice),R=w.call(Function.call,String.prototype.replace),A=w.call(Function.call,String.prototype.slice),x=w.call(Function.call,RegExp.prototype.exec),M=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,T=/\\(\\)?/g,O=function(e,t){var n,r=e;if(E(v,r)&&(r="%"+(n=v[r])[0]+"%"),E(y,r)){var o=y[r];if(o===p&&(o=m(r)),void 0===o&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new i("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');if(null===x(/^%?[^%]*%?$/,e))throw new i("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=function(e){var t=A(e,0,1),n=A(e,-1);if("%"===t&&"%"!==n)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new i("invalid intrinsic syntax, expected opening `%`");var r=[];return R(e,M,(function(e,t,n,i){r[r.length]=n?R(i,T,"$1"):t||e})),r}(e),r=n.length>0?n[0]:"",o=O("%"+r+"%",t),a=o.name,l=o.value,u=!1,h=o.alias;h&&(r=h[0],I(n,S([0,1],h)));for(var d=1,f=!0;d=n.length){var m=c(l,p);l=(f=!!m)&&"get"in m&&!("originalValue"in m.get)?m.get:l[p]}else f=E(l,p),l=l[p];f&&!u&&(y[a]=l)}}return l}},7296:(e,t,n)=>{"use strict";var r=n(210)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},1044:(e,t,n)=>{"use strict";var r=n(210)("%Object.defineProperty%",!0),i=function(){if(r)try{return r({},"a",{value:1}),!0}catch(e){return!1}return!1};i.hasArrayLengthDefineBug=function(){if(!i())return null;try{return 1!==r([],"length",{value:1}).length}catch(e){return!0}},e.exports=i},8185:e=>{"use strict";var t={foo:{}},n=Object;e.exports=function(){return{__proto__:t}.foo===t.foo&&!({__proto__:null}instanceof n)}},1405:(e,t,n)=>{"use strict";var r="undefined"!=typeof Symbol&&Symbol,i=n(5419);e.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&i())))}},5419:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},6410:(e,t,n)=>{"use strict";var r=n(5419);e.exports=function(){return r()&&!!Symbol.toStringTag}},7642:(e,t,n)=>{"use strict";var r=n(8612);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},3349:(e,t,n)=>{"use strict";var r=n(9509).Buffer,i=n(8473).Transform;function o(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(5717)(o,i),o.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},3715:(e,t,n)=>{var r=t;r.utils=n(6436),r.common=n(5772),r.sha=n(9041),r.ripemd=n(2949),r.hmac=n(2344),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},5772:(e,t,n)=>{"use strict";var r=n(6436),i=n(9746);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o{"use strict";var r=n(6436),i=n(9746);function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=o,o.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t{"use strict";var r=n(6436),i=n(5772),o=r.rotl32,s=r.sum32,a=r.sum32_3,c=r.sum32_4,l=i.BlockHash;function u(){if(!(this instanceof u))return new u;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function f(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,l),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],l=this.h[3],u=this.h[4],m=n,v=r,w=i,E=l,S=u,I=0;I<80;I++){var R=s(o(c(n,h(I,r,i,l),e[p[I]+t],d(I)),y[I]),u);n=u,u=l,l=o(i,10),i=r,r=R,R=s(o(c(m,h(79-I,v,w,E),e[g[I]+t],f(I)),b[I]),S),m=S,S=E,E=o(w,10),w=v,v=R}R=a(this.h[1],i,E),this.h[1]=a(this.h[2],l,S),this.h[2]=a(this.h[3],u,m),this.h[3]=a(this.h[4],n,v),this.h[4]=a(this.h[0],r,w),this.h[0]=R},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],y=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},9041:(e,t,n)=>{"use strict";t.sha1=n(4761),t.sha224=n(799),t.sha256=n(9344),t.sha384=n(772),t.sha512=n(5900)},4761:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(7038),s=r.rotl32,a=r.sum32,c=r.sum32_5,l=o.ft_1,u=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),i=n(9344);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},9344:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(7038),s=n(9746),a=r.sum32,c=r.sum32_4,l=r.sum32_5,u=o.ch32,h=o.maj32,d=o.s0_256,f=o.s1_256,p=o.g0_256,g=o.g1_256,y=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function m(){if(!(this instanceof m))return new m;y.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(m,y),e.exports=m,m.blockSize=512,m.outSize=256,m.hmacStrength=192,m.padLength=64,m.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436),i=n(5900);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},5900:(e,t,n)=>{"use strict";var r=n(6436),i=n(5772),o=n(9746),s=r.rotr64_hi,a=r.rotr64_lo,c=r.shr64_hi,l=r.shr64_lo,u=r.sum64,h=r.sum64_hi,d=r.sum64_lo,f=r.sum64_4_hi,p=r.sum64_4_lo,g=r.sum64_5_hi,y=r.sum64_5_lo,b=i.BlockHash,m=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function v(){if(!(this instanceof v))return new v;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=m,this.W=new Array(160)}function w(e,t,n,r,i){var o=e&n^~e&i;return o<0&&(o+=4294967296),o}function E(e,t,n,r,i,o){var s=t&r^~t&o;return s<0&&(s+=4294967296),s}function S(e,t,n,r,i){var o=e&n^e&i^n&i;return o<0&&(o+=4294967296),o}function I(e,t,n,r,i,o){var s=t&r^t&o^r&o;return s<0&&(s+=4294967296),s}function R(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=a(e,t,14)^a(e,t,18)^a(t,e,9);return n<0&&(n+=4294967296),n}function T(e,t){var n=s(e,t,1)^s(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=a(e,t,1)^a(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function P(e,t){var n=s(e,t,19)^s(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function N(e,t){var n=a(e,t,19)^a(t,e,29)^l(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(v,b),e.exports=v,v.blockSize=1024,v.outSize=512,v.hmacStrength=192,v.padLength=128,v.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r{"use strict";var r=n(6436).rotr32;function i(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?o(t,n,r):void 0},t.ch32=i,t.maj32=o,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},6436:(e,t,n)=>{"use strict";var r=n(9746),i=n(5717);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i>6|192,n[r++]=63&s|128):o(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],o=r+e[t+1]>>>0,s=(o>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,o,s,a){var c=0,l=t;return c+=(l=l+r>>>0)>>0)>>0)>>0},t.sum64_4_lo=function(e,t,n,r,i,o,s,a){return t+r+o+a>>>0},t.sum64_5_hi=function(e,t,n,r,i,o,s,a,c,l){var u=0,h=t;return u+=(h=h+r>>>0)>>0)>>0)>>0)>>0},t.sum64_5_lo=function(e,t,n,r,i,o,s,a,c,l){return t+r+o+a+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},2156:(e,t,n)=>{"use strict";var r=n(3715),i=n(4504),o=n(9746);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var o=[];o.length{t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,c=(1<>1,u=-7,h=n?i-1:0,d=n?-1:1,f=e[t+h];for(h+=d,o=f&(1<<-u)-1,f>>=-u,u+=a;u>0;o=256*o+e[t+h],h+=d,u-=8);for(s=o&(1<<-u)-1,o>>=-u,u+=r;u>0;s=256*s+e[t+h],h+=d,u-=8);if(0===o)o=1-l;else{if(o===c)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,r),o-=l}return(f?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,c,l=8*o-i-1,u=(1<>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:o-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=u):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+h>=1?d/c:d*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=u?(a=0,s=u):s+h>=1?(a=(t*c-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[n+f]=255&a,f+=p,a/=256,i-=8);for(s=s<0;e[n+f]=255&s,f+=p,s/=256,l-=8);e[n+f-p]|=128*g}},5717:e=>{"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},2584:(e,t,n)=>{"use strict";var r=n(6410)(),i=n(1924)("Object.prototype.toString"),o=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===i(e)},s=function(e){return!!o(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==i(e)&&"[object Function]"===i(e.callee)},a=function(){return o(arguments)}();o.isLegacyArguments=s,e.exports=a?o:s},5320:e=>{"use strict";var t,n,r=Function.prototype.toString,i="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof i&&"function"==typeof Object.defineProperty)try{t=Object.defineProperty({},"length",{get:function(){throw n}}),n={},i((function(){throw 42}),null,t)}catch(e){e!==n&&(i=null)}else i=null;var o=/^\s*class\b/,s=function(e){try{var t=r.call(e);return o.test(t)}catch(e){return!1}},a=function(e){try{return!s(e)&&(r.call(e),!0)}catch(e){return!1}},c=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),h=function(){return!1};if("object"==typeof document){var d=document.all;c.call(d)===c.call(document.all)&&(h=function(e){if((u||!e)&&(void 0===e||"object"==typeof e))try{var t=c.call(e);return("[object HTMLAllCollection]"===t||"[object HTML document.all class]"===t||"[object HTMLCollection]"===t||"[object Object]"===t)&&null==e("")}catch(e){}return!1})}e.exports=i?function(e){if(h(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;try{i(e,null,t)}catch(e){if(e!==n)return!1}return!s(e)&&a(e)}:function(e){if(h(e))return!0;if(!e)return!1;if("function"!=typeof e&&"object"!=typeof e)return!1;if(l)return a(e);if(s(e))return!1;var t=c.call(e);return!("[object Function]"!==t&&"[object GeneratorFunction]"!==t&&!/^\[object HTML/.test(t))&&a(e)}},8662:(e,t,n)=>{"use strict";var r,i=Object.prototype.toString,o=Function.prototype.toString,s=/^\s*(?:function)?\*/,a=n(6410)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(s.test(o.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===i.call(e);if(!c)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&c(t)}return c(e)===r}},8611:e=>{"use strict";e.exports=function(e){return e!=e}},360:(e,t,n)=>{"use strict";var r=n(5559),i=n(4289),o=n(8611),s=n(9415),a=n(3194),c=r(s(),Number);i(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},9415:(e,t,n)=>{"use strict";var r=n(8611);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},3194:(e,t,n)=>{"use strict";var r=n(4289),i=n(9415);e.exports=function(){var e=i();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},5692:(e,t,n)=>{"use strict";var r=n(4029),i=n(3083),o=n(1924),s=o("Object.prototype.toString"),a=n(6410)(),c=n(7296),l="undefined"==typeof globalThis?n.g:globalThis,u=i(),h=o("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n-1}return!!c&&function(e){var t=!1;return r(f,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},3006:function(e,t){"use strict";var n,r=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IconUI=void 0;const i="kukai-icon";t.IconUI=class{constructor(){n.set(this,(()=>document.getElementById(i)))}async init(e,t){var o;if(this.isInit)throw new Error("Kukai-Embed Already Present");{let s=document.createElement("button");s.id=i;let a=document.createElement("img");a.style.width="60px",a.style.height="60px",a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEhQTFRF0dH/amn+urn/o6L+8/P/U1L+9PP/Xl3+mJf+3dz/gYD+3Nz/xcX/jIz+jIv+o6P/dXT+urr/xsX/6Oj/r67/////R0b+////pIBhiAAAABh0Uk5T//////////////////////////////8AzRMu6gAAAaZJREFUeNqsl9uSgyAMhgNyUNS2eyB9/zddXHW1QAKW/ccrhm8MSUgCPAkpkN2vJChqD2RBOVs8yc5SVcLgMCMHFbC0SMjKAgwCGQlgYNVjQb2i4FFgUWLMw5PGCukpB0uslEzhavZE7/CEFzS9wqO+AuvxDCuBlyTUCe7xovoDBrws+IMTox/Rin3EPhE7HEdJD94P59037/0tE68Fju9RH/b6/pX1Jr5jK5ycGJbN8Mp6nzl1+BwPu5VNfuEWWCELC/PLmjQTVIAlC9NscBk8Zw5mWJwDbBl4CRrFBn+DQhpm2XBoABousAggafiDZ1FCR8Irm+TloY6GN9YPb8CH7i2wF2/B5pM1nIWN0F+c4R0ZqjVGjjNckkmyxZczHMj03HLDGtpwxV+MvSZlDbelKxk0UIbPxWIQyjCVKrJchhC/CcNVRQFEbbIV0FWV3j3Yj1zpTfwdw1vg77min7gs7hgofLxytJu40WmIehXeTLwi6BYrYtfquG/C/zT3trGiaaBpG6Xahri28bFtcG0bmduG9bZnQuMDpfFp1Pgoq38O/ggwACoyIQpeKqtUAAAAAElFTkSuQmCC",s.innerHTML=a.outerHTML,t?s.className=t:(s.style.width="60px",s.style.height="60px",s.style.bottom="40px",s.style.left="40px",s.style.position="fixed",s.style.borderRadius="50px",s.style.boxShadow="2px 2px 3px #999",s.style.padding="0",s.style.border="0"),s.style.zIndex="99998",s.style.display="none",document.body.appendChild(s),null===(o=r(this,n).call(this))||void 0===o||o.addEventListener("click",e)}}get isInit(){return!!r(this,n).call(this)}deinit(){const e=r(this,n).call(this);e&&document.body.removeChild(e)}show(){const e=r(this,n).call(this);e&&(e.style.display="block")}hide(){const e=r(this,n).call(this);e&&(e.style.display="none")}},n=new WeakMap},7771:function(e,t,n){"use strict";var r,i,o=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},s=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.IFrameKukai=void 0;const a=n(5308),c="kukai-iframe";t.IFrameKukai=class{constructor(e){r.set(this,void 0),i.set(this,(()=>document.getElementById(c))),o(this,r,e)}show(){const e=s(this,i).call(this);e&&(e.style.display="block")}hide(){const e=s(this,i).call(this);e&&(e.style.display="none")}isHidden(){const e=s(this,i).call(this);return"none"===(null==e?void 0:e.style.display)}toCard(){const e=s(this,i).call(this);e&&(e.style.position="fixed",e.style.top="",e.style.bottom="70px",e.style.left="70px",e.style.borderRadius="10px",e.style.border="0",e.style.width="400px",e.style.height="200px")}isCard(){const e=s(this,i).call(this);return"10px"===(null==e?void 0:e.style.borderRadius)}toFullScreen(){const e=s(this,i).call(this);e&&(e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.borderRadius="0px",e.style.border="0",e.style.width="100%",e.style.height="100%")}async init(e){if(s(this,i).call(this))throw new Error("Kukai-Embed Already Present");{let t=document.createElement("iframe");const n=e?`?instanceId=${e}`:"";t.src=s(this,r)+"/embedded"+n,t.id=c,t.style.zIndex="99999",t.style.display="none",t.sandbox.add("allow-scripts"),t.sandbox.add("allow-same-origin"),t.sandbox.add("allow-popups"),t.sandbox.add("allow-forms");const{promise:i,deferred:o}=a.defer();try{return t.addEventListener("load",(()=>o.resolve())),document.body.appendChild(t),await i.then((()=>this.toFullScreen()))}catch(e){throw o.reject(e),e}}}get isInit(){return!!s(this,i).call(this)}deinit(){const e=s(this,i).call(this);e&&document.body.removeChild(e)}request(e){var t,n;null===(n=null===(t=s(this,i).call(this))||void 0===t?void 0:t.contentWindow)||void 0===n||n.postMessage(JSON.stringify(e),s(this,r)?s(this,r):"*")}},r=new WeakMap,i=new WeakMap},6257:function(e,t,n){"use strict";var r,i,o,s,a=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),c=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)},l=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},u=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiEmbed=t.Networks=void 0;const h=n(5272);Object.defineProperty(t,"Networks",{enumerable:!0,get:function(){return h.Networks}});const d=n(5308),f=n(7771),p=n(3006),g=n(3163);c(n(5272),t);const y="kukai-embed-instance-id";t.KukaiEmbed=class{constructor(e={}){r.set(this,void 0),i.set(this,void 0),o.set(this,null),s.set(this,null);const t={net:h.Networks.mainnet,icon:!1,enableLogging:void 0!==e.net&&e.net!==h.Networks.mainnet,...e},n=d.networkToSrc(t.net),a=new f.IFrameKukai(n);l(this,r,a),l(this,i,new g.KukaiMessaging(a,n,t.enableLogging)),t.icon&&l(this,o,new p.IconUI)}async init(){var e;if(this.initialized)throw new Error("Kukai-Embed Already Present");const t=window.sessionStorage.getItem(y),n=t||void 0;let a=async e=>{let t=u(this,i).init(window);return u(this,r).init(n),await t};if(n){const t=window.sessionStorage.getItem(n);t?(await a(),l(this,s,JSON.parse(t)),u(this,r).toCard(),u(this,r).hide(),null===(e=u(this,o))||void 0===e||e.init((()=>this.toggle())).then((()=>{var e;return null===(e=u(this,o))||void 0===e?void 0:e.show()}))):await a()}else await a()}get initialized(){return u(this,r).isInit&&u(this,i).isInit}deinit(){var e;u(this,i).deinit(),u(this,r).deinit(),null===(e=u(this,o))||void 0===e||e.deinit()}get user(){return u(this,s)}async login(e={}){var t;if(!this.initialized)throw new Error("Cannot login: Embed Uninitialized");if(null===(t=this.user)||void 0===t?void 0:t.pk)throw new Error("Already logged in");if(!this.user&&"high"===(null==e?void 0:e.customPrio)){let t=JSON.parse(JSON.stringify(e));t.customPrio=h.LoginPrio.Low;const n=await this.login(t);if(null==n?void 0:n.pk)return n}return u(this,r).toFullScreen(),u(this,r).show(),await u(this,i).login(e).then((({pk:t,pkh:n,userData:a,instanceId:c})=>{var h;window.sessionStorage.setItem(y,c),window.sessionStorage.setItem(c,JSON.stringify({pk:t,pkh:n,userData:a})),null===(h=u(this,o))||void 0===h||h.init((()=>this.toggle())).then((()=>{var e;return null===(e=u(this,o))||void 0===e?void 0:e.show()})),l(this,s,{pk:t,pkh:n,userData:a});return e.customSpinnerDismissal?{...u(this,s),dismissCallback:async()=>await u(this,i).dismiss().finally((()=>{u(this,r).hide(),u(this,r).toCard()}))}:u(this,s)})).catch((t=>{throw e.customSpinnerDismissal=!1,t})).finally((()=>{e.customSpinnerDismissal||(u(this,r).hide(),u(this,r).toCard())}))}async logout(){if(!this.initialized)throw new Error("Cannot logout: Embed Uninitialized");return u(this,r).isCard()&&!u(this,r).isHidden()&&await u(this,i).card(!1),await u(this,i).logout().then((e=>{var t,n;try{const e=window.sessionStorage.getItem(y),t=e||void 0;t&&window.sessionStorage.removeItem(t)}catch(e){}window.sessionStorage.removeItem(y),u(this,r).hide(),null===(t=u(this,o))||void 0===t||t.hide(),null===(n=u(this,o))||void 0===n||n.deinit(),l(this,s,null)})).finally((()=>u(this,r).hide()))}async send(e,t){if(!this.initialized)throw new Error("Cannot send: Embed Uninitialized");return(null==t?void 0:t.silent)||(u(this,r).isCard()&&!u(this,r).isHidden()&&await u(this,i).card(!1),u(this,r).toFullScreen(),u(this,r).show()),await u(this,i).operation(e,t).then((e=>e.opHash)).finally((()=>{(null==t?void 0:t.silent)||(u(this,r).toCard(),u(this,r).hide())}))}async trackOperation(e){if(!this.initialized)throw new Error("Cannot track: Embed Uninitialized");return await u(this,i).track(e)}async signExpr(e,t){if(!this.initialized)throw new Error("Cannot sign: Embed Uninitialized");return u(this,r).isCard()&&!u(this,r).isHidden()&&await u(this,i).card(!1),u(this,r).toFullScreen(),u(this,r).show(),await u(this,i).signExpr(e,t).then((e=>e.signature)).finally((()=>{u(this,r).hide(),u(this,r).toCard()}))}async authenticate(e,t){if(!this.initialized)throw new Error("Cannot authenticate: Embed Uninitialized");return await u(this,i).authenticate(e,t).then((({message:e,signature:t})=>({message:e,signature:t})))}async toggle(){u(this,r).isHidden()?(u(this,r).toCard(),u(this,r).show(),u(this,i).card(!0)):await u(this,i).card(!1).then((()=>{u(this,r).hide()}))}},r=new WeakMap,i=new WeakMap,o=new WeakMap,s=new WeakMap},3163:function(e,t,n){"use strict";var r,i,o,s,a,c,l,u,h,d,f,p,g,y,b,m,v,w,E,S=n(5108),I=this&&this.__classPrivateFieldSet||function(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n},R=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.KukaiMessaging=void 0;const A=n(5272),x=n(5308);class M{constructor(e){r.set(this,{}),i.set(this,void 0),I(this,i,e)}async listen(e){const{promise:t,deferred:n}=x.defer();return R(this,r)[e]=n,await t}handle(e){var t;const n=R(this,i).call(this,e);null===(t=R(this,r)[n])||void 0===t||t.resolve(e),delete R(this,r)[n]}}r=new WeakMap,i=new WeakMap;class T{constructor(){o.set(this,[])}async listen(){const{promise:e,deferred:t}=x.defer();return R(this,o).push(t),await e}get length(){return R(this,o).length}handle(e){var t;null===(t=R(this,o).shift())||void 0===t||t.resolve(e)}}o=new WeakMap;class O{constructor(){s.set(this,null)}async listen(){if(R(this,s))throw new Error("OCCUPIED");{const{promise:e,deferred:t}=x.defer();return I(this,s,t),await e}}handle(e){var t;null===(t=R(this,s))||void 0===t||t.resolve(e),I(this,s,null)}}s=new WeakMap;class P{constructor(e,t){a.set(this,void 0),c.set(this,void 0),l.set(this,new O),u.set(this,new T),h.set(this,new T),d.set(this,new O),f.set(this,new M((e=>e.opHash))),p.set(this,new T),g.set(this,new T),y.set(this,new T),b.set(this,new T),m.set(this,(e=>{switch(e.type){case A.ResponseTypes.cardResponse:R(this,u).handle(e);break;case A.ResponseTypes.loginResponse:R(this,h).handle(e);break;case A.ResponseTypes.operationResponse:R(this,d).handle(e);break;case A.ResponseTypes.trackResponse:R(this,f).handle(e);break;case A.ResponseTypes.logoutResponse:R(this,p).handle(e);break;case A.ResponseTypes.signExprResponse:R(this,g).handle(e);break;case A.ResponseTypes.authResponse:R(this,y).handle(e);break;case A.ResponseTypes.initComplete:R(this,l).handle(e);break;case A.ResponseTypes.dismissResponse:R(this,b).handle(e)}})),I(this,a,e),I(this,c,t)}async init(){return await R(this,l).listen()}async login(){return await R(this,h).listen()}async operation(){return await R(this,d).listen()}async track(e){return await R(this,f).listen(e)}async logout(){return await R(this,p).listen()}async signExpr(){return await R(this,g).listen()}async auth(){return await R(this,y).listen()}async card(){return await R(this,u).listen()}async dismiss(){return await R(this,b).listen()}handleEvent(e){if("message"===e.type&&e.origin===R(this,a)){R(this,c)&&S.log(`Received ${e.data} from ${e.origin}`);const t=JSON.parse(e.data);R(this,m).call(this,t)}else S.warn(e.origin)}}a=new WeakMap,c=new WeakMap,l=new WeakMap,u=new WeakMap,h=new WeakMap,d=new WeakMap,f=new WeakMap,p=new WeakMap,g=new WeakMap,y=new WeakMap,b=new WeakMap,m=new WeakMap;t.KukaiMessaging=class{constructor(e,t,n){v.set(this,void 0),w.set(this,void 0),E.set(this,null),I(this,w,e),I(this,v,new P(t,n))}async init(e){if(R(this,E))throw new Error("Already Initialized");return I(this,E,e),e.addEventListener("message",R(this,v)),await R(this,v).init().then((e=>{if(e.failed)throw new Error("Init Failed: "+e.error)}))}get isInit(){return!!R(this,E)}deinit(){R(this,E)&&(R(this,E).removeEventListener("message",R(this,v)),I(this,E,null))}async card(e){return R(this,w).request({type:A.RequestTypes.cardRequest,show:e}),await R(this,v).card().then((e=>{if(e.failed)throw new Error("Card Failed: "+e.error)}))}async login(e){return R(this,w).request({type:A.RequestTypes.loginRequest,config:e}),await R(this,v).login().then((e=>{if(e.failed)throw new Error("Login Failed: "+e.error);return e}))}async operation(e,t){return R(this,w).request({type:A.RequestTypes.operationRequest,operations:e,ui:t}),await R(this,v).operation().then((e=>{if(e.failed)throw new Error("Operation Failed: "+e.error);return e})).catch((e=>{throw"OCCUPIED"===e.message?new Error("Cannot send: Operation in progress"):e}))}async track(e){return R(this,w).request({type:A.RequestTypes.trackRequest,opHash:e}),await R(this,v).track(e).then((e=>{if(e.failed)throw new Error("Track Failed: "+e.error);return e}))}async logout(){return R(this,w).request({type:A.RequestTypes.logoutRequest}),await R(this,v).logout().then((e=>{if(e.failed)throw new Error("Logout Failed: "+e.error);return e}))}async signExpr(e,t){return R(this,w).request({type:A.RequestTypes.signExprRequest,expr:e,ui:t}),await R(this,v).signExpr().then((e=>{if(e.failed)throw new Error("Signing Failed: "+e.error);return e}))}async authenticate(e,t){return R(this,w).request({type:A.RequestTypes.authRequest,id:e,nonce:t}),await R(this,v).auth().then((e=>{if(e.failed)throw new Error("Auth Failed: "+e.error);return e}))}async dismiss(){return R(this,w).request({type:A.RequestTypes.dismissRequest}),await R(this,v).dismiss().then((e=>{if(e.failed)throw new Error("Dismiss Failed: "+e.error)}))}},v=new WeakMap,w=new WeakMap,E=new WeakMap},5272:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ResponseTypes=t.RequestTypes=t.LoginPrio=t.TypeOfLogin=t.Networks=void 0,function(e){e.mainnet="mainnet",e.ghostnet="ghostnet",e.ithacanet="ithacanet",e.jakartanet="jakartanet",e.kathmandu="kathmandu",e.dev="dev",e.local="local"}(t.Networks||(t.Networks={})),function(e){e.Google="google",e.Reddit="reddit",e.Twitter="twitter",e.Facebook="facebook"}(t.TypeOfLogin||(t.TypeOfLogin={})),function(e){e.LowFast="low_always_skip_key",e.Low="low",e.High="high"}(t.LoginPrio||(t.LoginPrio={})),function(e){e.loginRequest="login_request",e.operationRequest="operation_request",e.trackRequest="track_request",e.logoutRequest="logout_request",e.signExprRequest="sign_expr_request",e.authRequest="authentication_request",e.cardRequest="card_request",e.dismissRequest="dismiss_request"}(t.RequestTypes||(t.RequestTypes={})),function(e){e.initComplete="init_complete",e.loginResponse="login_response",e.operationResponse="operation_response",e.trackResponse="track_response",e.logoutResponse="logout_response",e.signExprResponse="sign_expr_response",e.authResponse="authentication_response",e.cardResponse="card_response",e.dismissResponse="dismiss_response"}(t.ResponseTypes||(t.ResponseTypes={}))},5308:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.networkToSrc=t.defer=void 0;const r=n(5272);t.defer=()=>{let e={resolve:e=>{},reject:e=>{}};const t=new Promise(((t,n)=>{e={resolve:t,reject:n}}));return{deferred:e,promise:t}};t.networkToSrc=e=>{switch(e){case r.Networks.mainnet:return"https://wallet.kukai.app";case r.Networks.ghostnet:return"https://ghostnet.kukai.app";case r.Networks.ithacanet:return"https://ithacanet.kukai.app";case r.Networks.jakartanet:return"https://jakartanet.kukai.app";case r.Networks.kathmandu:return"https://kathmandu.kukai.app";case r.Networks.dev:return"https://ichabod-dev.kukai.app";case r.Networks.local:return"http://localhost:4200";default:return e}}},2307:(e,t,n)=>{e=n.nmd(e);var r="__lodash_hash_undefined__",i=1,o=2,s=9007199254740991,a="[object Arguments]",c="[object Array]",l="[object AsyncFunction]",u="[object Boolean]",h="[object Date]",d="[object Error]",f="[object Function]",p="[object GeneratorFunction]",g="[object Map]",y="[object Number]",b="[object Null]",m="[object Object]",v="[object Promise]",w="[object Proxy]",E="[object RegExp]",S="[object Set]",I="[object String]",R="[object Symbol]",A="[object Undefined]",x="[object WeakMap]",M="[object ArrayBuffer]",T="[object DataView]",O=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,N={};N["[object Float32Array]"]=N["[object Float64Array]"]=N["[object Int8Array]"]=N["[object Int16Array]"]=N["[object Int32Array]"]=N["[object Uint8Array]"]=N["[object Uint8ClampedArray]"]=N["[object Uint16Array]"]=N["[object Uint32Array]"]=!0,N[a]=N[c]=N[M]=N[u]=N[T]=N[h]=N[d]=N[f]=N[g]=N[y]=N[m]=N[E]=N[S]=N[I]=N[x]=!1;var k="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,C="object"==typeof self&&self&&self.Object===Object&&self,U=k||C||Function("return this")(),L=t&&!t.nodeType&&t,j=L&&e&&!e.nodeType&&e,z=j&&j.exports===L,K=z&&k.process,q=function(){try{return K&&K.binding&&K.binding("util")}catch(e){}}(),D=q&&q.isTypedArray;function B(e,t){for(var n=-1,r=null==e?0:e.length;++nl))return!1;var h=a.get(e);if(h&&a.get(t))return h==t;var d=-1,f=!0,p=n&o?new Me:void 0;for(a.set(e,t),a.set(t,e);++d-1},Ae.prototype.set=function(e,t){var n=this.__data__,r=Pe(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},xe.prototype.clear=function(){this.size=0,this.__data__={hash:new Re,map:new(de||Ae),string:new Re}},xe.prototype.delete=function(e){var t=Ke(this,e).delete(e);return this.size-=t?1:0,t},xe.prototype.get=function(e){return Ke(this,e).get(e)},xe.prototype.has=function(e){return Ke(this,e).has(e)},xe.prototype.set=function(e,t){var n=Ke(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Me.prototype.add=Me.prototype.push=function(e){return this.__data__.set(e,r),this},Me.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.clear=function(){this.__data__=new Ae,this.size=0},Te.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Te.prototype.get=function(e){return this.__data__.get(e)},Te.prototype.has=function(e){return this.__data__.has(e)},Te.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Ae){var r=n.__data__;if(!de||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new xe(r)}return n.set(e,t),this.size=n.size,this};var De=ce?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,r=null==e?0:e.length,i=0,o=[];++n-1&&e%1==0&&e-1&&e%1==0&&e<=s}function Qe(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Xe(e){return null!=e&&"object"==typeof e}var _e=D?function(e){return function(t){return e(t)}}(D):function(e){return Xe(e)&&Ye(e.length)&&!!N[Ne(e)]};function $e(e){return null!=(t=e)&&Ye(t.length)&&!Ze(t)?Oe(e):Le(e);var t}e.exports=function(e,t){return Ce(e,t)}},2318:(e,t,n)=>{"use strict";var r=n(5717),i=n(3349),o=n(9509).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<>>32-t}function l(e,t,n,r,i,o,s){return c(e+(t&n|~t&r)+i+o|0,s)+t|0}function u(e,t,n,r,i,o,s){return c(e+(t&r|n&~r)+i+o|0,s)+t|0}function h(e,t,n,r,i,o,s){return c(e+(t^n^r)+i+o|0,s)+t|0}function d(e,t,n,r,i,o,s){return c(e+(n^(t|~r))+i+o|0,s)+t|0}r(a,i),a.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,o=this._d;n=l(n,r,i,o,e[0],3614090360,7),o=l(o,n,r,i,e[1],3905402710,12),i=l(i,o,n,r,e[2],606105819,17),r=l(r,i,o,n,e[3],3250441966,22),n=l(n,r,i,o,e[4],4118548399,7),o=l(o,n,r,i,e[5],1200080426,12),i=l(i,o,n,r,e[6],2821735955,17),r=l(r,i,o,n,e[7],4249261313,22),n=l(n,r,i,o,e[8],1770035416,7),o=l(o,n,r,i,e[9],2336552879,12),i=l(i,o,n,r,e[10],4294925233,17),r=l(r,i,o,n,e[11],2304563134,22),n=l(n,r,i,o,e[12],1804603682,7),o=l(o,n,r,i,e[13],4254626195,12),i=l(i,o,n,r,e[14],2792965006,17),n=u(n,r=l(r,i,o,n,e[15],1236535329,22),i,o,e[1],4129170786,5),o=u(o,n,r,i,e[6],3225465664,9),i=u(i,o,n,r,e[11],643717713,14),r=u(r,i,o,n,e[0],3921069994,20),n=u(n,r,i,o,e[5],3593408605,5),o=u(o,n,r,i,e[10],38016083,9),i=u(i,o,n,r,e[15],3634488961,14),r=u(r,i,o,n,e[4],3889429448,20),n=u(n,r,i,o,e[9],568446438,5),o=u(o,n,r,i,e[14],3275163606,9),i=u(i,o,n,r,e[3],4107603335,14),r=u(r,i,o,n,e[8],1163531501,20),n=u(n,r,i,o,e[13],2850285829,5),o=u(o,n,r,i,e[2],4243563512,9),i=u(i,o,n,r,e[7],1735328473,14),n=h(n,r=u(r,i,o,n,e[12],2368359562,20),i,o,e[5],4294588738,4),o=h(o,n,r,i,e[8],2272392833,11),i=h(i,o,n,r,e[11],1839030562,16),r=h(r,i,o,n,e[14],4259657740,23),n=h(n,r,i,o,e[1],2763975236,4),o=h(o,n,r,i,e[4],1272893353,11),i=h(i,o,n,r,e[7],4139469664,16),r=h(r,i,o,n,e[10],3200236656,23),n=h(n,r,i,o,e[13],681279174,4),o=h(o,n,r,i,e[0],3936430074,11),i=h(i,o,n,r,e[3],3572445317,16),r=h(r,i,o,n,e[6],76029189,23),n=h(n,r,i,o,e[9],3654602809,4),o=h(o,n,r,i,e[12],3873151461,11),i=h(i,o,n,r,e[15],530742520,16),n=d(n,r=h(r,i,o,n,e[2],3299628645,23),i,o,e[0],4096336452,6),o=d(o,n,r,i,e[7],1126891415,10),i=d(i,o,n,r,e[14],2878612391,15),r=d(r,i,o,n,e[5],4237533241,21),n=d(n,r,i,o,e[12],1700485571,6),o=d(o,n,r,i,e[3],2399980690,10),i=d(i,o,n,r,e[10],4293915773,15),r=d(r,i,o,n,e[1],2240044497,21),n=d(n,r,i,o,e[8],1873313359,6),o=d(o,n,r,i,e[15],4264355552,10),i=d(i,o,n,r,e[6],2734768916,15),r=d(r,i,o,n,e[13],1309151649,21),n=d(n,r,i,o,e[4],4149444226,6),o=d(o,n,r,i,e[11],3174756917,10),i=d(i,o,n,r,e[2],718787259,15),r=d(r,i,o,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},9746:e=>{function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},4504:(e,t)=>{"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n>8,s=255&i;o?n.push(o,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},4244:e=>{"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},609:(e,t,n)=>{"use strict";var r=n(4289),i=n(5559),o=n(4244),s=n(5624),a=n(2281),c=i(s(),Object);r(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},5624:(e,t,n)=>{"use strict";var r=n(4244);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},2281:(e,t,n)=>{"use strict";var r=n(5624),i=n(4289);e.exports=function(){var e=r();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},8987:(e,t,n)=>{"use strict";var r;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=n(1414),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),l=a.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},f=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{h(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===o.call(e),r=s(e),a=t&&"[object String]"===o.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var p=l&&n;if(a&&e.length>0&&!i.call(e,0))for(var g=0;g0)for(var y=0;y{"use strict";var r=Array.prototype.slice,i=n(1414),o=Object.keys,s=o?function(e){return o(e)}:n(8987),a=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?a(r.call(e)):a(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},1414:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},4155:e=>{var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var a,c=[],l=!1,u=-1;function h(){l&&a&&(l=!1,a.length?c=a.concat(c):u=-1,c.length&&d())}function d(){if(!l){var e=s(h);l=!0;for(var t=c.length;t;){for(a=c,c=[];++u1)for(var n=1;n{function r(e){this.mode=o.MODE_8BIT_BYTE,this.data=e,this.parsedData=[];for(var t=0,n=this.data.length;t65536?(r[0]=240|(1835008&i)>>>18,r[1]=128|(258048&i)>>>12,r[2]=128|(4032&i)>>>6,r[3]=128|63&i):i>2048?(r[0]=224|(61440&i)>>>12,r[1]=128|(4032&i)>>>6,r[2]=128|63&i):i>128?(r[0]=192|(1984&i)>>>6,r[1]=128|63&i):r[0]=i,this.parsedData.push(r)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function i(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}r.prototype={getLength:function(e){return this.parsedData.length},write:function(e){for(var t=0,n=this.parsedData.length;t=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=i.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var r=-1;r<=7;r++)t+r<=-1||this.moduleCount<=t+r||(this.modules[e+n][t+r]=0<=n&&n<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=r&&r<=4)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var r=m.getLostPoint(this);(0==n||e>r)&&(e=r,t=n)}return t},createMovieClip:function(e,t,n){var r=e.createEmptyMovieClip(t,n);this.make();for(var i=0;i>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=r}for(n=0;n<18;n++){r=!e&&1==(t>>n&1);this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r}},setupTypeInfo:function(e,t){for(var n=this.errorCorrectLevel<<3|t,r=m.getBCHTypeInfo(n),i=0;i<15;i++){var o=!e&&1==(r>>i&1);i<6?this.modules[i][8]=o:i<8?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;i<15;i++){o=!e&&1==(r>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=o:i<9?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o}this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,r=this.moduleCount-1,i=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var a=0;a<2;a++)if(null==this.modules[r][s-a]){var c=!1;o>>i&1)),m.getMask(t,r,s-a)&&(c=!c),this.modules[r][s-a]=c,-1==--i&&(o++,i=7)}if((r+=n)<0||this.moduleCount<=r){r-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){for(var r=S.getRSBlocks(e,t),o=new I,s=0;s8*c)throw new Error("code length overflow. ("+o.getLengthInBits()+">"+8*c+")");for(o.getLengthInBits()+4<=8*c&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*c||(o.put(i.PAD0,8),o.getLengthInBits()>=8*c));)o.put(i.PAD1,8);return i.createBytes(o,r)},i.createBytes=function(e,t){for(var n=0,r=0,i=0,o=new Array(t.length),s=new Array(t.length),a=0;a=0?d.get(f):0}}var p=0;for(u=0;u=0;)t^=m.G15<=0;)t^=m.G18<>>=1;return t},getPatternPosition:function(e){return m.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case u:return(t+n)%2==0;case h:return t%2==0;case d:return n%3==0;case f:return(t+n)%3==0;case p:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case g:return t*n%2+t*n%3==0;case y:return(t*n%2+t*n%3)%2==0;case b:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new E([1],0),n=0;n5&&(n+=3+o-5)}for(r=0;r=256;)e-=255;return v.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},w=0;w<8;w++)v.EXP_TABLE[w]=1<>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};var R=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];function A(e){if(this.options={padding:4,width:256,height:256,typeNumber:4,color:"#000000",background:"#ffffff",ecl:"M"},"string"==typeof e&&(e={content:e}),e)for(var t in e)this.options[t]=e[t];if("string"!=typeof this.options.content)throw new Error("Expected 'content' as string!");if(0===this.options.content.length)throw new Error("Expected 'content' to be non-empty!");if(!(this.options.padding>=0))throw new Error("Expected 'padding' value to be non-negative!");if(!(this.options.width>0&&this.options.height>0))throw new Error("Expected 'width' or 'height' value to be higher than zero!");var n=this.options.content,r=function(e,t){for(var n=function(e){var t=encodeURI(e).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return t.length+(t.length!=e?3:0)}(e),r=1,i=0,o=0,s=R.length;o<=s;o++){var a=R[o];if(!a)throw new Error("Content too long: expected "+i+" but got "+n);switch(t){case"L":i=a[0];break;case"M":i=a[1];break;case"Q":i=a[2];break;case"H":i=a[3];break;default:throw new Error("Unknwon error correction level: "+t)}if(n<=i)break;r++}if(r>R.length)throw new Error("Content too long");return r}(n,this.options.ecl),o=function(e){switch(e){case"L":return s;case"M":return a;case"Q":return c;case"H":return l;default:throw new Error("Unknwon error correction level: "+e)}}(this.options.ecl);this.qrcode=new i(r,o),this.qrcode.addData(n),this.qrcode.make()}A.prototype.svg=function(e){var t=this.options||{},n=this.qrcode.modules;void 0===e&&(e={container:t.container||"svg"});for(var r=void 0===t.pretty||!!t.pretty,i=r?" ":"",o=r?"\r\n":"",s=t.width,a=t.height,c=n.length,l=s/(c+2*t.padding),u=a/(c+2*t.padding),h=void 0!==t.join&&!!t.join,d=void 0!==t.swap&&!!t.swap,f=void 0===t.xmlDeclaration||!!t.xmlDeclaration,p=void 0!==t.predefined&&!!t.predefined,g=p?i+''+o:"",y=i+''+o,b="",m="",v=0;v'+o:i+''+o}}h&&(b=i+'');var x="";switch(e.container){case"svg":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"svg-viewbox":f&&(x+=''+o),x+=''+o,x+=g+y+b,x+="";break;case"g":x+=''+o,x+=g+y+b,x+="";break;default:x+=(g+y+b).replace(/^\s+/,"")}return x},A.prototype.save=function(e,t){var r=this.svg();"function"!=typeof t&&(t=function(e,t){});try{n(9951).writeFile(e,r,t)}catch(e){t(e)}},e.exports=A},7563:(e,t,n)=>{"use strict";const r=n(610),i=n(4020),o=n(500),s=n(2300),a=Symbol("encodeFragmentIdentifier");function c(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function u(e,t){return t.decode?i(e):e}function h(e){return Array.isArray(e)?e.sort():"object"==typeof e?h(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function f(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function g(e,t){c((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const i="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!i&&u(n,e).includes(e.arrayFormatSeparator);n=o?u(n,e):n;const s=i||o?n.split(e.arrayFormatSeparator).map((t=>u(t,e))):null===n?n:u(n,e);r[t]=s};case"bracket-separator":return(t,n,r)=>{const i=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!i)return void(r[t]=n?u(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>u(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const i of e.split("&")){if(""===i)continue;let[e,s]=o(t.decode?i.replace(/\+/g," "):i,"=");s=void 0===s?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?s:u(s,t),n(u(e,t),s,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=p(n[e],t);else r[e]=p(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=h(n):e[t]=n,e}),Object.create(null))}t.extract=f,t.parse=g,t.stringify=(e,t)=>{if(!e)return"";c((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const i=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",i,"]"].join("")]:[...n,[l(t,e),"[",l(i,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),":list="].join("")]:[...n,[l(t,e),":list=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:(i=null===i?"":i,0===r.length?[[l(n,e),t,l(i,e)].join("")]:[[r,l(i,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),i={};for(const t of Object.keys(e))n(t)||(i[t]=e[t]);const o=Object.keys(i);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const i=e[n];return void 0===i?"":null===i?l(n,t):Array.isArray(i)?0===i.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":i.reduce(r(n),[]).join("&"):l(n,t)+"="+l(i,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:g(f(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:u(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0,[a]:!0},n);const r=d(e.url).split("?")[0]||"",i=t.extract(e.url),o=t.parse(i,{sort:!1}),s=Object.assign(o,e.query);let c=t.stringify(s,n);c&&(c=`?${c}`);let u=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(u=`#${n[a]?l(e.fragmentIdentifier,n):e.fragmentIdentifier}`),`${r}${c}${u}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0,[a]:!1},r);const{url:i,query:o,fragmentIdentifier:c}=t.parseUrl(e,r);return t.stringifyUrl({url:i,query:s(o,n),fragmentIdentifier:c},r)},t.exclude=(e,n,r)=>{const i=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,i,r)}},2300:e=>{"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),i=Array.isArray(t),o=0;o{"use strict";function t(e){try{return JSON.stringify(e)}catch(e){return'"[Circular]"'}}e.exports=function(e,n,r){var i=r&&r.stringify||t;if("object"==typeof e&&null!==e){var o=n.length+1;if(1===o)return e;var s=new Array(o);s[0]=i(e);for(var a=1;a-1?h:0,e.charCodeAt(f+1)){case 100:case 102:if(u>=c)break;if(null==n[u])break;h=c)break;if(null==n[u])break;h=c)break;if(void 0===n[u])break;h",h=f+2,f++;break}l+=i(n[u]),h=f+2,f++;break;case 115:if(u>=c)break;h{"use strict";var t={};function n(e,n,r){r||(r=Error);var i=function(e){var t,r;function i(t,r,i){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,i))||this}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,i}(r);i.prototype.name=r.name,i.prototype.code=e,t[e]=i}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var i,o,s,a;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var c=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(r(t,"type"))}return a+=". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},6753:(e,t,n)=>{"use strict";var r=n(4155),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=u;var o=n(9481),s=n(4229);n(5717)(u,o);for(var a=i(s.prototype),c=0;c{"use strict";e.exports=i;var r=n(4605);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(5717)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},9481:(e,t,n)=>{"use strict";var r,i=n(4155);e.exports=A,A.ReadableState=R;n(7187).EventEmitter;var o=function(e,t){return e.listeners(t).length},s=n(2503),a=n(8764).Buffer,c=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var l,u=n(4616);l=u&&u.debuglog?u.debuglog("stream"):function(){};var h,d,f,p=n(7327),g=n(1195),y=n(2457).getHighWaterMark,b=n(4281).q,m=b.ERR_INVALID_ARG_TYPE,v=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,E=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(5717)(A,s);var S=g.errorOrDestroy,I=["error","close","destroy","pause","resume"];function R(e,t,i){r=r||n(6753),e=e||{},"boolean"!=typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=y(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(2553).s),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function A(e){if(r=r||n(6753),!(this instanceof A))return new A(e);var t=this instanceof r;this._readableState=new R(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function x(e,t,n,r,i){l("readableAddChunk",t);var o,s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(l("onEofChunk"),t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?P(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,N(e)))}(e,s);else if(i||(o=function(e,t){var n;r=t,a.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(n=new m("chunk",["string","Buffer","Uint8Array"],t));var r;return n}(s,t)),o)S(e,o);else if(s.objectMode||t&&t.length>0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),r)s.endEmitted?S(e,new E):M(e,s,t,!0);else if(s.ended)S(e,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?M(e,s,t,!1):k(e,s)):M(e,s,t,!1)}else r||(s.reading=!1,k(e,s));return!s.ended&&(s.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=T?e=T:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function P(e){var t=e._readableState;l("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(l("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(N,e))}function N(e){var t=e._readableState;l("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,z(e)}function k(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(C,e,t))}function C(e,t){for(;!t.reading&&!t.ended&&(t.length0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function L(e){l("readable nexttick read 0"),e.read(0)}function j(e,t){l("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),z(e),t.flowing&&!t.reading&&e.read(0)}function z(e){var t=e._readableState;for(l("flow",t.flowing);t.flowing&&null!==e.read(););}function K(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function q(e){var t=e._readableState;l("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(D,t,e))}function D(e,t){if(l("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function B(e,t){for(var n=0,r=e.length;n=t.highWaterMark:t.length>0)||t.ended))return l("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?q(this):P(this),null;if(0===(e=O(e,t))&&t.ended)return 0===t.length&&q(this),null;var r,i=t.needReadable;return l("need readable",i),(0===t.length||t.length-e0?K(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&q(this)),null!==r&&this.emit("data",r),r},A.prototype._read=function(e){S(this,new w("_read()"))},A.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,l("pipe count=%d opts=%j",r.pipesCount,t);var s=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?c:y;function a(t,i){l("onunpipe"),t===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,l("cleanup"),e.removeListener("close",p),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",f),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",y),n.removeListener("data",d),h=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){l("onend"),e.end()}r.endEmitted?i.nextTick(s):n.once("end",s),e.on("unpipe",a);var u=function(e){return function(){var t=e._readableState;l("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,z(e))}}(n);e.on("drain",u);var h=!1;function d(t){l("ondata");var i=e.write(t);l("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==B(r.pipes,e))&&!h&&(l("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function f(t){l("onerror",t),y(),e.removeListener("error",f),0===o(e,"error")&&S(e,t)}function p(){e.removeListener("finish",g),y()}function g(){l("onfinish"),e.removeListener("close",p),y()}function y(){l("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",f),e.once("close",p),e.once("finish",g),e.emit("pipe",n),r.flowing||(l("pipe resume"),n.resume()),e},A.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,l("on readable",r.length,r.reading),r.length?P(this):r.reading||i.nextTick(L,this))),n},A.prototype.addListener=A.prototype.on,A.prototype.removeListener=function(e,t){var n=s.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(U,this),n},A.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(U,this),t},A.prototype.resume=function(){var e=this._readableState;return e.flowing||(l("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(j,e,t))}(this,e)),e.paused=!1,this},A.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},A.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(l("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(l("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o{"use strict";e.exports=u;var r=n(4281).q,i=r.ERR_METHOD_NOT_IMPLEMENTED,o=r.ERR_MULTIPLE_CALLBACK,s=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(6753);function l(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new o);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";var r,i=n(4155);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=A,A.WritableState=R;var s={deprecate:n(4927)},a=n(2503),c=n(8764).Buffer,l=(void 0!==n.g?n.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var u,h=n(1195),d=n(2457).getHighWaterMark,f=n(4281).q,p=f.ERR_INVALID_ARG_TYPE,g=f.ERR_METHOD_NOT_IMPLEMENTED,y=f.ERR_MULTIPLE_CALLBACK,b=f.ERR_STREAM_CANNOT_PIPE,m=f.ERR_STREAM_DESTROYED,v=f.ERR_STREAM_NULL_VALUES,w=f.ERR_STREAM_WRITE_AFTER_END,E=f.ERR_UNKNOWN_ENCODING,S=h.errorOrDestroy;function I(){}function R(e,t,s){r=r||n(6753),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if("function"!=typeof o)throw new y;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(N,e,t),e._writableState.errorEmitted=!0,S(e,r)):(o(r),e._writableState.errorEmitted=!0,S(e,r),N(e,t))}(e,n,r,t,o);else{var s=O(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||T(e,n),r?i.nextTick(M,e,n,s,o):M(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function A(e){var t=this instanceof(r=r||n(6753));if(!t&&!u.call(A,this))return new A(e);this._writableState=new R(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),a.call(this)}function x(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new m("write")):n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function M(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),N(e,t)}function T(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,x(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,u=n.encoding,h=n.callback;if(x(e,t,!1,t.objectMode?1:l.length,l,u,h),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function O(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function P(e,t){e._final((function(n){t.pendingcb--,n&&S(e,n),t.prefinished=!0,e.emit("prefinish"),N(e,t)}))}function N(e,t){var n=O(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(P,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(5717)(A,a),R.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(R.prototype,"buffer",{get:s.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(A,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===A&&(e&&e._writableState instanceof R)}})):u=function(e){return e instanceof this},A.prototype.pipe=function(){S(this,new b)},A.prototype.write=function(e,t,n){var r,o=this._writableState,s=!1,a=!o.objectMode&&(r=e,c.isBuffer(r)||r instanceof l);return a&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=I),o.ending?function(e,t){var n=new w;S(e,n),i.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var o;return null===n?o=new v:"string"==typeof n||t.objectMode||(o=new p("chunk",["string","Buffer"],n)),!o||(S(e,o),i.nextTick(r,o),!1)}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n));return t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var l=t.length-1))throw new E(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(A.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(A.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),A.prototype._write=function(e,t,n){n(new g("_write()"))},A.prototype._writev=null,A.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,N(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(A.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(A.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),A.prototype.destroy=h.destroy,A.prototype._undestroy=h.undestroy,A.prototype._destroy=function(e,t){t(e)}},5850:(e,t,n)=>{"use strict";var r,i=n(4155);function o(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(8610),a=Symbol("lastResolve"),c=Symbol("lastReject"),l=Symbol("error"),u=Symbol("ended"),h=Symbol("lastPromise"),d=Symbol("handlePromise"),f=Symbol("stream");function p(e,t){return{value:e,done:t}}function g(e){var t=e[a];if(null!==t){var n=e[f].read();null!==n&&(e[h]=null,e[a]=null,e[c]=null,t(p(n,!1)))}}function y(e){i.nextTick(g,e)}var b=Object.getPrototypeOf((function(){})),m=Object.setPrototypeOf((o(r={get stream(){return this[f]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(p(void 0,!0));if(this[f].destroyed)return new Promise((function(t,n){i.nextTick((function(){e[l]?n(e[l]):t(p(void 0,!0))}))}));var n,r=this[h];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[u]?n(p(void 0,!0)):t[d](n,r)}),r)}}(r,this));else{var o=this[f].read();if(null!==o)return Promise.resolve(p(o,!1));n=new Promise(this[d])}return this[h]=n,n}},Symbol.asyncIterator,(function(){return this})),o(r,"return",(function(){var e=this;return new Promise((function(t,n){e[f].destroy(null,(function(e){e?n(e):t(p(void 0,!0))}))}))})),r),b);e.exports=function(e){var t,n=Object.create(m,(o(t={},f,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,l,{value:null,writable:!0}),o(t,u,{value:e._readableState.endEmitted,writable:!0}),o(t,d,{value:function(e,t){var r=n[f].read();r?(n[h]=null,n[a]=null,n[c]=null,e(p(r,!1))):(n[a]=e,n[c]=t)},writable:!0}),t));return n[h]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[h]=null,n[a]=null,n[c]=null,t(e)),void(n[l]=e)}var r=n[a];null!==r&&(n[h]=null,n[a]=null,n[c]=null,r(p(void 0,!0))),n[u]=!0})),e.on("readable",y.bind(null,n)),n}},7327:(e,t,n)=>{"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return c.alloc(0);for(var t,n,r,i=c.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,n=i,r=s,c.prototype.copy.call(t,n,r),s+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var n;return ei.length?i.length:e;if(o===i.length?r+=i:r+=i.slice(0,e),0==(e-=o)){o===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=c.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(o));break}++r}return this.length-=r,t}},{key:u,value:function(e,t){return l(this,i(i({},t),{},{depth:0,customInspect:!1}))}}])&&s(t.prototype,n),r&&s(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}()},1195:(e,t,n)=>{"use strict";var r=n(4155);function i(e,t){s(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(s,this,e)):r.nextTick(s,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(o,n):(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t?(r.nextTick(o,n),t(e)):r.nextTick(o,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},8610:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,o){if("function"==typeof n)return e(t,null,n);n||(n={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i{e.exports=function(){throw new Error("Readable.from is not available in the browser")}},9946:(e,t,n)=>{"use strict";var r;var i=n(4281).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function c(e){e()}function l(e,t){return e.pipe(t)}e.exports=function(){for(var e=arguments.length,t=new Array(e),i=0;i0,(function(e){u||(u=e),e&&d.forEach(c),o||(d.forEach(c),h(u))}))}));return t.reduce(l)}},2457:(e,t,n)=>{"use strict";var r=n(4281).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var o=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new r(i?n:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},2503:(e,t,n)=>{e.exports=n(7187).EventEmitter},8473:(e,t,n)=>{(t=e.exports=n(9481)).Stream=t,t.Readable=t,t.Writable=n(4229),t.Duplex=n(6753),t.Transform=n(4605),t.PassThrough=n(2725),t.finished=n(8610),t.pipeline=n(9946)},9785:(e,t,n)=>{"use strict";var r=n(8764).Buffer,i=n(5717),o=n(3349),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function f(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<>>32-t}function g(e,t,n,r,i,o,s,a){return p(e+(t^n^r)+o+s|0,a)+i|0}function y(e,t,n,r,i,o,s,a){return p(e+(t&n|~t&r)+o+s|0,a)+i|0}function b(e,t,n,r,i,o,s,a){return p(e+((t|~n)^r)+o+s|0,a)+i|0}function m(e,t,n,r,i,o,s,a){return p(e+(t&r|n&~r)+o+s|0,a)+i|0}function v(e,t,n,r,i,o,s,a){return p(e+(t^(n|~r))+o+s|0,a)+i|0}i(f,o),f.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,f=0|this._e,w=0|this._a,E=0|this._b,S=0|this._c,I=0|this._d,R=0|this._e,A=0;A<80;A+=1){var x,M;A<16?(x=g(n,r,i,o,f,e[a[A]],h[0],l[A]),M=v(w,E,S,I,R,e[c[A]],d[0],u[A])):A<32?(x=y(n,r,i,o,f,e[a[A]],h[1],l[A]),M=m(w,E,S,I,R,e[c[A]],d[1],u[A])):A<48?(x=b(n,r,i,o,f,e[a[A]],h[2],l[A]),M=b(w,E,S,I,R,e[c[A]],d[2],u[A])):A<64?(x=m(n,r,i,o,f,e[a[A]],h[3],l[A]),M=y(w,E,S,I,R,e[c[A]],d[3],u[A])):(x=v(n,r,i,o,f,e[a[A]],h[4],l[A]),M=g(w,E,S,I,R,e[c[A]],d[4],u[A])),n=f,f=o,o=p(i,10),i=r,r=x,w=R,R=I,I=p(S,10),S=E,E=M}var T=this._b+i+I|0;this._b=this._c+o+R|0,this._c=this._d+f+w|0,this._d=this._e+n+E|0,this._e=this._a+r+S|0,this._a=T},f.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=f},9509:(e,t,n)=>{var r=n(8764),i=r.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},3954:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.safeJsonParse=function(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return JSON.parse(e)}catch(t){return e}},t.safeJsonStringify=function(e){return"string"==typeof e?e:JSON.stringify(e,((e,t)=>void 0===t?null:t))}},4189:(e,t,n)=>{var r=n(9509).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,o=e.length,s=this._len,a=0;a=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},9072:(e,t,n)=>{var r=e.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=n(4448),r.sha1=n(8336),r.sha224=n(8432),r.sha256=n(7499),r.sha384=n(1686),r.sha512=n(7816)},4448:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<30|e>>>2}function u(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,h=0;h<16;++h)n[h]=e.readInt32BE(4*h);for(;h<80;++h)n[h]=n[h-3]^n[h-8]^n[h-14]^n[h-16];for(var d=0;d<80;++d){var f=~~(d/20),p=0|((t=r)<<5|t>>>27)+u(f,i,o,a)+c+n[d]+s[f];c=a,a=o,o=l(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8336:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function h(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var f=0;f<80;++f){var p=~~(f/20),g=l(r)+h(p,i,o,a)+c+n[f]+s[p]|0;c=a,a=o,o=u(i),i=r,r=g}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},8432:(e,t,n)=>{var r=n(5717),i=n(7499),o=n(4189),s=n(9509).Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},7499:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function f(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,p=0|this._f,g=0|this._g,y=0|this._h,b=0;b<16;++b)n[b]=e.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((t=n[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[b-7]+f(n[b-15])+n[b-16];for(var m=0;m<64;++m){var v=y+d(c)+l(c,p,g)+s[m]+n[m]|0,w=h(r)+u(r,i,o)|0;y=g,g=p,p=c,c=a+v|0,a=o,o=i,i=r,r=v+w|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=y+this._h|0},c.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},1686:(e,t,n)=>{var r=n(5717),i=n(7816),o=n(4189),s=n(9509).Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},7816:(e,t,n)=>{var r=n(5717),i=n(4189),o=n(9509).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function y(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,c=0|this._fh,m=0|this._gh,v=0|this._hh,w=0|this._al,E=0|this._bl,S=0|this._cl,I=0|this._dl,R=0|this._el,A=0|this._fl,x=0|this._gl,M=0|this._hl,T=0;T<32;T+=2)t[T]=e.readInt32BE(4*T),t[T+1]=e.readInt32BE(4*T+4);for(;T<160;T+=2){var O=t[T-30],P=t[T-30+1],N=f(O,P),k=p(P,O),C=g(O=t[T-4],P=t[T-4+1]),U=y(P,O),L=t[T-14],j=t[T-14+1],z=t[T-32],K=t[T-32+1],q=k+j|0,D=N+L+b(q,k)|0;D=(D=D+C+b(q=q+U|0,U)|0)+z+b(q=q+K|0,K)|0,t[T]=D,t[T+1]=q}for(var B=0;B<160;B+=2){D=t[B],q=t[B+1];var W=u(n,r,i),F=u(w,E,S),V=h(n,w),H=h(w,n),G=d(a,R),J=d(R,a),Z=s[B],Y=s[B+1],Q=l(a,c,m),X=l(R,A,x),_=M+J|0,$=v+G+b(_,M)|0;$=($=($=$+Q+b(_=_+X|0,X)|0)+Z+b(_=_+Y|0,Y)|0)+D+b(_=_+q|0,q)|0;var ee=H+F|0,te=V+W+b(ee,H)|0;v=m,M=x,m=c,x=A,c=a,A=R,a=o+$+b(R=I+_|0,I)|0,o=i,I=S,i=r,S=E,r=n,E=w,n=$+te+b(w=_+ee|0,_)|0}this._al=this._al+w|0,this._bl=this._bl+E|0,this._cl=this._cl+S|0,this._dl=this._dl+I|0,this._el=this._el+R|0,this._fl=this._fl+A|0,this._gl=this._gl+x|0,this._hl=this._hl+M|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+r+b(this._bl,E)|0,this._ch=this._ch+i+b(this._cl,S)|0,this._dh=this._dh+o+b(this._dl,I)|0,this._eh=this._eh+a+b(this._el,R)|0,this._fh=this._fh+c+b(this._fl,A)|0,this._gh=this._gh+m+b(this._gl,x)|0,this._hh=this._hh+v+b(this._hl,M)|0},c.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},500:e=>{"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},2830:(e,t,n)=>{e.exports=i;var r=n(7187).EventEmitter;function i(){r.call(this)}n(5717)(i,r),i.Readable=n(9481),i.Writable=n(4229),i.Duplex=n(6753),i.Transform=n(4605),i.PassThrough=n(2725),i.finished=n(8610),i.pipeline=n(9946),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",c));var s=!1;function a(){s||(s=!0,e.end())}function c(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(u(),0===r.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",i),e.removeListener("drain",o),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",l),e.on("error",l),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},610:e=>{"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},2553:(e,t,n)=>{"use strict";var r=n(9509).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=h,t=3;break;default:return this.write=d,void(this.end=f)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function f(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return i>0&&(e.lastNeed=i-1),i;if(--r=0)return i>0&&(e.lastNeed=i-2),i;if(--r=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},655:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__assign:()=>o,__asyncDelegator:()=>w,__asyncGenerator:()=>v,__asyncValues:()=>E,__await:()=>m,__awaiter:()=>u,__classPrivateFieldGet:()=>A,__classPrivateFieldSet:()=>x,__createBinding:()=>d,__decorate:()=>a,__exportStar:()=>f,__extends:()=>i,__generator:()=>h,__importDefault:()=>R,__importStar:()=>I,__makeTemplateObject:()=>S,__metadata:()=>l,__param:()=>c,__read:()=>g,__rest:()=>s,__spread:()=>y,__spreadArrays:()=>b,__values:()=>p});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},r(e,t)};function i(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var o=function(){return o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;a--)(i=e[a])&&(s=(o<3?i(s):o>3?i(t,n,s):i(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function u(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}function h(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(o){return function(a){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,i,o=n.call(e),s=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)s.push(r.value)}catch(e){i={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return s}function y(){for(var e=[],t=0;t1||a(e,t)}))})}function a(e,t){try{(n=i[e](t)).value instanceof m?Promise.resolve(n.value.v).then(c,l):u(o[0][2],n)}catch(e){u(o[0][3],e)}var n}function c(e){a("next",e)}function l(e){a("throw",e)}function u(e,t){e(t),o.shift(),o.length&&a(o[0][0],o[0][1])}}function w(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,i){t[r]=e[r]?function(t){return(n=!n)?{value:m(e[r](t)),done:"return"===r}:i?i(t):t}:i}}function E(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=p(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,i){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,i,(t=e[n](t)).done,t.value)}))}}}function S(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function I(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function R(e){return e&&e.__esModule?e:{default:e}}function A(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)}function x(e,t,n){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,n),n}},5054:(e,t,n)=>{var r=n(8764).Buffer;e.exports=function(e){return ArrayBuffer.isView(e)?r.from(e.buffer,e.byteOffset,e.byteLength):r.from(e)}},4927:(e,t,n)=>{var r=n(5108);function i(e){try{if(!n.g.localStorage)return!1}catch(e){return!1}var t=n.g.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(i("noDeprecation"))return e;var n=!1;return function(){if(!n){if(i("throwDeprecation"))throw new Error(t);i("traceDeprecation")?r.trace(t):r.warn(t),n=!0}return e.apply(this,arguments)}}},384:e=>{e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},5955:(e,t,n)=>{"use strict";var r=n(2584),i=n(8662),o=n(6430),s=n(5692);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,u=a(Object.prototype.toString),h=a(Number.prototype.valueOf),d=a(String.prototype.valueOf),f=a(Boolean.prototype.valueOf);if(c)var p=a(BigInt.prototype.valueOf);if(l)var g=a(Symbol.prototype.valueOf);function y(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function b(e){return"[object Map]"===u(e)}function m(e){return"[object Set]"===u(e)}function v(e){return"[object WeakMap]"===u(e)}function w(e){return"[object WeakSet]"===u(e)}function E(e){return"[object ArrayBuffer]"===u(e)}function S(e){return"undefined"!=typeof ArrayBuffer&&(E.working?E(e):e instanceof ArrayBuffer)}function I(e){return"[object DataView]"===u(e)}function R(e){return"undefined"!=typeof DataView&&(I.working?I(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=i,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||R(e)},t.isUint8Array=function(e){return"Uint8Array"===o(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===o(e)},t.isUint16Array=function(e){return"Uint16Array"===o(e)},t.isUint32Array=function(e){return"Uint32Array"===o(e)},t.isInt8Array=function(e){return"Int8Array"===o(e)},t.isInt16Array=function(e){return"Int16Array"===o(e)},t.isInt32Array=function(e){return"Int32Array"===o(e)},t.isFloat32Array=function(e){return"Float32Array"===o(e)},t.isFloat64Array=function(e){return"Float64Array"===o(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===o(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===o(e)},b.working="undefined"!=typeof Map&&b(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(b.working?b(e):e instanceof Map)},m.working="undefined"!=typeof Set&&m(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(m.working?m(e):e instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(v.working?v(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),t.isArrayBuffer=S,I.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&I(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=R;var A="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function x(e){return"[object SharedArrayBuffer]"===u(e)}function M(e){return void 0!==A&&(void 0===x.working&&(x.working=x(new A)),x.working?x(e):e instanceof A)}function T(e){return y(e,h)}function O(e){return y(e,d)}function P(e){return y(e,f)}function N(e){return c&&y(e,p)}function k(e){return l&&y(e,g)}t.isSharedArrayBuffer=M,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===u(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===u(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===u(e)},t.isGeneratorObject=function(e){return"[object Generator]"===u(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===u(e)},t.isNumberObject=T,t.isStringObject=O,t.isBooleanObject=P,t.isBigIntObject=N,t.isSymbolObject=k,t.isBoxedPrimitive=function(e){return T(e)||O(e)||P(e)||N(e)||k(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(S(e)||M(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},9539:(e,t,n)=>{var r=n(4155),i=n(5108),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),b(n)?r.showHidden=n:n&&t._extend(r,n),E(r.showHidden)&&(r.showHidden=!1),E(r.depth)&&(r.depth=2),E(r.colors)&&(r.colors=!1),E(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=h),f(r,e,r.depth)}function h(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function d(e,t){return e}function f(e,n,r){if(e.customInspect&&n&&x(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return w(i)||(i=f(e,i,r)),i}var o=function(e,t){if(E(t))return e.stylize("undefined","undefined");if(w(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(v(t))return e.stylize(""+t,"number");if(b(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),A(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return p(n);if(0===s.length){if(x(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(S(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(R(n))return e.stylize(Date.prototype.toString.call(n),"date");if(A(n))return p(n)}var l,u="",h=!1,d=["{","}"];(y(n)&&(h=!0,d=["[","]"]),x(n))&&(u=" [Function"+(n.name?": "+n.name:"")+"]");return S(n)&&(u=" "+RegExp.prototype.toString.call(n)),R(n)&&(u=" "+Date.prototype.toUTCString.call(n)),A(n)&&(u=" "+p(n)),0!==s.length||h&&0!=n.length?r<0?S(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=h?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(r>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,u,d)):d[0]+u+d[1]}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function g(e,t,n,r,i,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),P(r,i)||(s="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=m(n)?f(e,c.value,null):f(e,c.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(e){return" "+e})).join("\n").slice(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),E(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.slice(1,-1),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function y(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function m(e){return null===e}function v(e){return"number"==typeof e}function w(e){return"string"==typeof e}function E(e){return void 0===e}function S(e){return I(e)&&"[object RegExp]"===M(e)}function I(e){return"object"==typeof e&&null!==e}function R(e){return I(e)&&"[object Date]"===M(e)}function A(e){return I(e)&&("[object Error]"===M(e)||e instanceof Error)}function x(e){return"function"==typeof e}function M(e){return Object.prototype.toString.call(e)}function T(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(c.test(e)){var n=r.pid;a[e]=function(){var r=t.format.apply(t,arguments);i.error("%s %d: %s",e,n,r)}}else a[e]=function(){};return a[e]},t.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(5955),t.isArray=y,t.isBoolean=b,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=v,t.isString=w,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=E,t.isRegExp=S,t.types.isRegExp=S,t.isObject=I,t.isDate=R,t.types.isDate=R,t.isError=A,t.types.isNativeError=A,t.isFunction=x,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(384);var O=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){var e,n;i.log("%s - %s",(e=new Date,n=[T(e.getHours()),T(e.getMinutes()),T(e.getSeconds())].join(":"),[e.getDate(),O[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(5717),t._extend=function(e,t){if(!t||!I(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var N="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function k(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(N&&e[N]){var t;if("function"!=typeof(t=e[N]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],o=0;o{"use strict";var r=n(4029),i=n(3083),o=n(1924),s=n(7296),a=o("Object.prototype.toString"),c=n(6410)(),l="undefined"==typeof globalThis?n.g:globalThis,u=i(),h=o("String.prototype.slice"),d={},f=Object.getPrototypeOf;c&&s&&f&&r(u,(function(e){if("function"==typeof l[e]){var t=new l[e];if(Symbol.toStringTag in t){var n=f(t),r=s(n,Symbol.toStringTag);if(!r){var i=f(n);r=s(i,Symbol.toStringTag)}d[e]=r.get}}}));var p=n(5692);e.exports=function(e){return!!p(e)&&(c&&Symbol.toStringTag in e?function(e){var t=!1;return r(d,(function(n,r){if(!t)try{var i=n.call(e);i===r&&(t=i)}catch(e){}})),t}(e):h(a(e),8,-1))}},7026:e=>{"use strict";e.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}},5883:()=>{},6601:()=>{},9214:()=>{},9951:()=>{},2361:()=>{},4616:()=>{},3083:(e,t,n)=>{"use strict";var r=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],i="undefined"==typeof globalThis?n.g:globalThis;e.exports=function(){for(var e=[],t=0;t{"use strict";const r=n(5346);e.exports=s;const i=function(){function e(e){return void 0!==e&&e}try{return"undefined"!=typeof globalThis||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch(t){return e(self)||e(window)||e(this)||{}}}().console||{},o={mapHttpRequest:d,mapHttpResponse:d,wrapRequestSerializer:f,wrapResponseSerializer:f,wrapErrorSerializer:f,req:d,res:d,err:function(e){const t={type:e.constructor.name,msg:e.message,stack:e.stack};for(const n in e)void 0===t[n]&&(t[n]=e[n]);return t}};function s(e){(e=e||{}).browser=e.browser||{};const t=e.browser.transmit;if(t&&"function"!=typeof t.send)throw Error("pino: transmit option must have a send function");const n=e.browser.write||i;e.browser.write&&(e.browser.asObject=!0);const r=e.serializers||{},o=function(e,t){if(Array.isArray(e))return e.filter((function(e){return"!stdSerializers.err"!==e}));return!0===e&&Object.keys(t)}(e.browser.serialize,r);let d=e.browser.serialize;Array.isArray(e.browser.serialize)&&e.browser.serialize.indexOf("!stdSerializers.err")>-1&&(d=!1);"function"==typeof n&&(n.error=n.fatal=n.warn=n.info=n.debug=n.trace=n),!1===e.enabled&&(e.level="silent");const f=e.level||"info",g=Object.create(n);g.log||(g.log=p),Object.defineProperty(g,"levelVal",{get:function(){return"silent"===this.level?1/0:this.levels.values[this.level]}}),Object.defineProperty(g,"level",{get:function(){return this._level},set:function(e){if("silent"!==e&&!this.levels.values[e])throw Error("unknown level "+e);this._level=e,a(y,g,"error","log"),a(y,g,"fatal","error"),a(y,g,"warn","error"),a(y,g,"info","log"),a(y,g,"debug","log"),a(y,g,"trace","log")}});const y={transmit:t,serialize:o,asObject:e.browser.asObject,levels:["error","fatal","warn","info","debug","trace"],timestamp:h(e)};return g.levels=s.levels,g.level=f,g.setMaxListeners=g.getMaxListeners=g.emit=g.addListener=g.on=g.prependListener=g.once=g.prependOnceListener=g.removeListener=g.removeAllListeners=g.listeners=g.listenerCount=g.eventNames=g.write=g.flush=p,g.serializers=r,g._serialize=o,g._stdErrSerialize=d,g.child=function(n,i){if(!n)throw new Error("missing bindings for child Pino");i=i||{},o&&n.serializers&&(i.serializers=n.serializers);const s=i.serializers;if(o&&s){var a=Object.assign({},r,s),h=!0===e.browser.serialize?Object.keys(a):o;delete n.serializers,c([n],h,a,this._stdErrSerialize)}function d(e){this._childLevel=1+(0|e._childLevel),this.error=l(e,n,"error"),this.fatal=l(e,n,"fatal"),this.warn=l(e,n,"warn"),this.info=l(e,n,"info"),this.debug=l(e,n,"debug"),this.trace=l(e,n,"trace"),a&&(this.serializers=a,this._serialize=h),t&&(this._logEvent=u([].concat(e._logEvent.bindings,n)))}return d.prototype=this,new d(this)},t&&(g._logEvent=u()),g}function a(e,t,n,o){const a=Object.getPrototypeOf(t);t[n]=t.levelVal>t.levels.values[n]?p:a[n]?a[n]:i[n]||i[o]||p,function(e,t,n){if(!e.transmit&&t[n]===p)return;t[n]=(o=t[n],function(){const a=e.timestamp(),l=new Array(arguments.length),h=Object.getPrototypeOf&&Object.getPrototypeOf(this)===i?i:this;for(var d=0;d-1&&r in n&&(e[i][r]=n[r](e[i][r]))}function l(e,t,n){return function(){const r=new Array(1+arguments.length);r[0]=t;for(var i=1;i{"use strict";e.exports={i8:"6.5.4"}}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e={};n.r(e),n.d(e,{identity:()=>ha});var t={};n.r(t),n.d(t,{base2:()=>da});var r={};n.r(r),n.d(r,{base8:()=>fa});var i={};n.r(i),n.d(i,{base10:()=>pa});var o={};n.r(o),n.d(o,{base16:()=>ga,base16upper:()=>ya});var s={};n.r(s),n.d(s,{base32:()=>ba,base32hex:()=>Ea,base32hexpad:()=>Ia,base32hexpadupper:()=>Ra,base32hexupper:()=>Sa,base32pad:()=>va,base32padupper:()=>wa,base32upper:()=>ma,base32z:()=>Aa});var a={};n.r(a),n.d(a,{base36:()=>xa,base36upper:()=>Ma});var c={};n.r(c),n.d(c,{base58btc:()=>Ta,base58flickr:()=>Oa});var l={};n.r(l),n.d(l,{base64:()=>Pa,base64pad:()=>Na,base64url:()=>ka,base64urlpad:()=>Ca});var u={};n.r(u),n.d(u,{base256emoji:()=>za});var h={};n.r(h),n.d(h,{sha256:()=>cc,sha512:()=>lc});var d={};n.r(d),n.d(d,{identity:()=>hc});var f={};n.r(f),n.d(f,{code:()=>fc,decode:()=>gc,encode:()=>pc,name:()=>dc});var p,g={};n.r(g),n.d(g,{code:()=>vc,decode:()=>Ec,encode:()=>wc,name:()=>mc}),function(e){e.beacon="beacon",e.kukai="kukai"}(p||(p={}));const y=function(){function e(){}return e.prototype.Init=function(e){var t=this;this.Config=e,this.FileUploaderDomElement=document.getElementById("fileuploader"),this.FileUploaderDomElement||(this.FileUploaderDomElement=document.createElement("input"),this.FileUploaderDomElement.setAttribute("style","display:none;"),this.FileUploaderDomElement.setAttribute("type","file"),this.FileUploaderDomElement.setAttribute("id","fileuploader"),this.FileUploaderDomElement.setAttribute("class","nonfocused"),document.getElementsByTagName("body")[0].appendChild(this.FileUploaderDomElement),this.FileUploaderDomElement.onchange=function(e){var n=e.target.files;0===n.length?t.ResetFileUploader():t.FileReceived(n[0])})},e.prototype.ResetFileUploader=function(){var e;null===(e=this.FileUploaderDomElement)||void 0===e||e.setAttribute("class","nonfocused")},e.prototype.RequestUserFile=function(e){null===this.FileUploaderDomElement&&this.Init(this.Config),null===e&&null!==e.match(/^ *$/)||this.FileUploaderDomElement.setAttribute("accept",e),this.FileUploaderDomElement.setAttribute("class","focused"),this.FileUploaderDomElement.click()},e}();var b,m=(b=function(e,t){return b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},b(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),v=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},w=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0||e===t?t:t-1}function F(e){for(var t,n,r=1,i=e.length,o=e[0]+"";rl^n?1:-1;for(a=(c=i.length)<(l=o.length)?c:l,s=0;so[s]^n?1:-1;return c==l?0:c>l^n?1:-1}function H(e,t,n,r){if(en||e!==C(e))throw Error(U+(r||"Argument")+("number"==typeof e?en?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function G(e){var t=e.c.length-1;return W(e.e/z)==t&&e.c[t]%2!=0}function J(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function Z(e,t,n){var r,i;if(t<0){for(i=n+".";++t;i+=n);e=i+e}else if(++t>(r=e.length)){for(i=n,t-=r;--t;i+=n);e+=i}else tv?d.c=d.e=null:e.e=10;c/=10,a++);return void(a>v?d.c=d.e=null:(d.e=a,d.c=[e]))}h=String(e)}else{if(!N.test(h=String(e)))return i(d,h,l);d.s=45==h.charCodeAt(0)?(h=h.slice(1),-1):1}(a=h.indexOf("."))>-1&&(h=h.replace(".","")),(c=h.search(/e/i))>0?(a<0&&(a=c),a+=+h.slice(c+1),h=h.substring(0,c)):a<0&&(a=h.length)}else{if(H(t,2,R.length,"Base"),10==t&&A)return P(d=new x(e),p+d.e+1,g);if(h=String(e),l="number"==typeof e){if(0*e!=0)return i(d,h,l,t);if(d.s=1/e<0?(h=h.slice(1),-1):1,x.DEBUG&&h.replace(/^0\.0*|\./,"").length>15)throw Error(L+e)}else d.s=45===h.charCodeAt(0)?(h=h.slice(1),-1):1;for(n=R.slice(0,t),a=c=0,u=h.length;ca){a=u;continue}}else if(!s&&(h==h.toUpperCase()&&(h=h.toLowerCase())||h==h.toLowerCase()&&(h=h.toUpperCase()))){s=!0,c=-1,a=0;continue}return i(d,String(e),l,t)}l=!1,(a=(h=r(h,t,10,d.s)).indexOf("."))>-1?h=h.replace(".",""):a=h.length}for(c=0;48===h.charCodeAt(c);c++);for(u=h.length;48===h.charCodeAt(--u););if(h=h.slice(c,++u)){if(u-=c,l&&x.DEBUG&&u>15&&(e>K||e!==C(e)))throw Error(L+d.s*e);if((a=a-c-1)>v)d.c=d.e=null;else if(a=b)?J(c,s):Z(c,s,"0");else if(o=(e=P(new x(e),t,n)).e,a=(c=F(e.c)).length,1==r||2==r&&(t<=o||o<=y)){for(;aa){if(--t>0)for(c+=".";t--;c+="0");}else if((t+=o-a)>0)for(o+1==a&&(c+=".");t--;c+="0");return e.s<0&&i?"-"+c:c}function T(e,t){for(var n,r=1,i=new x(e[0]);r=10;i/=10,r++);return(n=r+n*z-1)>v?e.c=e.e=null:n=10;a/=10,i++);if((o=t-i)<0)o+=z,s=t,u=(c=h[l=0])/d[i-s-1]%10|0;else if((l=k((o+1)/z))>=h.length){if(!r)break e;for(;h.length<=l;h.push(0));c=u=0,i=1,s=(o%=z)-z+1}else{for(c=a=h[l],i=1;a>=10;a/=10,i++);u=(s=(o%=z)-z+i)<0?0:c/d[i-s-1]%10|0}if(r=r||t<0||null!=h[l+1]||(s<0?c:c%d[i-s-1]),r=n<4?(u||r)&&(0==n||n==(e.s<0?3:2)):u>5||5==u&&(4==n||r||6==n&&(o>0?s>0?c/d[i-s]:0:h[l-1])%10&1||n==(e.s<0?8:7)),t<1||!h[0])return h.length=0,r?(t-=e.e+1,h[0]=d[(z-t%z)%z],e.e=-t||0):h[0]=e.e=0,e;if(0==o?(h.length=l,a=1,l--):(h.length=l+1,a=d[z-o],h[l]=s>0?C(c/d[i-s]%d[s])*a:0),r)for(;;){if(0==l){for(o=1,s=h[0];s>=10;s/=10,o++);for(s=h[0]+=a,a=1;s>=10;s/=10,a++);o!=a&&(e.e++,h[0]==j&&(h[0]=1));break}if(h[l]+=a,h[l]!=j)break;h[l--]=0,a=1}for(o=h.length;0===h[--o];h.pop());}e.e>v?e.c=e.e=null:e.e=b?J(t,n):Z(t,n,"0"),e.s<0?"-"+t:t)}return x.clone=e,x.ROUND_UP=0,x.ROUND_DOWN=1,x.ROUND_CEIL=2,x.ROUND_FLOOR=3,x.ROUND_HALF_UP=4,x.ROUND_HALF_DOWN=5,x.ROUND_HALF_EVEN=6,x.ROUND_HALF_CEIL=7,x.ROUND_HALF_FLOOR=8,x.EUCLID=9,x.config=x.set=function(e){var t,n;if(null!=e){if("object"!=typeof e)throw Error(U+"Object expected: "+e);if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(H(n=e[t],0,B,t),p=n),e.hasOwnProperty(t="ROUNDING_MODE")&&(H(n=e[t],0,8,t),g=n),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((n=e[t])&&n.pop?(H(n[0],-B,0,t),H(n[1],0,B,t),y=n[0],b=n[1]):(H(n,-B,B,t),y=-(b=n<0?-n:n))),e.hasOwnProperty(t="RANGE"))if((n=e[t])&&n.pop)H(n[0],-B,-1,t),H(n[1],1,B,t),m=n[0],v=n[1];else{if(H(n,-B,B,t),!n)throw Error(U+t+" cannot be zero: "+n);m=-(v=n<0?-n:n)}if(e.hasOwnProperty(t="CRYPTO")){if((n=e[t])!==!!n)throw Error(U+t+" not true or false: "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw w=!n,Error(U+"crypto unavailable");w=n}else w=n}if(e.hasOwnProperty(t="MODULO_MODE")&&(H(n=e[t],0,9,t),E=n),e.hasOwnProperty(t="POW_PRECISION")&&(H(n=e[t],0,B,t),S=n),e.hasOwnProperty(t="FORMAT")){if("object"!=typeof(n=e[t]))throw Error(U+t+" not an object: "+n);I=n}if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(n=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(n))throw Error(U+t+" invalid: "+n);A="0123456789"==n.slice(0,10),R=n}}return{DECIMAL_PLACES:p,ROUNDING_MODE:g,EXPONENTIAL_AT:[y,b],RANGE:[m,v],CRYPTO:w,MODULO_MODE:E,POW_PRECISION:S,FORMAT:I,ALPHABET:R}},x.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!x.DEBUG)return!0;var t,n,r=e.c,i=e.e,o=e.s;e:if("[object Array]"=={}.toString.call(r)){if((1===o||-1===o)&&i>=-B&&i<=B&&i===C(i)){if(0===r[0]){if(0===i&&1===r.length)return!0;break e}if((t=(i+1)%z)<1&&(t+=z),String(r[0]).length==t){for(t=0;t=j||n!==C(n))break e;if(0!==n)return!0}}}else if(null===r&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(U+"Invalid BigNumber: "+e)},x.maximum=x.max=function(){return T(arguments,d.lt)},x.minimum=x.min=function(){return T(arguments,d.gt)},x.random=(o=9007199254740992,s=Math.random()*o&2097151?function(){return C(Math.random()*o)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)},function(e){var t,n,r,i,o,a=0,c=[],l=new x(f);if(null==e?e=p:H(e,0,B),i=k(e/z),w)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(i*=2));a>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[a]=n[0],t[a+1]=n[1]):(c.push(o%1e14),a+=2);a=i/2}else{if(!crypto.randomBytes)throw w=!1,Error(U+"crypto unavailable");for(t=crypto.randomBytes(i*=7);a=9e15?crypto.randomBytes(7).copy(t,a):(c.push(o%1e14),a+=7);a=i/7}if(!w)for(;a=10;o/=10,a++);an-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}return function(r,i,o,s,a){var c,l,u,h,d,f,y,b,m=r.indexOf("."),v=p,w=g;for(m>=0&&(h=S,S=0,r=r.replace(".",""),f=(b=new x(i)).pow(r.length-m),S=h,b.c=t(Z(F(f.c),f.e,"0"),10,o,e),b.e=b.c.length),u=h=(y=t(r,i,o,a?(c=R,e):(c=e,R))).length;0==y[--h];y.pop());if(!y[0])return c.charAt(0);if(m<0?--u:(f.c=y,f.e=u,f.s=s,y=(f=n(f,b,v,w,o)).c,d=f.r,u=f.e),m=y[l=u+v+1],h=o/2,d=d||l<0||null!=y[l+1],d=w<4?(null!=m||d)&&(0==w||w==(f.s<0?3:2)):m>h||m==h&&(4==w||d||6==w&&1&y[l-1]||w==(f.s<0?8:7)),l<1||!y[0])r=d?Z(c.charAt(1),-v,c.charAt(0)):c.charAt(0);else{if(y.length=l,d)for(--o;++y[--l]>o;)y[l]=0,l||(++u,y=[1].concat(y));for(h=y.length;!y[--h];);for(m=0,r="";m<=h;r+=c.charAt(y[m++]));r=Z(r,u,c.charAt(0))}return r}}(),n=function(){function e(e,t,n){var r,i,o,s,a=0,c=e.length,l=t%D,u=t/D|0;for(e=e.slice();c--;)a=((i=l*(o=e[c]%D)+(r=u*o+(s=e[c]/D|0)*l)%D*D+a)/n|0)+(r/D|0)+u*s,e[c]=i%n;return a&&(e=[a].concat(e)),e}function t(e,t,n,r){var i,o;if(n!=r)o=n>r?1:-1;else for(i=o=0;it[i]?1:-1;break}return o}function n(e,t,n,r){for(var i=0;n--;)e[n]-=i,i=e[n]1;e.splice(0,1));}return function(r,i,o,s,a){var c,l,u,h,d,f,p,g,y,b,m,v,w,E,S,I,R,A=r.s==i.s?1:-1,M=r.c,T=i.c;if(!(M&&M[0]&&T&&T[0]))return new x(r.s&&i.s&&(M?!T||M[0]!=T[0]:T)?M&&0==M[0]||!T?0*A:A/0:NaN);for(y=(g=new x(A)).c=[],A=o+(l=r.e-i.e)+1,a||(a=j,l=W(r.e/z)-W(i.e/z),A=A/z|0),u=0;T[u]==(M[u]||0);u++);if(T[u]>(M[u]||0)&&l--,A<0)y.push(1),h=!0;else{for(E=M.length,I=T.length,u=0,A+=2,(d=C(a/(T[0]+1)))>1&&(T=e(T,d,a),M=e(M,d,a),I=T.length,E=M.length),w=I,m=(b=M.slice(0,I)).length;m=a/2&&S++;do{if(d=0,(c=t(T,b,I,m))<0){if(v=b[0],I!=m&&(v=v*a+(b[1]||0)),(d=C(v/S))>1)for(d>=a&&(d=a-1),p=(f=e(T,d,a)).length,m=b.length;1==t(f,b,p,m);)d--,n(f,I=10;A/=10,u++);P(g,o+(g.e=u+l*z-1)+1,s,h)}else g.e=l,g.r=+h;return g}}(),a=/^(-?)0([xbo])(?=\w[\w.]*$)/i,c=/^([^.]+)\.$/,l=/^\.([^.]+)$/,u=/^-?(Infinity|NaN)$/,h=/^\s*\+(?=[\w.])|^\s+|\s+$/g,i=function(e,t,n,r){var i,o=n?t:t.replace(h,"");if(u.test(o))e.s=isNaN(o)?null:o<0?-1:1;else{if(!n&&(o=o.replace(a,(function(e,t,n){return i="x"==(n=n.toLowerCase())?16:"b"==n?2:8,r&&r!=i?e:t})),r&&(i=r,o=o.replace(c,"$1").replace(l,"0.$1")),t!=o))return new x(o,i);if(x.DEBUG)throw Error(U+"Not a"+(r?" base "+r:"")+" number: "+t);e.s=null}e.c=e.e=null},d.absoluteValue=d.abs=function(){var e=new x(this);return e.s<0&&(e.s=1),e},d.comparedTo=function(e,t){return V(this,new x(e,t))},d.decimalPlaces=d.dp=function(e,t){var n,r,i,o=this;if(null!=e)return H(e,0,B),null==t?t=g:H(t,0,8),P(new x(o),e+o.e+1,t);if(!(n=o.c))return null;if(r=((i=n.length-1)-W(this.e/z))*z,i=n[i])for(;i%10==0;i/=10,r--);return r<0&&(r=0),r},d.dividedBy=d.div=function(e,t){return n(this,new x(e,t),p,g)},d.dividedToIntegerBy=d.idiv=function(e,t){return n(this,new x(e,t),0,1)},d.exponentiatedBy=d.pow=function(e,t){var n,r,i,o,s,a,c,l,u=this;if((e=new x(e)).c&&!e.isInteger())throw Error(U+"Exponent not an integer: "+Y(e));if(null!=t&&(t=new x(t)),s=e.e>14,!u.c||!u.c[0]||1==u.c[0]&&!u.e&&1==u.c.length||!e.c||!e.c[0])return l=new x(Math.pow(+Y(u),s?e.s*(2-G(e)):+Y(e))),t?l.mod(t):l;if(a=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new x(NaN);(r=!a&&u.isInteger()&&t.isInteger())&&(u=u.mod(t))}else{if(e.e>9&&(u.e>0||u.e<-1||(0==u.e?u.c[0]>1||s&&u.c[1]>=24e7:u.c[0]<8e13||s&&u.c[0]<=9999975e7)))return o=u.s<0&&G(e)?-0:0,u.e>-1&&(o=1/o),new x(a?1/o:o);S&&(o=k(S/z+2))}for(s?(n=new x(.5),a&&(e.s=1),c=G(e)):c=(i=Math.abs(+Y(e)))%2,l=new x(f);;){if(c){if(!(l=l.times(u)).c)break;o?l.c.length>o&&(l.c.length=o):r&&(l=l.mod(t))}if(i){if(0===(i=C(i/2)))break;c=i%2}else if(P(e=e.times(n),e.e+1,1),e.e>14)c=G(e);else{if(0===(i=+Y(e)))break;c=i%2}u=u.times(u),o?u.c&&u.c.length>o&&(u.c.length=o):r&&(u=u.mod(t))}return r?l:(a&&(l=f.div(l)),t?l.mod(t):o?P(l,S,g,undefined):l)},d.integerValue=function(e){var t=new x(this);return null==e?e=g:H(e,0,8),P(t,t.e+1,e)},d.isEqualTo=d.eq=function(e,t){return 0===V(this,new x(e,t))},d.isFinite=function(){return!!this.c},d.isGreaterThan=d.gt=function(e,t){return V(this,new x(e,t))>0},d.isGreaterThanOrEqualTo=d.gte=function(e,t){return 1===(t=V(this,new x(e,t)))||0===t},d.isInteger=function(){return!!this.c&&W(this.e/z)>this.c.length-2},d.isLessThan=d.lt=function(e,t){return V(this,new x(e,t))<0},d.isLessThanOrEqualTo=d.lte=function(e,t){return-1===(t=V(this,new x(e,t)))||0===t},d.isNaN=function(){return!this.s},d.isNegative=function(){return this.s<0},d.isPositive=function(){return this.s>0},d.isZero=function(){return!!this.c&&0==this.c[0]},d.minus=function(e,t){var n,r,i,o,s=this,a=s.s;if(t=(e=new x(e,t)).s,!a||!t)return new x(NaN);if(a!=t)return e.s=-t,s.plus(e);var c=s.e/z,l=e.e/z,u=s.c,h=e.c;if(!c||!l){if(!u||!h)return u?(e.s=-t,e):new x(h?s:NaN);if(!u[0]||!h[0])return h[0]?(e.s=-t,e):new x(u[0]?s:3==g?-0:0)}if(c=W(c),l=W(l),u=u.slice(),a=c-l){for((o=a<0)?(a=-a,i=u):(l=c,i=h),i.reverse(),t=a;t--;i.push(0));i.reverse()}else for(r=(o=(a=u.length)<(t=h.length))?a:t,a=t=0;t0)for(;t--;u[n++]=0);for(t=j-1;r>a;){if(u[--r]=0;){for(n=0,d=v[i]%y,f=v[i]/y|0,o=i+(s=c);o>i;)n=((l=d*(l=m[--s]%y)+(a=f*l+(u=m[s]/y|0)*d)%y*y+p[o]+n)/g|0)+(a/y|0)+f*u,p[o--]=l%g;p[o]=n}return n?++r:p.splice(0,1),O(e,p,r)},d.negated=function(){var e=new x(this);return e.s=-e.s||null,e},d.plus=function(e,t){var n,r=this,i=r.s;if(t=(e=new x(e,t)).s,!i||!t)return new x(NaN);if(i!=t)return e.s=-t,r.minus(e);var o=r.e/z,s=e.e/z,a=r.c,c=e.c;if(!o||!s){if(!a||!c)return new x(i/0);if(!a[0]||!c[0])return c[0]?e:new x(a[0]?r:0*i)}if(o=W(o),s=W(s),a=a.slice(),i=o-s){for(i>0?(s=o,n=c):(i=-i,n=a),n.reverse();i--;n.push(0));n.reverse()}for((i=a.length)-(t=c.length)<0&&(n=c,c=a,a=n,t=i),i=0;t;)i=(a[--t]=a[t]+c[t]+i)/j|0,a[t]=j===a[t]?0:a[t]%j;return i&&(a=[i].concat(a),++s),O(e,a,s)},d.precision=d.sd=function(e,t){var n,r,i,o=this;if(null!=e&&e!==!!e)return H(e,1,B),null==t?t=g:H(t,0,8),P(new x(o),e,t);if(!(n=o.c))return null;if(r=(i=n.length-1)*z+1,i=n[i]){for(;i%10==0;i/=10,r--);for(i=n[0];i>=10;i/=10,r++);}return e&&o.e+1>r&&(r=o.e+1),r},d.shiftedBy=function(e){return H(e,-9007199254740991,K),this.times("1e"+e)},d.squareRoot=d.sqrt=function(){var e,t,r,i,o,s=this,a=s.c,c=s.s,l=s.e,u=p+4,h=new x("0.5");if(1!==c||!a||!a[0])return new x(!c||c<0&&(!a||a[0])?NaN:a?s:1/0);if(0==(c=Math.sqrt(+Y(s)))||c==1/0?(((t=F(a)).length+l)%2==0&&(t+="0"),c=Math.sqrt(+t),l=W((l+1)/2)-(l<0||l%2),r=new x(t=c==1/0?"5e"+l:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new x(c+""),r.c[0])for((c=(l=r.e)+u)<3&&(c=0);;)if(o=r,r=h.times(o.plus(n(s,o,u,1))),F(o.c).slice(0,c)===(t=F(r.c)).slice(0,c)){if(r.e0&&p>0){for(o=p%a||a,u=f.substr(0,o);o0&&(u+=l+f.slice(o)),d&&(u="-"+u)}r=h?u+(n.decimalSeparator||"")+((c=+n.fractionGroupSize)?h.replace(new RegExp("\\d{"+c+"}\\B","g"),"$&"+(n.fractionGroupSeparator||"")):h):u}return(n.prefix||"")+r+(n.suffix||"")},d.toFraction=function(e){var t,r,i,o,s,a,c,l,u,h,d,p,y=this,b=y.c;if(null!=e&&(!(c=new x(e)).isInteger()&&(c.c||1!==c.s)||c.lt(f)))throw Error(U+"Argument "+(c.isInteger()?"out of range: ":"not an integer: ")+Y(c));if(!b)return new x(y);for(t=new x(f),u=r=new x(f),i=l=new x(f),p=F(b),s=t.e=p.length-y.e-1,t.c[0]=q[(a=s%z)<0?z+a:a],e=!e||c.comparedTo(t)>0?s>0?t:u:c,a=v,v=1/0,c=new x(p),l.c[0]=0;h=n(c,t,0,1),1!=(o=r.plus(h.times(i))).comparedTo(e);)r=i,i=o,u=l.plus(h.times(o=u)),l=o,t=c.minus(h.times(o=t)),c=o;return o=n(e.minus(r),i,0,1),l=l.plus(o.times(u)),r=r.plus(o.times(i)),l.s=u.s=y.s,d=n(u,i,s*=2,g).minus(y).abs().comparedTo(n(l,r,s,g).minus(y).abs())<1?[u,i]:[l,r],v=a,d},d.toNumber=function(){return+Y(this)},d.toPrecision=function(e,t){return null!=e&&H(e,1,B),M(this,e,t,2)},d.toString=function(e){var t,n=this,i=n.s,o=n.e;return null===o?i?(t="Infinity",i<0&&(t="-"+t)):t="NaN":(null==e?t=o<=y||o>=b?J(F(n.c),o):Z(F(n.c),o,"0"):10===e&&A?t=Z(F((n=P(new x(n),p+o+1,g)).c),n.e,"0"):(H(e,2,R.length,"Base"),t=r(Z(F(n.c),o,"0"),10,e,i,!0)),i<0&&n.c[0]&&(t="-"+t)),t},d.valueOf=d.toJSON=function(){return Y(this)},d._isBigNumber=!0,d[Symbol.toStringTag]="BigNumber",d[Symbol.for("nodejs.util.inspect.custom")]=d.valueOf,null!=t&&x.set(t),x})();var Y;n(6266),n(5054);!function(e){e.TZ1="tz1",e.TZ2="tz2",e.TZ3="tz3",e.TZ4="tz4",e.KT="KT",e.KT1="KT1",e.EDSK2="edsk2",e.SPSK="spsk",e.P2SK="p2sk",e.EDPK="edpk",e.SPPK="sppk",e.P2PK="p2pk",e.BLPK="BLpk",e.EDESK="edesk",e.SPESK="spesk",e.P2ESK="p2esk",e.EDSK="edsk",e.EDSIG="edsig",e.SPSIG="spsig",e.P2SIG="p2sig",e.SIG="sig",e.NET="Net",e.NCE="nce",e.B="B",e.O="o",e.LO="Lo",e.LLO="LLo",e.P="P",e.CO="Co",e.ID="id",e.EXPR="expr",e.TZ="TZ",e.VH="vh",e.SASK="sask",e.ZET1="zet1",e.TXR1="txr1",e.TXI="txi",e.TXM="txm",e.TXC="txc",e.TXMR="txmr",e.TXRL="txM",e.TXW="txw",e.SR1="sr1",e.SRC1="src1"}(Y||(Y={}));Y.TZ1,new Uint8Array([6,161,159]),Y.TZ2,new Uint8Array([6,161,161]),Y.TZ3,new Uint8Array([6,161,164]),Y.TZ4,new Uint8Array([6,161,166]),Y.KT,new Uint8Array([2,90,121]),Y.KT1,new Uint8Array([2,90,121]),Y.EDSK,new Uint8Array([43,246,78,7]),Y.EDSK2,new Uint8Array([13,15,58,7]),Y.SPSK,new Uint8Array([17,162,224,201]),Y.P2SK,new Uint8Array([16,81,238,189]),Y.EDPK,new Uint8Array([13,15,37,217]),Y.SPPK,new Uint8Array([3,254,226,86]),Y.P2PK,new Uint8Array([3,178,139,127]),Y.BLPK,new Uint8Array([6,149,135,204]),Y.EDESK,new Uint8Array([7,90,60,179,41]),Y.SPESK,new Uint8Array([9,237,241,174,150]),Y.P2ESK,new Uint8Array([9,48,57,115,171]),Y.EDSIG,new Uint8Array([9,245,205,134,18]),Y.SPSIG,new Uint8Array([13,115,101,19,63]),Y.P2SIG,new Uint8Array([54,240,44,52]),Y.SIG,new Uint8Array([4,130,43]),Y.NET,new Uint8Array([87,82,0]),Y.NCE,new Uint8Array([69,220,169]),Y.B,new Uint8Array([1,52]),Y.O,new Uint8Array([5,116]),Y.LO,new Uint8Array([133,233]),Y.LLO,new Uint8Array([29,159,109]),Y.P,new Uint8Array([2,170]),Y.CO,new Uint8Array([79,179]),Y.ID,new Uint8Array([153,103]),Y.EXPR,new Uint8Array([13,44,64,27]),Y.TZ,new Uint8Array([2,90,121]),Y.VH,new Uint8Array([1,106,242]),Y.SASK,new Uint8Array([11,237,20,92]),Y.ZET1,new Uint8Array([18,71,40,223]),Y.TXR1,new Uint8Array([1,128,120,31]),Y.TXI,new Uint8Array([79,148,196]),Y.TXM,new Uint8Array([79,149,30]),Y.TXC,new Uint8Array([79,148,17]),Y.TXMR,new Uint8Array([18,7,206,87]),Y.TXRL,new Uint8Array([79,146,82]),Y.TXW,new Uint8Array([79,150,72]),Y.SR1,new Uint8Array([6,124,117]),Y.SRC1,new Uint8Array([17,165,134,138]),Y.TZ1,Y.TZ2,Y.TZ3,Y.TZ4,Y.KT,Y.KT1,Y.EDPK,Y.SPPK,Y.P2PK,Y.BLPK,Y.EDSIG,Y.SPSIG,Y.P2SIG,Y.SIG,Y.NET,Y.B,Y.P,Y.O,Y.VH,Y.SASK,Y.ZET1,Y.TXR1,Y.TXI,Y.TXM,Y.TXC,Y.TXMR,Y.TXRL,Y.TXW,Y.SR1,Y.SRC1;var Q;!function(e){e[e.NO_PREFIX_MATCHED=0]="NO_PREFIX_MATCHED",e[e.INVALID_CHECKSUM=1]="INVALID_CHECKSUM",e[e.INVALID_LENGTH=2]="INVALID_LENGTH",e[e.VALID=3]="VALID"}(Q||(Q={}));Y.TZ1,Y.TZ2,Y.TZ3,Y.TZ4,Y.KT1,Y.TXR1,Y.EDSIG,Y.P2SIG,Y.SPSIG,Y.SIG,Y.EDPK,Y.SPPK,Y.P2PK,Y.BLPK,Y.O,Y.P,Y.B;var X,_,$,ee,te,ne,re,ie,oe,se;!function(e){e.BlockchainRequest="blockchain_request",e.PermissionRequest="permission_request",e.SignPayloadRequest="sign_payload_request",e.OperationRequest="operation_request",e.BroadcastRequest="broadcast_request",e.BlockchainResponse="blockchain_response",e.PermissionResponse="permission_response",e.SignPayloadResponse="sign_payload_response",e.OperationResponse="operation_response",e.BroadcastResponse="broadcast_response",e.Acknowledge="acknowledge",e.Disconnect="disconnect",e.Error="error"}(X||(X={})),function(e){e.SIGN="sign",e.OPERATION_REQUEST="operation_request",e.ENCRYPT="encrypt",e.NOTIFICATION="notification",e.THRESHOLD="threshold"}(_||(_={})),function(e){e.MAINNET="mainnet",e.GHOSTNET="ghostnet",e.MONDAYNET="mondaynet",e.DAILYNET="dailynet",e.DELPHINET="delphinet",e.EDONET="edonet",e.FLORENCENET="florencenet",e.GRANADANET="granadanet",e.HANGZHOUNET="hangzhounet",e.ITHACANET="ithacanet",e.JAKARTANET="jakartanet",e.KATHMANDUNET="kathmandunet",e.LIMANET="limanet",e.MUMBAINET="mumbainet",e.NAIROBINET="nairobinet",e.CUSTOM="custom"}($||($={})),function(e){e.ENDORSEMENT="endorsement",e.SEED_NONCE_REVELATION="seed_nonce_revelation",e.DOUBLE_ENDORSEMENT_EVIDENCE="double_endorsement_evidence",e.DOUBLE_BAKING_EVIDENCE="double_baking_evidence",e.ACTIVATE_ACCOUNT="activate_account",e.PROPOSALS="proposals",e.BALLOT="ballot",e.REVEAL="reveal",e.TRANSACTION="transaction",e.ORIGINATION="origination",e.DELEGATION="delegation"}(ee||(ee={})),function(e){e.WEBSITE="website",e.EXTENSION="extension",e.P2P="p2p",e.WALLETCONNECT="walletconnect"}(te||(te={})),function(e){e.BACKGROUND="toBackground",e.PAGE="toPage",e.EXTENSION="toExtension"}(ne||(ne={})),function(e){e.BROADCAST_ERROR="BROADCAST_ERROR",e.NETWORK_NOT_SUPPORTED="NETWORK_NOT_SUPPORTED",e.NO_ADDRESS_ERROR="NO_ADDRESS_ERROR",e.NO_PRIVATE_KEY_FOUND_ERROR="NO_PRIVATE_KEY_FOUND_ERROR",e.NOT_GRANTED_ERROR="NOT_GRANTED_ERROR",e.PARAMETERS_INVALID_ERROR="PARAMETERS_INVALID_ERROR",e.TOO_MANY_OPERATIONS="TOO_MANY_OPERATIONS",e.TRANSACTION_INVALID_ERROR="TRANSACTION_INVALID_ERROR",e.SIGNATURE_TYPE_NOT_SUPPORTED="SIGNATURE_TYPE_NOT_SUPPORTED",e.ABORTED_ERROR="ABORTED_ERROR",e.UNKNOWN_ERROR="UNKNOWN_ERROR"}(re||(re={})),function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTING="CONNECTING",e.CONNECTED="CONNECTED"}(ie||(ie={})),function(e){e.CHROME_MESSAGE="chrome_message",e.WALLETCONNECT="walletconnect",e.POST_MESSAGE="post_message",e.LEDGER="ledger",e.P2P="p2p"}(oe||(oe={})),function(e){e.TRANSPORT_P2P_PEERS_DAPP="beacon:communication-peers-dapp",e.TRANSPORT_P2P_PEERS_WALLET="beacon:communication-peers-wallet",e.TRANSPORT_POSTMESSAGE_PEERS_DAPP="beacon:postmessage-peers-dapp",e.TRANSPORT_POSTMESSAGE_PEERS_WALLET="beacon:postmessage-peers-wallet",e.TRANSPORT_WALLETCONNECT_PEERS_DAPP="beacon:walletconnect-peers-dapp",e.LAST_SELECTED_WALLET="beacon:last-selected-wallet",e.ACCOUNTS="beacon:accounts",e.ACTIVE_ACCOUNT="beacon:active-account",e.PUSH_TOKENS="beacon:push-tokens",e.BEACON_SDK_SECRET_SEED="beacon:sdk-secret-seed",e.APP_METADATA_LIST="beacon:app-metadata-list",e.PERMISSION_LIST="beacon:permissions",e.BEACON_SDK_VERSION="beacon:sdk_version",e.MATRIX_PRESERVED_STATE="beacon:sdk-matrix-preserved-state",e.MATRIX_PEER_ROOM_IDS="beacon:matrix-peer-rooms",e.MATRIX_SELECTED_NODE="beacon:matrix-selected-node",e.MULTI_NODE_SETUP_DONE="beacon:multi-node-setup"}(se||(se={}));const ae={[se.TRANSPORT_P2P_PEERS_DAPP]:[],[se.TRANSPORT_P2P_PEERS_WALLET]:[],[se.TRANSPORT_POSTMESSAGE_PEERS_DAPP]:[],[se.TRANSPORT_POSTMESSAGE_PEERS_WALLET]:[],[se.TRANSPORT_WALLETCONNECT_PEERS_DAPP]:[],[se.LAST_SELECTED_WALLET]:void 0,[se.ACCOUNTS]:[],[se.ACTIVE_ACCOUNT]:void 0,[se.PUSH_TOKENS]:[],[se.BEACON_SDK_SECRET_SEED]:void 0,[se.APP_METADATA_LIST]:[],[se.PERMISSION_LIST]:[],[se.BEACON_SDK_VERSION]:void 0,[se.MATRIX_PRESERVED_STATE]:{},[se.MATRIX_PEER_ROOM_IDS]:{},[se.MATRIX_SELECTED_NODE]:void 0,[se.MULTI_NODE_SETUP_DONE]:void 0};var ce,le,ue;!function(e){e.RAW="raw",e.OPERATION="operation",e.MICHELINE="micheline"}(ce||(ce={})),function(e){e.LIGHT="light",e.DARK="dark"}(le||(le={})),function(e){e.EUROPE_EAST="europe-east",e.EUROPE_WEST="europe-west",e.NORTH_AMERICA_EAST="north-america-east",e.NORTH_AMERICA_WEST="north-america-west",e.CENTRAL_AMERICA="central-america",e.SOUTH_AMERICA="south-america",e.ASIA_EAST="asia-east",e.ASIA_WEST="asia-west",e.AFRICA="africa",e.AUSTRALIA="australia"}(ue||(ue={}));var he=function(){function e(){}return e.prototype.CallUnityOnAccountFailedToConnect=function(e){this.CallUnityMethod("OnAccountFailedToConnect",e)},e.prototype.CallUnityOnContractCallCompleted=function(e){this.CallUnityMethod("OnContractCallCompleted",e)},e.prototype.CallUnityOnContractCallFailed=function(e){this.CallUnityMethod("OnContractCallFailed",e)},e.prototype.CallUnityOnPayloadSigned=function(e){this.CallUnityMethod("OnPayloadSigned",e)},e.prototype.CallUnityOnAccountDisconnected=function(e){this.CallUnityMethod("OnAccountDisconnected",e)},e.prototype.CallUnityOnAccountConnected=function(e){this.CallUnityMethod("OnAccountConnected",{accountInfo:e})},e.prototype.CallUnityMethod=function(e,t){window.unityInstance.SendMessage("UnityBeacon",e,"string"==typeof t?t:JSON.stringify(t))},e.prototype.GetHexPayloadString=function(e,t){var n,r=(n=t,M.Buffer.from(n,"utf8").toString("hex")),i=(r.length/2).toString(16),o="00000000".concat(i),s=o.slice(o.length-8);return(e===ce.MICHELINE?"0501":"0300")+s+r},e.prototype.NumToSigningType=function(e){return 0==e?ce.RAW:1==e?ce.OPERATION:2==e?ce.MICHELINE:void 0},e.prototype.GetOperationsList=function(e,t,n,r){return[{kind:ee.TRANSACTION,amount:t,destination:e,parameters:{entrypoint:n,value:JSON.parse(r)}}]},e.prototype.GetOriginationOperationsList=function(e,t){return[{kind:ee.ORIGINATION,balance:"0",delegate:t,script:JSON.parse(e)}]},e}();const de=he;var fe,pe;!function(e){e.transfer_request="transfer_request",e.sign_payload_request="sign_payload_request"}(fe||(fe={})),function(e){e.transfer="transfer",e.sign_payload_json="sign_payload_json",e.sign_payload_raw="sign_payload_raw"}(pe||(pe={}));var ge;function ye(e){return Object.keys(e)}!function(e){e.PENDING="pending",e.RESOLVED="resolved",e.REJECTED="rejected"}(ge||(ge={}));const be=()=>{throw new Error("ExposedPromise not initialized yet.")};class me{constructor(){this._resolve=be,this._reject=be,this._status=ge.PENDING,this._promise=new Promise(((e,t)=>{this._resolve=t=>{this.isSettled()||(this._promiseResult=t,e(t),this._status=ge.RESOLVED)},this._reject=e=>{this.isSettled()||(this._promiseError=e,t(e),this._status=ge.REJECTED)}}))}get promise(){return this._promise}get resolve(){return this._resolve}get reject(){return this._reject}get status(){return this._status}get promiseResult(){return this._promiseResult}get promiseError(){return this._promiseError}static resolve(e){const t=new me;return t.resolve(e),t}static reject(e){const t=new me;return t.reject(e),t}isPending(){return this.status===ge.PENDING}isResolved(){return this.status===ge.RESOLVED}isRejected(){return this.status===ge.REJECTED}isSettled(){return this.isResolved()||this.isRejected()}}var ve=n(450),we=n(1416),Ee=n(6249),Se=n(3683),Ie=n(8764).Buffer,Re=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function Ae(e){return Ie.from(e).toString("hex")}function xe(e){return Re(this,void 0,void 0,(function*(){return Ae("string"==typeof e?(0,O.hash)((0,Ee.cv)(e),32):(0,O.hash)(e,32))}))}function Me(e){return Re(this,void 0,void 0,(function*(){return(0,T._w)((0,O.hash)((0,Ee.cv)(e),32))}))}function Te(e,t){return Re(this,void 0,void 0,(function*(){const n=Ie.from((0,we.randomBytes)(24));return Ae(Ie.concat([n,Ie.from((0,ve.secretBox)(t,n,Ie.from(e,"utf8")))]))}))}function Oe(e,t){return Re(this,void 0,void 0,(function*(){const n=e.slice(0,24),r=e.slice(24),i=(0,ve.openSecretBox)(t,n,r);if(!i)throw new Error("Decryption failed");return Ie.from(i).toString("utf8")}))}function Pe(e,t,n){return Re(this,void 0,void 0,(function*(){const r=(0,T.zh)(Ie.from(n)),i=(0,T.SH)(Ie.from(t)),o="string"==typeof e?(0,Ee.cv)(e):e,s=o.slice(0,32),a=o.slice(32),c=new O.BLAKE2b(24).update(s,32).update(i,32).digest(),l=(0,ve.openBox)(s,r,c,a);if(!l)throw new Error("Decryption failed");return Ie.from(l).toString()}))}function Ne(e,t){return`@${e}:${t}`}const ke=(e,t)=>Re(void 0,void 0,void 0,(function*(){const n=yield(e=>Re(void 0,void 0,void 0,(function*(){if(e.length%2!=0)return(0,Ee.cv)(e);let t=e;e.startsWith("0x")&&(t=e.slice(2));const n=Ie.from(t,"hex");return n.length===t.length/2?n:(0,Ee.cv)(e)})))(e),r=new Uint8Array([9,245,205,134,18]),i=yield((e,t=32)=>Re(void 0,void 0,void 0,(function*(){return(0,O.hash)(e,t)})))(n),o=(0,T.Xx)(t.secretKey,i);return P.encode(Ie.concat([Ie.from(r),Ie.from(o)]))}));var Ce=n(8764).Buffer,Ue=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};function Le(){return Ue(this,void 0,void 0,(function*(){const e=(0,we.randomBytes)(16);return[e.slice(0,4),e.slice(4,6),e.slice(6,8),e.slice(8,10),e.slice(10,16)].map((function(e){return Ce.from(e).toString("hex")})).join("-")}))}var je=n(5108);const ze=[e=>{}];let Ke={postMessage:(e,t)=>{je.log("GOT MOCK POST MESSAGE",e),ze.forEach((t=>{t({data:e})}))},addEventListener:(e,t)=>{ze.push(t)},removeEventListener:(e,t)=>{ze.splice(ze.indexOf((e=>e===t)),1)},location:{origin:"*"}};try{"undefined"!=typeof window&&(Ke=window)}catch(e){je.log(`not defined: ${e}`)}class qe{track(e,t,n,r){}}var De=n(5108),Be=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class We{constructor(e){var t,n;if(this._beaconId=new me,this._keyPair=new me,!e.name)throw new Error("Name not set");if(!e.storage)throw new Error("Storage not set");this.name=e.name,this.iconUrl=e.iconUrl,this.appUrl=null!==(t=e.appUrl)&&void 0!==t?t:Ke.location.origin,this.storage=e.storage,this.analytics=null!==(n=e.analytics)&&void 0!==n?n:new qe,Ke.beaconCreatedClientInstance?De.error("[BEACON] It looks like you created multiple Beacon SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere."):Ke.beaconCreatedClientInstance=!0,this.initSDK().catch(De.error)}get beaconId(){return this._beaconId.promise}get keyPair(){return this._keyPair.promise}destroy(){return Be(this,void 0,void 0,(function*(){yield this.removeBeaconEntriesFromStorage(),Ke.beaconCreatedClientInstance=!1}))}initSDK(){return Be(this,void 0,void 0,(function*(){return this.storage.set(se.BEACON_SDK_VERSION,"4.0.4").catch(De.error),this.loadOrCreateBeaconSecret().catch(De.error),this.keyPair.then((e=>{this._beaconId.resolve(Ae(e.publicKey))}))}))}removeBeaconEntriesFromStorage(){return Be(this,void 0,void 0,(function*(){const e=Object.values(se);yield Promise.all(e.map((e=>this.storage.delete(e))))}))}loadOrCreateBeaconSecret(){return Be(this,void 0,void 0,(function*(){const e=yield this.storage.get(se.BEACON_SDK_SECRET_SEED);if(e&&"string"==typeof e)this._keyPair.resolve(yield Me(e));else{const e=yield Le();yield this.storage.set(se.BEACON_SDK_SECRET_SEED,e),this._keyPair.resolve(yield Me(e))}}))}}var Fe=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Ve{constructor(e,t){this.storage=e,this.storageKey=t}getAll(){return Fe(this,void 0,void 0,(function*(){return this.storage.get(this.storageKey)}))}getOne(e){return Fe(this,void 0,void 0,(function*(){return(yield this.storage.get(this.storageKey)).find(e)}))}addOne(e,t,n=!0){return Fe(this,void 0,void 0,(function*(){const r=yield this.storage.get(this.storageKey);if(r.some(t)){if(n)for(let n=0;n!e(t)));return this.storage.set(this.storageKey,t)}))}removeAll(){return Fe(this,void 0,void 0,(function*(){return this.storage.delete(this.storageKey)}))}}var He=n(8764).Buffer,Ge=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Je=(e,t)=>Ge(void 0,void 0,void 0,(function*(){const n=[e,t.type];t.name&&n.push(`name:${t.name}`),t.rpcUrl&&n.push(`rpc:${t.rpcUrl}`);const r=He.from((0,O.hash)((0,Ee.cv)(n.join("-")),10));return P.encode(r)}));var Ze=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Ye{static hasPermission(e,t,n){return Ze(this,void 0,void 0,(function*(){switch(e.type){case X.PermissionRequest:case X.BroadcastRequest:return!0;case X.OperationRequest:{const n=yield Je(e.sourceAddress,e.network),r=yield t(n);return!!r&&r.scopes.includes(_.OPERATION_REQUEST)}case X.SignPayloadRequest:{const t=(yield n()).filter((t=>t.address===e.sourceAddress));return 0!==t.length&&t.some((e=>e.scopes.includes(_.SIGN)))}default:throw new Error("Message not handled")}}))}}var Qe=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Xe{constructor(e){this.storageManager=new Ve(e,se.ACCOUNTS)}getAccounts(){return Qe(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getAccount(e){return Qe(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.accountIdentifier===e))}))}addAccount(e){return Qe(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.accountIdentifier===e.accountIdentifier))}))}removeAccount(e){return Qe(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.accountIdentifier===e))}))}removeAccounts(e){return Qe(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.accountIdentifier)))}))}removeAllAccounts(){return Qe(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}hasPermission(e){return Qe(this,void 0,void 0,(function*(){return Ye.hasPermission(e,this.getAccount.bind(this),this.getAccounts.bind(this))}))}}var _e=n(8764).Buffer,$e=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const et=e=>$e(void 0,void 0,void 0,(function*(){const t=_e.from((0,O.hash)(_e.from(e,"hex"),5));return P.encode(t)}));var tt=n(5108);let nt=!!Ke.beaconSdkDebugEnabled;nt&&tt.log("[BEACON]: Debug mode is ON (turned on either by the developer or a browser extension)");var rt=n(5108);class it{constructor(e){this.name=e}debug(e,...t){ot.debug(this.name,e,t)}log(e,...t){ot.log(this.name,e,t)}warn(e,...t){ot.warn(this.name,e,t)}error(e,...t){ot.error(this.name,e,t)}}new it("");let ot=new class{constructor(){}debug(e,t,...n){this._log("debug",e,t,n)}log(e,t,...n){this._log("log",e,t,n)}warn(e,t,...n){this._log("warn",e,t,n)}error(e,t,...n){this._log("error",e,t,n)}_log(e,t,n,r=[]){if(!nt)return;let i=`[BEACON] ${(new Date).toISOString()} [${t}](${n})`,o=r;switch(r[0]&&"string"==typeof r[0]&&(i+=` ${r[0]}`,o=r.slice(1)),e){case"error":rt.group(i),rt.error(...o);break;case"warn":rt.group(i),rt.warn(...o);break;case"debug":rt.groupCollapsed(i),rt.debug(...o);break;default:rt.group(i),rt.log(...o)}rt.groupEnd()}};var st=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const at=new it("Client");class ct extends We{constructor(e){var t;super(e),this.rateLimit=2,this.rateLimitWindowInSeconds=5,this.requestCounter=[],this._transport=new me,this.accountManager=new Xe(e.storage),this.matrixNodes=null!==(t=e.matrixNodes)&&void 0!==t?t:{},this.handleResponse=(e,t)=>{throw new Error(`not overwritten${JSON.stringify(e)} - ${JSON.stringify(t)}`)}}get transport(){return this._transport.promise}get connectionStatus(){var e,t;return null!==(t=null===(e=this._transport.promiseResult)||void 0===e?void 0:e.connectionStatus)&&void 0!==t?t:ie.NOT_CONNECTED}get ready(){return this.transport.then((()=>{}))}getAccounts(){return st(this,void 0,void 0,(function*(){return this.accountManager.getAccounts()}))}getAccount(e){return st(this,void 0,void 0,(function*(){return this.accountManager.getAccount(e)}))}removeAccount(e){return st(this,void 0,void 0,(function*(){return this.accountManager.removeAccount(e)}))}removeAllAccounts(){return st(this,void 0,void 0,(function*(){return this.accountManager.removeAllAccounts()}))}addRequestAndCheckIfRateLimited(){return st(this,void 0,void 0,(function*(){const e=(new Date).getTime();return this.requestCounter=this.requestCounter.filter((t=>t+1e3*this.rateLimitWindowInSeconds>e)),this.requestCounter.push(e),this.requestCounter.length>this.rateLimit}))}init(e){return st(this,void 0,void 0,(function*(){return this._transport.status===ge.RESOLVED?(yield this.transport).type:(yield this.setTransport(e),e.type)}))}getOwnAppMetadata(){return st(this,void 0,void 0,(function*(){return{senderId:yield et(yield this.beaconId),name:this.name,icon:this.iconUrl}}))}getPeers(){return st(this,void 0,void 0,(function*(){return(yield this.transport).getPeers()}))}addPeer(e){return st(this,void 0,void 0,(function*(){return(yield this.transport).addPeer(e)}))}destroy(){const e=Object.create(null,{destroy:{get:()=>super.destroy}});return st(this,void 0,void 0,(function*(){this._transport.status===ge.RESOLVED&&(yield(yield this.transport).disconnect()),yield e.destroy.call(this)}))}setTransport(e){return st(this,void 0,void 0,(function*(){e?this._transport.isSettled()?this._transport=me.resolve(e):this._transport.resolve(e):this._transport.isSettled()&&(this._transport=new me)}))}addListener(e){return st(this,void 0,void 0,(function*(){e.addListener(((e,t)=>st(this,void 0,void 0,(function*(){if("string"==typeof e){const n=yield(new xt).deserialize(e);this.handleResponse(n,t)}})))).catch((e=>at.error("addListener",e)))}))}sendDisconnectToPeer(e,t){return st(this,void 0,void 0,(function*(){const n={id:yield Le(),version:e.version,senderId:yield et(yield this.beaconId),type:X.Disconnect},r=yield(new xt).serialize(n),i=null!=t?t:yield this.transport;yield i.send(r,e)}))}}class lt{constructor(e,t){this.name="BeaconError",this.title="Error",this.message=`[${e}]:${t}`,this.description=t}get fullDescription(){return{description:this.description}}static getError(e,t){switch(e){case re.BROADCAST_ERROR:return new ut;case re.NETWORK_NOT_SUPPORTED:return new ht;case re.NO_ADDRESS_ERROR:return new dt;case re.NO_PRIVATE_KEY_FOUND_ERROR:return new ft;case re.NOT_GRANTED_ERROR:return new pt;case re.PARAMETERS_INVALID_ERROR:return new gt;case re.TOO_MANY_OPERATIONS:return new yt;case re.TRANSACTION_INVALID_ERROR:return new bt(t);case re.SIGNATURE_TYPE_NOT_SUPPORTED:return new Dt;case re.ABORTED_ERROR:return new Ot;case re.UNKNOWN_ERROR:return new mt}}}class ut extends lt{constructor(){super(re.BROADCAST_ERROR,"The transaction could not be broadcast to the network. Please try again."),this.name="BroadcastBeaconError",this.title="Broadcast Error"}}class ht extends lt{constructor(){super(re.NETWORK_NOT_SUPPORTED,"The wallet does not support this network. Please select another one."),this.name="NetworkNotSupportedBeaconError",this.title="Network Error"}}class dt extends lt{constructor(){super(re.NO_ADDRESS_ERROR,"The wallet does not have an account set up. Please make sure to set up your wallet and try again."),this.name="NoAddressBeaconError",this.title="No Address"}}class ft extends lt{constructor(){super(re.NO_PRIVATE_KEY_FOUND_ERROR,"The account you are trying to interact with is not available. Please make sure to add the account to your wallet and try again."),this.name="NoPrivateKeyBeaconError",this.title="Account Not Found"}}class pt extends lt{constructor(){super(re.NOT_GRANTED_ERROR,"You do not have the necessary permissions to perform this action. Please initiate another permission request and give the necessary permissions."),this.name="NotGrantedBeaconError",this.title="Permission Not Granted"}}class gt extends lt{constructor(){super(re.PARAMETERS_INVALID_ERROR,"Some of the parameters you provided are invalid and the request could not be completed. Please check your inputs and try again."),this.name="ParametersInvalidBeaconError",this.title="Parameters Invalid"}}class yt extends lt{constructor(){super(re.TOO_MANY_OPERATIONS,"The request contains too many transactions. Please include fewer operations and try again."),this.name="TooManyOperationsBeaconError",this.title="Too Many Operations"}}class bt extends lt{constructor(e){super(re.TRANSACTION_INVALID_ERROR,"The transaction is invalid and the node did not accept it."),this.data=e,this.name="TransactionInvalidBeaconError",this.title="Transaction Invalid",this.data=e}get fullDescription(){return{description:this.description,data:JSON.stringify(this.data,void 0,2)}}}class mt extends lt{constructor(){super(re.UNKNOWN_ERROR,"An unknown error occured. Please try again or report it to a developer."),this.name="UnknownBeaconError",this.title="Error"}}var vt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const wt=new it("Transport");class Et{constructor(e,t,n){this.type=oe.POST_MESSAGE,this._isConnected=ie.NOT_CONNECTED,this.listeners=[],this.name=e,this.client=t,this.peerManager=n}get connectionStatus(){return this._isConnected}static isAvailable(){return vt(this,void 0,void 0,(function*(){return Promise.resolve(!1)}))}connect(){return vt(this,void 0,void 0,(function*(){wt.log("connect"),this._isConnected=ie.CONNECTED}))}disconnect(){return vt(this,void 0,void 0,(function*(){wt.log("disconnect"),this._isConnected=ie.NOT_CONNECTED}))}send(e,t){return vt(this,void 0,void 0,(function*(){if(t)return this.client.sendMessage(e,t);{const t=(yield this.getPeers()).map((t=>this.client.sendMessage(e,t)));return(yield Promise.all(t))[0]}}))}addListener(e){return vt(this,void 0,void 0,(function*(){wt.debug("addListener"),this.listeners.push(e)}))}removeListener(e){return vt(this,void 0,void 0,(function*(){wt.log("removeListener"),this.listeners=this.listeners.filter((t=>t!==e))}))}getPeers(){return vt(this,void 0,void 0,(function*(){return this.peerManager.getPeers()}))}addPeer(e,t=!0){return vt(this,void 0,void 0,(function*(){wt.log("addPeer","adding peer",e),yield this.peerManager.addPeer(e),yield this.listen(e.publicKey)}))}removePeer(e){return vt(this,void 0,void 0,(function*(){wt.log("removePeer","removing peer",e),yield this.peerManager.removePeer(e.publicKey),this.client&&(yield this.client.unsubscribeFromEncryptedMessage(e.publicKey))}))}removeAllPeers(){return vt(this,void 0,void 0,(function*(){wt.log("removeAllPeers"),yield this.peerManager.removeAllPeers(),this.client&&(yield this.client.unsubscribeFromEncryptedMessages())}))}notifyListeners(e,t){return vt(this,void 0,void 0,(function*(){0===this.listeners.length?wt.warn("notifyListeners","0 listeners notified!",this):wt.log("notifyListeners",`Notifying ${this.listeners.length} listeners`,this),this.listeners.forEach((n=>{n(e,t)}))}))}}var St=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class It{constructor(e){this.prefix=e}static isSupported(){return St(this,void 0,void 0,(function*(){return Promise.resolve(Boolean("undefined"!=typeof window)&&Boolean(window.localStorage))}))}get(e){return St(this,void 0,void 0,(function*(){const t=localStorage.getItem(this.getPrefixedKey(e));if(!t)return"object"==typeof ae[e]?JSON.parse(JSON.stringify(ae[e])):ae[e];try{return JSON.parse(t)}catch(e){return t}}))}set(e,t){return St(this,void 0,void 0,(function*(){return"string"==typeof t?localStorage.setItem(this.getPrefixedKey(e),t):localStorage.setItem(this.getPrefixedKey(e),JSON.stringify(t))}))}delete(e){return St(this,void 0,void 0,(function*(){return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(e)))}))}getPrefixedKey(e){return this.prefix?`${this.prefix}-${e}`:e}}new it("STORAGE");var Rt=n(8764).Buffer,At=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class xt{serialize(e){return At(this,void 0,void 0,(function*(){const t=JSON.stringify(e);return P.encode(Rt.from(t))}))}deserialize(e){return At(this,void 0,void 0,(function*(){if("string"!=typeof e)throw new Error("Encoded payload needs to be a string");return JSON.parse(P.decode(e).toString())}))}}var Mt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Tt{constructor(e){this.storageManager=new Ve(e,se.APP_METADATA_LIST)}getAppMetadataList(){return Mt(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getAppMetadata(e){return Mt(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.senderId===e))}))}addAppMetadata(e){return Mt(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.senderId===e.senderId))}))}removeAppMetadata(e){return Mt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.senderId===e))}))}removeAppMetadatas(e){return Mt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.senderId)))}))}removeAllAppMetadata(){return Mt(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}class Ot extends lt{constructor(){super(re.ABORTED_ERROR,"The action was aborted by the user."),this.name="UnknownBeaconError",this.title="Aborted"}}var Pt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Nt{constructor(e,t){this.storageManager=new Ve(e,t)}hasPeer(e){return Pt(this,void 0,void 0,(function*(){return!!(yield this.getPeer(e))}))}getPeers(){return Pt(this,void 0,void 0,(function*(){return this.storageManager.getAll()}))}getPeer(e){return Pt(this,void 0,void 0,(function*(){return this.storageManager.getOne((t=>t.publicKey===e))}))}addPeer(e){return Pt(this,void 0,void 0,(function*(){return this.storageManager.addOne(e,(t=>t.publicKey===e.publicKey))}))}removePeer(e){return Pt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>t.publicKey===e))}))}removePeers(e){return Pt(this,void 0,void 0,(function*(){return this.storageManager.remove((t=>e.includes(t.publicKey)))}))}removeAllPeers(){return Pt(this,void 0,void 0,(function*(){return this.storageManager.removeAll()}))}}var kt=n(4826),Ct=n(8764).Buffer,Ut=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class Lt{constructor(e){this.keyPair=e}getPublicKey(){var e;return Ut(this,void 0,void 0,(function*(){return Ae(null===(e=this.keyPair)||void 0===e?void 0:e.publicKey)}))}getPublicKeyHash(){return Ut(this,void 0,void 0,(function*(){return xe(this.keyPair.publicKey)}))}createCryptoBoxServer(e,t){return Ut(this,void 0,void 0,(function*(){return(0,kt.serverSessionKeys)({publicKey:(0,T.SH)(t.publicKey),secretKey:(0,T.zh)(t.secretKey)},(0,T.SH)(Ct.from(e,"hex")))}))}createCryptoBoxClient(e,t){return Ut(this,void 0,void 0,(function*(){return(0,kt.clientSessionKeys)({publicKey:(0,T.SH)(t.publicKey),secretKey:(0,T.zh)(t.secretKey)},(0,T.SH)(Ct.from(e,"hex")))}))}encryptMessageAsymmetric(e,t){return Ut(this,void 0,void 0,(function*(){return function(e,t){return Re(this,void 0,void 0,(function*(){const n=(0,T.SH)(Ie.from(t)),r=(0,ve.generateKeyPair)(),i=new O.BLAKE2b(24).update(r.publicKey,32).update(n,32).digest(),o="string"==typeof e?(0,Ee.cv)(e):e,s=(0,ve.box)(n,r.secretKey,i,o);return Ae((0,Se.z)(r.publicKey,s))}))}(t,Ct.from(e,"hex"))}))}}var jt=n(5108),zt=n(8764).Buffer,Kt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class qt extends Lt{constructor(e,t){super(t),this.name=e,this.init().catch(jt.error)}start(){return Kt(this,void 0,void 0,(function*(){yield Promise.resolve()}))}getPairingRequestInfo(){return Kt(this,void 0,void 0,(function*(){return{id:yield Le(),type:"postmessage-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey()}}))}getPairingResponseInfo(e){return Kt(this,void 0,void 0,(function*(){return{id:e.id,type:"postmessage-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey()}}))}unsubscribeFromEncryptedMessage(e){return Kt(this,void 0,void 0,(function*(){this.activeListeners.get(e)&&this.activeListeners.delete(e)}))}unsubscribeFromEncryptedMessages(){return Kt(this,void 0,void 0,(function*(){this.activeListeners.clear()}))}decryptMessage(e,t){return Kt(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxServer(e,this.keyPair),r=zt.from(t,"hex");if(r.length>=40)try{return yield Oe(r,n.receive)}catch(e){}throw new Error("Could not decrypt message")}))}encryptMessage(e,t){return Kt(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(e,this.keyPair);return Te(t,n.send)}))}}class Dt extends lt{constructor(){super(re.SIGNATURE_TYPE_NOT_SUPPORTED,"The wallet is not able to sign payloads of this type."),this.name="SignatureTypeNotSupportedBeaconError",this.title="Signature Type Not Supported"}}var Bt,Wt=n(9669),Ft=n.n(Wt);!function(e){e.TEXT="m.text"}(Bt||(Bt={}));class Vt{constructor(e,t,n,r){this.type=e,this.sender=t,this.content=n,this.timestamp=r}static from(e){if(Gt(e))return new Vt(e.content.msgtype,e.sender,e.content.body,e.origin_server_ts)}}const Ht=e=>"m.room.message"===e.type,Gt=e=>Ht(e)&&e.content instanceof Object&&"msgtype"in e.content&&e.content.msgtype===Bt.TEXT;var Jt;!function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.JOINED=1]="JOINED",e[e.INVITED=2]="INVITED",e[e.LEFT=3]="LEFT"}(Jt||(Jt={}));class Zt{constructor(e,t=Jt.UNKNOWN,n=[],r=[]){this.id=e,this.status=t,this.members=n,this.messages=r}static fromSync(e){var t,n,r;if(!e)return[];function i(e,t){return Object.entries(e).map((([e,n])=>t(e,n)))}return[...i(null!==(t=e.join)&&void 0!==t?t:{},Zt.fromJoined),...i(null!==(n=e.invite)&&void 0!==n?n:{},Zt.fromInvited),...i(null!==(r=e.leave)&&void 0!==r?r:{},Zt.fromLeft)]}static from(e,t){return"string"==typeof e?new Zt(e,t||Jt.UNKNOWN):void 0!==t?new Zt(e.id,t,e.members,e.messages):e}static merge(e,t){return t&&t.id===e.id?new Zt(e.id,e.status,[...t.members,...e.members].filter(((e,t,n)=>n.indexOf(e)===t)),[...t.messages,...e.messages]):Zt.from(e)}static fromJoined(e,t){const n=[...t.state.events,...t.timeline.events],r=Zt.getMembersFromEvents(n),i=Zt.getMessagesFromEvents(n);return new Zt(e,Jt.JOINED,r,i)}static fromInvited(e,t){const n=Zt.getMembersFromEvents(t.invite_state.events);return new Zt(e,Jt.INVITED,n)}static fromLeft(e,t){const n=[...t.state.events,...t.timeline.events],r=Zt.getMembersFromEvents(n),i=Zt.getMessagesFromEvents(n);return new Zt(e,Jt.LEFT,r,i)}static getMembersFromEvents(e){return Zt.getUniqueEvents(e.filter((e=>(e=>"m.room.create"===e.type&&e.content instanceof Object&&"creator"in e.content)(e)||(e=>"m.room.member"===e.type&&e.content instanceof Object&&"membership"in e.content&&"join"===e.content.membership)(e)))).map((e=>e.sender)).filter(((e,t,n)=>n.indexOf(e)===t))}static getMessagesFromEvents(e){return Zt.getUniqueEvents(e.filter(Ht)).map((e=>Vt.from(e))).filter(Boolean)}static getUniqueEvents(e){const t={},n=[];return e.forEach(((e,r)=>{const i=e.event_id;void 0!==i&&i in t||(void 0!==i&&(t[i]=r),n.push(e))})),n}}var Yt=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Qt=["syncToken","rooms"];class Xt{constructor(e){this.storage=e,this.state={isRunning:!1,userId:void 0,deviceId:void 0,txnNo:0,accessToken:void 0,syncToken:void 0,pollingTimeout:void 0,pollingRetries:0,rooms:{}},this.onStateChangedListeners=new Map,this.waitReadyPromise=new Promise(((e,t)=>Yt(this,void 0,void 0,(function*(){try{yield this.initFromStorage(),e()}catch(e){t(e)}}))))}get(e){return this.state[e]}getRoom(e){const t=Zt.from(e,Jt.UNKNOWN);return this.state.rooms[t.id]||t}update(e){return Yt(this,void 0,void 0,(function*(){yield this.waitReady();const t=Object.assign({},this.state);this.setState(e),this.updateStorage(e),this.notifyListeners(t,this.state,e)}))}onStateChanged(e,...t){t.length>0?t.forEach((t=>{this.onStateChangedListeners.set(t,e)})):this.onStateChangedListeners.set("all",e)}waitReady(){return Yt(this,void 0,void 0,(function*(){return this.waitReadyPromise}))}initFromStorage(){return Yt(this,void 0,void 0,(function*(){const e=yield this.storage.get(se.MATRIX_PRESERVED_STATE);this.setState(e)}))}prepareData(e){const t=["rooms"].some((t=>void 0!==e[t]))?JSON.parse(JSON.stringify(e)):e;return Object.values(t.rooms||{}).forEach((e=>{e.messages=[]})),t}updateStorage(e){if(Object.entries(e).filter((([e,t])=>Qt.includes(e)&&Boolean(t))).length>0){const e={};Qt.forEach((t=>{e[t]=this.state[t]})),this.storage.set(se.MATRIX_PRESERVED_STATE,this.prepareData(e))}}setState(e){this.state={isRunning:e.isRunning||this.state.isRunning,userId:e.userId||this.state.userId,deviceId:e.deviceId||this.state.deviceId,txnNo:e.txnNo||this.state.txnNo,accessToken:e.accessToken||this.state.accessToken,syncToken:e.syncToken||this.state.syncToken,pollingTimeout:e.pollingTimeout||this.state.pollingTimeout,pollingRetries:e.pollingRetries||this.state.pollingRetries,rooms:this.mergeRooms(this.state.rooms,e.rooms)}}mergeRooms(e,t){if(!t)return e;const n=Array.isArray(t)?t:Object.values(t),r=Object.assign({},e);return n.forEach((t=>{r[t.id]=Zt.merge(t,e[t.id])})),r}notifyListeners(e,t,n){const r=this.onStateChangedListeners.get("all");r&&r(e,t,n),ye(n).filter((e=>void 0!==n[e])).forEach((r=>{const i=this.onStateChangedListeners.get(r);i&&i(e,t,n)}))}}var _t=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const $t=new it("MatrixHttpClient");class en{constructor(e){this.baseUrl=e,this.cancelTokenSource=Ft().CancelToken.source()}get(e,t,n){return _t(this,void 0,void 0,(function*(){return this.send("GET",e,n,t)}))}post(e,t,n,r){return _t(this,void 0,void 0,(function*(){return this.send("POST",e,n,r,t)}))}put(e,t,n,r){return _t(this,void 0,void 0,(function*(){return this.send("PUT",e,n,r,t)}))}cancelAllRequests(){return _t(this,void 0,void 0,(function*(){return this.cancelTokenSource.cancel("Manually cancelled")}))}send(e,t,n,r,i){return _t(this,void 0,void 0,(function*(){const o=n?this.getHeaders(n):void 0,s=r?this.getParams(r):void 0;let a;try{a=yield Ft().request({method:e,url:t,baseURL:this.apiUrl("/_matrix/client/r0"),headers:o,data:i,params:s,cancelToken:this.cancelTokenSource.token})}catch(e){const t=e;throw $t.error("send",t.code,t.message,t.response.data),e.response.data}return a.data}))}getHeaders(e){const t={},n=[];if(e.accessToken&&n.push(["Authorization",`Bearer ${e.accessToken}`]),0!==n.length){for(const[e,r]of n)t[e]=r;return t}}getParams(e){if(!e)return;const t=Object.assign(e,{});return ye(t).forEach((e=>void 0===t[e]&&delete t[e])),t}apiUrl(...e){return[this.baseUrl.endsWith("/")?this.baseUrl.substr(0,this.baseUrl.length-1):this.baseUrl,...e.map((e=>e.startsWith("/")?e.substr(1):e))].join("/")}}var tn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class nn{constructor(e){this.httpClient=e}createRoom(e,t={}){return tn(this,void 0,void 0,(function*(){return this.httpClient.post("/createRoom",t,{accessToken:e})}))}inviteToRoom(e,t,n){return tn(this,void 0,void 0,(function*(){return n.status!==Jt.JOINED&&n.status!==Jt.UNKNOWN?Promise.reject(`User is not a member of room ${n.id}.`):this.httpClient.post(`/rooms/${encodeURIComponent(n.id)}/invite`,{user_id:t},{accessToken:e})}))}joinRoom(e,t){return tn(this,void 0,void 0,(function*(){return t.status===Jt.JOINED?Promise.resolve({room_id:t.id}):this.httpClient.post(`/rooms/${encodeURIComponent(t.id)}/join`,{},{accessToken:e})}))}getJoinedRooms(e){return tn(this,void 0,void 0,(function*(){return this.httpClient.get("/joined_rooms",void 0,{accessToken:e})}))}}var rn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class on{constructor(e){this.httpClient=e}login(e,t,n){return rn(this,void 0,void 0,(function*(){return this.httpClient.post("/login",{type:"m.login.password",identifier:{type:"m.id.user",user:e},password:t,device_id:n})}))}}var sn,an=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class cn{constructor(e){this.httpClient=e,this.cachedPromises=new Map}sync(e,t){return an(this,void 0,void 0,(function*(){return this.withCache("sync",(()=>this.httpClient.get("/sync",{timeout:t?t.pollingTimeout:void 0,since:t?t.syncToken:void 0},{accessToken:e})))}))}sendMessage(e,t,n,r){return an(this,void 0,void 0,(function*(){return new Promise(((i,o)=>this.scheduleEvent({accessToken:e,roomId:t,type:"m.room.message",content:n,txnId:r,onSuccess:i,onError:o})))}))}scheduleEvent(e){this.sendEvent(e)}sendEvent(e){return an(this,void 0,void 0,(function*(){const{roomId:t,type:n,txnId:r,content:i,accessToken:o}=e;try{const s=yield this.httpClient.put(`/rooms/${encodeURIComponent(t)}/send/${n}/${encodeURIComponent(r)}`,i,{accessToken:o});e.onSuccess(s)}catch(t){e.onError(t)}}))}withCache(e,t){let n=this.cachedPromises.get(e);return n||(n=t().finally((()=>{this.cachedPromises.delete(e)})),this.cachedPromises.set(e,n)),n}}class ln{constructor(){this.events={}}on(e,t){return"object"!=typeof this.events[e]&&(this.events[e]=[]),this.events[e].push(t),()=>this.removeListener(e,t)}removeListener(e,t){if("object"!=typeof this.events[e])return;if(!t)return void(this.events[e]=[]);const n=this.events[e].indexOf(t);n>-1&&this.events[e].splice(n,1)}removeAllListeners(){Object.keys(this.events).forEach((e=>this.events[e].splice(0,this.events[e].length)))}emit(e,...t){"object"==typeof this.events[e]&&[...this.events[e]].forEach((e=>e.apply(this,t)))}once(e,t){const n=this.on(e,((...e)=>{n(),t.apply(this,e)}));return n}}!function(e){e.INVITE="invite",e.MESSAGE="message"}(sn||(sn={}));class un extends ln{constructor(){super(...arguments),this.eventEmitProviders=new Map([[sn.INVITE,()=>[this.isInvite,this.emitInvite.bind(this)]],[sn.MESSAGE,()=>[this.isMessage,this.emitMessage.bind(this)]]])}onStateChanged(e,t,n){for(const e of ye(sn))this.emitIfEvent(sn[e],n)}emitIfEvent(e,t){const n=this.eventEmitProviders.get(e);if(n){const[r,i]=n();r(t)&&i(e,t)}}emitClientEvent(e,t,n){this.emit(e,{type:e,content:t,timestamp:n})}isInvite(e){return!!e.rooms&&e.rooms.some((e=>e.status===Jt.INVITED))}emitInvite(e,t){t.rooms.filter((e=>e.status===Jt.INVITED)).map((e=>[e.id,e.members])).forEach((([t,n])=>{this.emitClientEvent(e,{roomId:t,members:n})}))}isMessage(e){return!!e.rooms&&e.rooms.some((e=>e.messages.length>0))}emitMessage(e,t){t.rooms.filter((e=>e.messages.length>0)).map((e=>e.messages.map((t=>[e.id,t,t.timestamp])))).reduce(((e,t)=>e.concat(t)),[]).forEach((([t,n,r])=>{this.emitClientEvent(e,{roomId:t,message:n},r)}))}}var hn=n(5108),dn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const fn=new it("MatrixClient");class pn{constructor(e,t,n,r,i,o){this.store=e,this.eventEmitter=t,this.userService=n,this.roomService=r,this.eventService=i,this.httpClient=o,this.isActive=!0,this._isReady=new me,this.store.onStateChanged(((e,t,n)=>{this.eventEmitter.onStateChanged(e,t,n)}),"rooms")}static create(e){const t=new Xt(e.storage),n=new un,r=new en(e.baseUrl),i=new on(r),o=new nn(r),s=new cn(r);return new pn(t,n,i,o,s,r)}get joinedRooms(){return new Promise((e=>dn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Jt.JOINED)))}))))}get invitedRooms(){return new Promise((e=>dn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Jt.INVITED)))}))))}get leftRooms(){return new Promise((e=>dn(this,void 0,void 0,(function*(){yield this.isConnected(),e(Object.values(this.store.get("rooms")).filter((e=>e.status===Jt.LEFT)))}))))}start(e){return dn(this,void 0,void 0,(function*(){const t=yield this.userService.login(e.id,e.password,e.deviceId);yield this.store.update({accessToken:t.access_token});const n=new Promise(((e,t)=>dn(this,void 0,void 0,(function*(){yield this.poll(0,(t=>dn(this,void 0,void 0,(function*(){this.store.get("isRunning")||e(),yield this.store.update({isRunning:!0,syncToken:t.next_batch,pollingTimeout:3e4,pollingRetries:0,rooms:Zt.fromSync(t.rooms)})}))),(e=>dn(this,void 0,void 0,(function*(){this.store.get("isRunning")||t(e),yield this.store.update({isRunning:!1,pollingRetries:this.store.get("pollingRetries")+1})}))))}))));return n.then((()=>{this._isReady.resolve()})).catch(hn.error),n}))}isConnected(){return dn(this,void 0,void 0,(function*(){return this._isReady.promise}))}stop(){return dn(this,void 0,void 0,(function*(){return fn.log("MATRIX CLIENT STOPPED"),this.isActive=!1,this._isReady=new me,this.httpClient.cancelAllRequests()}))}subscribe(e,t){this.eventEmitter.on(e,t)}unsubscribe(e,t){t&&this.eventEmitter.removeListener(e,t)}unsubscribeAll(e){this.eventEmitter.removeListener(e)}getRoomById(e){return dn(this,void 0,void 0,(function*(){return yield this.isConnected(),this.store.getRoom(e)}))}createTrustedPrivateRoom(...e){return dn(this,void 0,void 0,(function*(){return yield this.isConnected(),this.requiresAuthorization("createRoom",(t=>dn(this,void 0,void 0,(function*(){return(yield this.roomService.createRoom(t,{room_version:"5",invite:e,preset:"public_chat",is_direct:!0})).room_id}))))}))}inviteToRooms(e,...t){return dn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("invite",(n=>Promise.all(t.map((t=>{const r=this.store.getRoom(t);this.roomService.inviteToRoom(n,e,r).catch((e=>fn.warn("inviteToRooms",e)))})))))}))}joinRooms(...e){return dn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("join",(t=>Promise.all(e.map((e=>{const n=this.store.getRoom(e);return this.roomService.joinRoom(t,n)})))))}))}sendTextMessage(e,t){return dn(this,void 0,void 0,(function*(){yield this.isConnected(),yield this.requiresAuthorization("send",(n=>dn(this,void 0,void 0,(function*(){const r=yield this.createTxnId();return this.eventService.sendMessage(n,e,{msgtype:"m.text",body:t},r)}))))}))}poll(e,t,n){return dn(this,void 0,void 0,(function*(){const r=this.store,i=this.sync.bind(this),o=(s,a)=>dn(this,void 0,void 0,(function*(){let c=0;try{const e=yield i();t(e)}catch(e){n(e),c=r.get("pollingRetries"),this.isActive&&fn.log(`Retry syncing... ${c} retries so far`)}finally{this.isActive?setTimeout((()=>dn(this,void 0,void 0,(function*(){yield o(s,a)}))),c>3?5e3+e:e):a(new Error("Syncing stopped manually."))}}));return new Promise(o)}))}sync(){return dn(this,void 0,void 0,(function*(){return this.requiresAuthorization("sync",(e=>dn(this,void 0,void 0,(function*(){return this.eventService.sync(e,{pollingTimeout:this.store.get("pollingTimeout"),syncToken:this.store.get("syncToken")})}))))}))}requiresAuthorization(e,t){return dn(this,void 0,void 0,(function*(){const n=this.store.get("accessToken");return n?t(n):Promise.reject(`${e} requires authorization but no access token has been provided.`)}))}createTxnId(){return dn(this,void 0,void 0,(function*(){const e=(new Date).getTime(),t=this.store.get("txnNo");return yield this.store.update({txnNo:t+1}),`m${e}.${t}`}))}}var gn=n(8764).Buffer,yn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const bn=new it("P2PCommunicationClient"),mn={[ue.EUROPE_WEST]:["beacon-node-1.diamond.papers.tech","beacon-node-1.sky.papers.tech","beacon-node-2.sky.papers.tech","beacon-node-1.hope.papers.tech","beacon-node-1.hope-2.papers.tech","beacon-node-1.hope-3.papers.tech","beacon-node-1.hope-4.papers.tech","beacon-node-1.hope-5.papers.tech"]};class vn extends Lt{constructor(e,t,n,r,i,o,s){super(t),this.name=e,this.replicationCount=n,this.storage=r,this.iconUrl=o,this.appUrl=s,this.client=new me,this.activeListeners=new Map,this.ignoredRooms=[],this.loginCounter=0,bn.log("constructor","P2PCommunicationClient created"),this.ENABLED_RELAY_SERVERS=mn,i&&(this.ENABLED_RELAY_SERVERS=Object.assign(Object.assign({},mn),i))}getPairingRequestInfo(){return yn(this,void 0,void 0,(function*(){const e={id:yield Le(),type:"p2p-pairing-request",name:this.name,version:"3",publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(e.icon=this.iconUrl),this.appUrl&&(e.appUrl=this.appUrl),e}))}getPairingResponseInfo(e){return yn(this,void 0,void 0,(function*(){const t={id:e.id,type:"p2p-pairing-response",name:this.name,version:e.version,publicKey:yield this.getPublicKey(),relayServer:(yield this.getRelayServer()).server};return this.iconUrl&&(t.icon=this.iconUrl),this.appUrl&&(t.appUrl=this.appUrl),t}))}findBestRegion(){return yn(this,void 0,void 0,(function*(){if(this.selectedRegion)return this.selectedRegion;const e=Object.keys(this.ENABLED_RELAY_SERVERS),t=[];e.forEach((e=>{var n;const r=null!==(n=this.ENABLED_RELAY_SERVERS[e])&&void 0!==n?n:[],i=Math.floor(Math.random()*r.length);t.push(this.getBeaconInfo(r[i]).then((t=>({region:e,server:r[i],response:t}))).catch((e=>new Promise(((t,n)=>{setTimeout((()=>n(e)),2e3)})))))}));const n=yield Promise.race(t);return this.selectedRegion=n.region,n.region}))}getRelayServer(){return yn(this,void 0,void 0,(function*(){if(this.relayServer){const e=yield this.relayServer.promise;if(Date.now()-e.localTimestamp<6e4)return{server:e.server,timestamp:e.timestamp};const t=yield this.getBeaconInfo(e.server);return this.relayServer.resolve({server:e.server,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e.server,timestamp:t.timestamp}}this.relayServer=new me;const e=yield this.storage.get(se.MATRIX_SELECTED_NODE);if(e&&e.length>0){const t=yield this.getBeaconInfo(e);return this.relayServer.resolve({server:e,timestamp:t.timestamp,localTimestamp:(new Date).getTime()}),{server:e,timestamp:t.timestamp}}const t=yield this.findBestRegion(),n=this.ENABLED_RELAY_SERVERS[t];if(!n)throw new Error(`No servers found for region ${t}`);const r=[...n];for(;r.length>0;){const e=Math.floor(Math.random()*r.length),t=r[e];try{const e=yield this.getBeaconInfo(t);return this.storage.set(se.MATRIX_SELECTED_NODE,t).catch((e=>bn.log(e))),this.relayServer.resolve({server:t,timestamp:e.timestamp,localTimestamp:(new Date).getTime()}),{server:t,timestamp:e.timestamp}}catch(n){bn.log(`Ignoring server "${t}", trying another one...`),r.splice(e,1)}}throw this.relayServer.reject("No matrix server reachable!"),new Error("No matrix server reachable!")}))}getBeaconInfo(e){return yn(this,void 0,void 0,(function*(){return Ft().get(`https://${e}/_synapse/client/beacon/info`).then((e=>({region:e.data.region,known_servers:e.data.known_servers,timestamp:Math.floor(e.data.timestamp)})))}))}tryJoinRooms(e,t=1){return yn(this,void 0,void 0,(function*(){try{yield(yield this.client.promise).joinRooms(e)}catch(n){t<=10&&"M_FORBIDDEN"===n.errcode?(bn.log("Retrying to join...",n),setTimeout((()=>yn(this,void 0,void 0,(function*(){yield this.tryJoinRooms(e,t+1)}))),200)):bn.log(`Failed to join after ${t} tries.`,n)}}))}start(){var e,t;return yn(this,void 0,void 0,(function*(){bn.log("start","starting client"),bn.log("start","connecting to server");const n=yield this.getRelayServer(),r=pn.create({baseUrl:`https://${n.server}`,storage:this.storage});if(this.initialListener=e=>yn(this,void 0,void 0,(function*(){this.initialEvent&&this.initialEvent.timestamp&&e&&e.timestamp?this.initialEvent.timestampyn(this,void 0,void 0,(function*(){let t;1===e.content.members.length&&(t=e.content.members[0]),yield this.tryJoinRooms(e.content.roomId),t&&(yield this.updateRelayServer(t),yield this.updatePeerRoom(t,e.content.roomId))})))),!n.timestamp)throw new Error("No timestamp received from relay server");const i=Math.floor(n.timestamp),o=`login:${Math.floor(i/300)}`;bn.log("start",`login ${o}, ${yield this.getPublicKeyHash()} on ${n.server}`);const s=(0,O.hash)((0,Ee.cv)(o),32),a=null!==(e=this.keyPair.secretKey)&&void 0!==e?e:this.keyPair.privateKey,c=(0,T.Xx)(a,s);try{yield r.start({id:yield this.getPublicKeyHash(),password:`ed:${Ae(c)}:${yield this.getPublicKey()}`,deviceId:Ae(this.keyPair.publicKey)})}catch(e){if(bn.error("start","Could not log in, retrying"),yield this.reset(),!this.selectedRegion)throw new Error("No region selected.");if(this.loginCounter<=(null!==(t=this.ENABLED_RELAY_SERVERS[this.selectedRegion])&&void 0!==t?t:[]).length)return this.loginCounter++,void this.start();throw bn.error("start","Tried to log in to every known beacon node, but no login was successful."),new Error("Could not connect to any beacon nodes. Try again later.")}bn.log("start","login successful, client is ready"),this.client.resolve(r)}))}stop(){return yn(this,void 0,void 0,(function*(){bn.log("stop","stopping client"),this.client.isResolved()&&(yield(yield this.client.promise).stop().catch((e=>bn.error(e)))),yield this.reset()}))}reset(){return yn(this,void 0,void 0,(function*(){bn.log("reset","resetting connection"),yield this.storage.delete(se.MATRIX_PEER_ROOM_IDS).catch((e=>bn.log(e))),yield this.storage.delete(se.MATRIX_PRESERVED_STATE).catch((e=>bn.log(e))),yield this.storage.delete(se.MATRIX_SELECTED_NODE).catch((e=>bn.log(e))),this.relayServer=void 0,this.client=new me,this.initialEvent=void 0,this.initialListener=void 0}))}listenForEncryptedMessage(e,t){return yn(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;bn.log("listenForEncryptedMessage",`start listening for encrypted messages from publicKey ${e}`);const n=yield this.createCryptoBoxServer(e,this.keyPair),r=r=>yn(this,void 0,void 0,(function*(){if(this.isTextMessage(r.content)&&(yield this.isSender(r,e))){let i;yield this.updateRelayServer(r.content.message.sender),yield this.updatePeerRoom(r.content.message.sender,r.content.roomId);try{i=gn.from(r.content.message.content,"hex")}catch(e){}if(i&&i.length>=40)try{const r=yield Oe(i,n.receive);bn.log("listenForEncryptedMessage",`received a message from ${e}`,r),t(r)}catch(e){}}}));this.activeListeners.set(e,r),(yield this.client.promise).subscribe(sn.MESSAGE,r);const i=this.initialEvent;i&&i.timestamp&&(new Date).getTime()-i.timestamp<3e5?(bn.log("listenForEncryptedMessage","Handling previous event"),yield r(i)):bn.log("listenForEncryptedMessage","No previous event found");const o=this.initialListener;o&&(yield this.client.promise).unsubscribe(sn.MESSAGE,o),this.initialListener=void 0,this.initialEvent=void 0}))}unsubscribeFromEncryptedMessage(e){return yn(this,void 0,void 0,(function*(){const t=this.activeListeners.get(e);t&&((yield this.client.promise).unsubscribe(sn.MESSAGE,t),this.activeListeners.delete(e))}))}unsubscribeFromEncryptedMessages(){return yn(this,void 0,void 0,(function*(){(yield this.client.promise).unsubscribeAll(sn.MESSAGE),this.activeListeners.clear()}))}sendMessage(e,t){return yn(this,void 0,void 0,(function*(){const n=yield this.createCryptoBoxClient(t.publicKey,this.keyPair),r=Ne(yield xe(gn.from(t.publicKey,"hex")),t.relayServer),i=yield this.getRelevantRoom(r);yield this.waitForJoin(i);const o=yield Te(e,n.send);bn.log("sendMessage","sending encrypted message",t.publicKey,i,e),(yield this.client.promise).sendTextMessage(i,o).catch((e=>yn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){bn.log("sendMessage","M_FORBIDDEN",i,e),yield this.deleteRoomIdFromRooms(i);const t=yield this.getRelevantRoom(r);bn.log("sendMessage","Old room deleted, new room created",t),(yield this.client.promise).sendTextMessage(t,o).catch((e=>yn(this,void 0,void 0,(function*(){bn.log("sendMessage","inner error",t,e)}))))}else bn.log("sendMessage","unexpected error",e)}))))}))}updatePeerRoom(e,t){return yn(this,void 0,void 0,(function*(){bn.log("updatePeerRoom",e,t);const n=e.split(":");if(n.length<2||!n[0].startsWith("@"))throw new Error("Invalid sender");const r=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS),i=r[e];i===t&&bn.debug("updatePeerRoom","rooms are the same, not updating"),bn.debug("updatePeerRoom","current room",i,"new room",t),i&&i[1]&&(bn.log("updatePeerRoom",`adding room "${i[1]}" to ignored array`),this.ignoredRooms.push(i[1])),r[e]=t,yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,r)}))}deleteRoomIdFromRooms(e){return yn(this,void 0,void 0,(function*(){const t=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS),n=Object.entries(t).filter((t=>t[1]!==e)).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t[0]]:t[1]})),{});yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,n),this.ignoredRooms.push(e)}))}listenForChannelOpening(e){return yn(this,void 0,void 0,(function*(){bn.debug("listenForChannelOpening"),(yield this.client.promise).subscribe(sn.MESSAGE,(t=>yn(this,void 0,void 0,(function*(){if(this.isTextMessage(t.content)&&(yield this.isChannelOpenMessage(t.content))){bn.log("listenForChannelOpening","channel opening received, trying to decrypt",JSON.stringify(t)),yield this.updateRelayServer(t.content.message.sender),yield this.updatePeerRoom(t.content.message.sender,t.content.roomId);const n=t.content.message.content.split(":"),r=gn.from(n[n.length-1],"hex");if(r.length>=40)try{const t=JSON.parse(yield Pe(r,this.keyPair.publicKey,this.keyPair.secretKey));bn.log("listenForChannelOpening","channel opening received and decrypted",JSON.stringify(t)),e(Object.assign(Object.assign({},t),{senderId:yield et(t.publicKey)}))}catch(e){}}}))))}))}waitForJoin(e,t=0){return yn(this,void 0,void 0,(function*(){const n=yield(yield this.client.promise).getRoomById(e);if(bn.log("waitForJoin",`Currently ${n.members.length} members, we need at least 2`),!(n.members.length>=2||0===n.members.length)){if(t<=200)return bn.log(`Waiting for join... Try: ${t}`),new Promise((n=>{setTimeout((()=>yn(this,void 0,void 0,(function*(){n(this.waitForJoin(e,t+1))}))),100*(t>50?10:1))}));throw new Error(`No one joined after ${t} tries.`)}}))}sendPairingResponse(e){return yn(this,void 0,void 0,(function*(){bn.log("sendPairingResponse");const t=Ne(yield xe(gn.from(e.publicKey,"hex")),e.relayServer),n=yield(yield this.client.promise).createTrustedPrivateRoom(t);bn.debug("sendPairingResponse",`Connecting to room "${n}"`),yield this.updatePeerRoom(t,n),yield this.waitForJoin(n),bn.debug("sendPairingResponse","Successfully joined room.");const r=void 0===e.version?yield this.getPublicKey():JSON.stringify(yield this.getPairingResponseInfo(e));bn.debug("sendPairingResponse","Sending pairing response",r);const i=yield this.encryptMessageAsymmetric(e.publicKey,r),o=["@channel-open",t,i].join(":");(yield this.client.promise).sendTextMessage(n,o).catch((e=>yn(this,void 0,void 0,(function*(){if("M_FORBIDDEN"===e.errcode){bn.log("sendPairingResponse","M_FORBIDDEN",n,e),yield this.deleteRoomIdFromRooms(n);const r=yield this.getRelevantRoom(t);bn.log("sendPairingResponse","Old room deleted, new room created",r),(yield this.client.promise).sendTextMessage(r,o).catch((e=>yn(this,void 0,void 0,(function*(){bn.log("sendPairingResponse","inner error",r,e)}))))}else bn.log("sendPairingResponse","unexpected error",e)}))))}))}isTextMessage(e){return e.message.type===Bt.TEXT}updateRelayServer(e){return yn(this,void 0,void 0,(function*(){bn.log("updateRelayServer",e);const t=e.split(":");if(t.length<2||!t[0].startsWith("@"))throw new Error("Invalid sender");const n=t.shift(),r=t.join(":"),i=localStorage.getItem("beacon:communication-peers-dapp")?new Nt(this.storage,se.TRANSPORT_P2P_PEERS_DAPP):new Nt(this.storage,se.TRANSPORT_P2P_PEERS_WALLET),o=(yield i.getPeers()).map((e=>yn(this,void 0,void 0,(function*(){`@${yield xe(gn.from(e.publicKey,"hex"))}`===n&&e.relayServer!==r&&(e.relayServer=r,yield i.addPeer(e))}))));yield Promise.all(o)}))}isChannelOpenMessage(e){return yn(this,void 0,void 0,(function*(){return e.message.content.startsWith(`@channel-open:@${yield xe(gn.from(yield this.getPublicKey(),"hex"))}`)}))}isSender(e,t){return yn(this,void 0,void 0,(function*(){return e.content.message.sender.startsWith(`@${yield xe(gn.from(t,"hex"))}`)}))}getRelevantRoom(e){return yn(this,void 0,void 0,(function*(){const t=yield this.storage.get(se.MATRIX_PEER_ROOM_IDS);let n=t[e];if(!n){bn.log("getRelevantRoom",`No room found for peer ${e}, checking joined ones.`);const r=yield this.getRelevantJoinedRoom(e);n=r.id,t[e]=r.id,yield this.storage.set(se.MATRIX_PEER_ROOM_IDS,t)}return bn.log("getRelevantRoom",`Using room ${n}`),n}))}getRelevantJoinedRoom(e){return yn(this,void 0,void 0,(function*(){const t=yield(yield this.client.promise).joinedRooms;bn.log("checking joined rooms",t,e);const n=t.filter((e=>!this.ignoredRooms.some((t=>e.id===t)))).filter((t=>t.members.some((t=>t===e))));let r;if(0===n.length||this.ignoredRooms.length>0){bn.log("getRelevantJoinedRoom","no relevant rooms found, creating new one");const t=yield(yield this.client.promise).createTrustedPrivateRoom(e);r=yield(yield this.client.promise).getRoomById(t),bn.log("getRelevantJoinedRoom",`waiting for other party to join room: ${r.id}`),yield this.waitForJoin(t),bn.log("getRelevantJoinedRoom",`new room created and peer invited: ${r.id}`)}else r=n[0],bn.log("getRelevantJoinedRoom",`channel already open, reusing room ${r.id}`);return r}))}}var wn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const En=new it("P2PTransport");class Sn extends Et{constructor(e,t,n,r,i,o,s){super(e,new vn(e,t,1,n,r,o,s),new Nt(n,i)),this.type=oe.P2P}static isAvailable(){return wn(this,void 0,void 0,(function*(){return Promise.resolve(!0)}))}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return wn(this,void 0,void 0,(function*(){if(this._isConnected!==ie.NOT_CONNECTED)return;En.log("connect"),this._isConnected=ie.CONNECTING,yield this.client.start();const t=yield this.getPeers();if(t.length>0){En.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>wn(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>En.error("connect",e)))}return yield this.startOpenChannelListener(),e.connect.call(this)}))}disconnect(){const e=Object.create(null,{disconnect:{get:()=>super.disconnect}});return wn(this,void 0,void 0,(function*(){return yield this.client.stop(),e.disconnect.call(this)}))}startOpenChannelListener(){return wn(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return wn(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return wn(this,void 0,void 0,(function*(){yield this.client.listenForEncryptedMessage(e,(t=>{const n={origin:te.P2P,id:e};this.notifyListeners(t,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}var In=n(5108),Rn=n(8764).Buffer,An=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class xn extends qt{constructor(){super(...arguments),this.activeListeners=new Map}init(){return An(this,void 0,void 0,(function*(){this.subscribeToMessages().catch(In.error)}))}listenForEncryptedMessage(e,t){return An(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;this.activeListeners.set(e,((n,r)=>An(this,void 0,void 0,(function*(){try{const i=yield this.decryptMessage(e,n.encryptedPayload);t(i,r)}catch(e){}}))))}))}sendMessage(e,t){return An(this,void 0,void 0,(function*(){const n=yield this.encryptMessage(t.publicKey,e),r=null==t?void 0:t.extensionId,i={target:ne.EXTENSION,encryptedPayload:n,targetId:r};Ke.postMessage(i,Ke.location.origin)}))}listenForChannelOpening(e){return An(this,void 0,void 0,(function*(){Ke.addEventListener("message",(t=>An(this,void 0,void 0,(function*(){var n,r;if(t.source!==Ke||t.origin!==Ke.location.origin)return;const i=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.message;if(i&&i.target===ne.PAGE&&(yield this.isChannelOpenMessage(i))){const n=Rn.from(i.payload,"hex");if(n.length>=40)try{const i=JSON.parse(yield Pe(n,this.keyPair.publicKey,this.keyPair.secretKey));e(Object.assign(Object.assign({},i),{senderId:yield et(i.publicKey),extensionId:null===(r=null==t?void 0:t.data)||void 0===r?void 0:r.sender.id}))}catch(e){}}}))))}))}sendPairingRequest(e){return An(this,void 0,void 0,(function*(){const t={target:ne.EXTENSION,payload:yield(new xt).serialize(yield this.getPairingRequestInfo()),targetId:e};Ke.postMessage(t,Ke.location.origin)}))}isChannelOpenMessage(e){return An(this,void 0,void 0,(function*(){return"object"==typeof e&&e.hasOwnProperty("payload")}))}subscribeToMessages(){return An(this,void 0,void 0,(function*(){Ke.addEventListener("message",(e=>{if(e.source===Ke&&e.origin===Ke.location.origin&&"object"==typeof e&&e){const t=e.data;t.message&&t.message.target===ne.PAGE&&this.activeListeners.forEach((e=>{e(t.message,{origin:te.EXTENSION,id:t.sender.id||""})}))}}))}))}}var Mn=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Tn=new it("PostMessageTransport");let On,Pn,Nn=!1;class kn extends Et{constructor(e,t,n,r){super(e,new xn(e,t),new Nt(n,r)),this.type=oe.POST_MESSAGE}static isAvailable(){return Mn(this,void 0,void 0,(function*(){return new Promise((e=>{const t=n=>{const r=n.data;r&&"pong"===r.payload&&(e(!0),Ke.removeEventListener("message",t))};Ke.addEventListener("message",t);const n={target:ne.EXTENSION,payload:"ping"};Ke.postMessage(n,Ke.location.origin)}))}))}static getAvailableExtensions(){return Mn(this,void 0,void 0,(function*(){return On||(Pn||(Pn=[],On=new Promise((e=>{kn.listenForExtensions(),setTimeout((()=>{e(null!=Pn?Pn:[])}),1e3)})).finally((()=>{On=void 0})),On))}))}static listenForExtensions(){if(Nn)return;Ke.addEventListener("message",(e=>{if(e.source!==Ke||e.origin!==Ke.location.origin)return;const t=e.data,n=t.sender;var r;t&&"pong"===t.payload&&n&&(Tn.log("getAvailableExtensions",`extension "${n.name}" is available`,n),r=n,Pn||(Pn=[]),Pn.some((e=>e.id===r.id))||(Pn.push(r),Ke.postMessage("extensionsUpdated",Ke.location.origin)))}));const e={target:ne.EXTENSION,payload:"ping"};Ke.postMessage(e,Ke.location.origin),Nn=!0}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return Mn(this,void 0,void 0,(function*(){if(Tn.log("connect"),this._isConnected!==ie.NOT_CONNECTED)return;this._isConnected=ie.CONNECTING;const t=yield this.getPeers();if(t.length>0){Tn.log("connect",`connecting to ${t.length} peers`);const e=t.map((e=>Mn(this,void 0,void 0,(function*(){return this.listen(e.publicKey)}))));Promise.all(e).catch((e=>Tn.error("connect",e)))}yield this.startOpenChannelListener(),yield e.connect.call(this)}))}startOpenChannelListener(){return Mn(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return Mn(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return Mn(this,void 0,void 0,(function*(){Tn.log("listen",e),yield this.client.listenForEncryptedMessage(e,((e,t)=>{const n={origin:te.EXTENSION,id:t.id};this.notifyListeners(e,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}const Cn={context:void 0,registry:void 0};function Un(e){Cn.context=e}const Ln=(e,t)=>e===t,jn=(Symbol("solid-proxy"),Symbol("solid-track")),zn=(Symbol("solid-dev-component"),{equals:Ln});let Kn=null,qn=br;const Dn=1,Bn=2,Wn={owned:null,cleanups:null,context:null,owner:null};var Fn=null;let Vn=null,Hn=null,Gn=null,Jn=null,Zn=null,Yn=null,Qn=0;const[Xn,_n]=er(!1);function $n(e,t){const n=Jn,r=Fn,i=0===e.length,o=i?Wn:{owned:null,cleanups:null,context:null,owner:void 0===t?r:t},s=i?e:()=>e((()=>ir((()=>Er(o)))));Fn=o,Jn=null;try{return yr(s,!0)}finally{Jn=n,Fn=r}}function er(e,t){const n={value:e,observers:null,observerSlots:null,comparator:(t=t?Object.assign({},zn,t):zn).equals||void 0};return[ur.bind(n),e=>("function"==typeof e&&(e=Vn&&Vn.running&&Vn.sources.has(n)?e(n.tValue):e(n.value)),hr(n,e))]}function tr(e,t,n){const r=pr(e,t,!1,Dn);Hn&&Vn&&Vn.running?Zn.push(r):dr(r)}function nr(e,t,n){qn=mr;const r=pr(e,t,!1,Dn),i=lr&&xr(Fn,lr.id);i&&(r.suspense=i),n&&n.render||(r.user=!0),Yn?Yn.push(r):dr(r)}function rr(e,t,n){n=n?Object.assign({},zn,n):zn;const r=pr(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,Hn&&Vn&&Vn.running?(r.tState=Dn,Zn.push(r)):dr(r),ur.bind(r)}function ir(e){if(null===Jn)return e();const t=Jn;Jn=null;try{return e()}finally{Jn=t}}function or(e){return null===Fn||(null===Fn.cleanups?Fn.cleanups=[e]:Fn.cleanups.push(e)),e}function sr(e){if(Vn&&Vn.running)return e(),Vn.done;const t=Jn,n=Fn;return Promise.resolve().then((()=>{let r;return Jn=t,Fn=n,(Hn||lr)&&(r=Vn||(Vn={sources:new Set,effects:[],promises:new Set,disposed:new Set,queue:new Set,running:!0}),r.done||(r.done=new Promise((e=>r.resolve=e))),r.running=!0),yr(e,!1),Jn=Fn=null,r?r.done:void 0}))}function ar(e,t){const n=Symbol("context");return{id:n,Provider:Tr(n),defaultValue:e}}function cr(e){const t=rr(e),n=rr((()=>Mr(t())));return n.toArray=()=>{const e=n();return Array.isArray(e)?e:null!=e?[e]:[]},n}let lr;function ur(){const e=Vn&&Vn.running;if(this.sources&&(e?this.tState:this.state))if((e?this.tState:this.state)===Dn)dr(this);else{const e=Zn;Zn=null,yr((()=>vr(this)),!1),Zn=e}if(Jn){const e=this.observers?this.observers.length:0;Jn.sources?(Jn.sources.push(this),Jn.sourceSlots.push(e)):(Jn.sources=[this],Jn.sourceSlots=[e]),this.observers?(this.observers.push(Jn),this.observerSlots.push(Jn.sources.length-1)):(this.observers=[Jn],this.observerSlots=[Jn.sources.length-1])}return e&&Vn.sources.has(this)?this.tValue:this.value}function hr(e,t,n){let r=Vn&&Vn.running&&Vn.sources.has(e)?e.tValue:e.value;if(!e.comparator||!e.comparator(r,t)){if(Vn){const r=Vn.running;(r||!n&&Vn.sources.has(e))&&(Vn.sources.add(e),e.tValue=t),r||(e.value=t)}else e.value=t;e.observers&&e.observers.length&&yr((()=>{for(let t=0;t1e6)throw Zn=[],new Error}),!1)}return t}function dr(e){if(!e.fn)return;Er(e);const t=Fn,n=Jn,r=Qn;Jn=Fn=e,fr(e,Vn&&Vn.running&&Vn.sources.has(e)?e.tValue:e.value,r),Vn&&!Vn.running&&Vn.sources.has(e)&&queueMicrotask((()=>{yr((()=>{Vn&&(Vn.running=!0),Jn=Fn=e,fr(e,e.tValue,r),Jn=Fn=null}),!1)})),Jn=n,Fn=t}function fr(e,t,n){let r;try{r=e.fn(t)}catch(t){return e.pure&&(Vn&&Vn.running?(e.tState=Dn,e.tOwned&&e.tOwned.forEach(Er),e.tOwned=void 0):(e.state=Dn,e.owned&&e.owned.forEach(Er),e.owned=null)),e.updatedAt=n+1,Ar(t)}(!e.updatedAt||e.updatedAt<=n)&&(null!=e.updatedAt&&"observers"in e?hr(e,r,!0):Vn&&Vn.running&&e.pure?(Vn.sources.add(e),e.tValue=r):e.value=r,e.updatedAt=n)}function pr(e,t,n,r=Dn,i){const o={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:Fn,context:null,pure:n};if(Vn&&Vn.running&&(o.state=0,o.tState=r),null===Fn||Fn!==Wn&&(Vn&&Vn.running&&Fn.pure?Fn.tOwned?Fn.tOwned.push(o):Fn.tOwned=[o]:Fn.owned?Fn.owned.push(o):Fn.owned=[o]),Gn){const[e,t]=er(void 0,{equals:!1}),n=Gn(o.fn,t);or((()=>n.dispose()));const r=()=>sr(t).then((()=>i.dispose())),i=Gn(o.fn,r);o.fn=t=>(e(),Vn&&Vn.running?i.track(t):n.track(t))}return o}function gr(e){const t=Vn&&Vn.running;if(0===(t?e.tState:e.state))return;if((t?e.tState:e.state)===Bn)return vr(e);if(e.suspense&&ir(e.suspense.inFallback))return e.suspense.effects.push(e);const n=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;r--){if(e=n[r],t){let t=e,i=n[r+1];for(;(t=t.owner)&&t!==i;)if(Vn.disposed.has(t))return}if((t?e.tState:e.state)===Dn)dr(e);else if((t?e.tState:e.state)===Bn){const t=Zn;Zn=null,yr((()=>vr(e,n[0])),!1),Zn=t}}}function yr(e,t){if(Zn)return e();let n=!1;t||(Zn=[]),Yn?n=!0:Yn=[],Qn++;try{const t=e();return function(e){Zn&&(Hn&&Vn&&Vn.running?function(e){for(let t=0;t{r.delete(n),yr((()=>{Vn.running=!0,gr(n)}),!1),Vn&&(Vn.running=!1)})))}}(Zn):br(Zn),Zn=null);if(e)return;let t;if(Vn)if(Vn.promises.size||Vn.queue.size){if(Vn.running)return Vn.running=!1,Vn.effects.push.apply(Vn.effects,Yn),Yn=null,void _n(!0)}else{const e=Vn.sources,n=Vn.disposed;Yn.push.apply(Yn,Vn.effects),t=Vn.resolve;for(const e of Yn)"tState"in e&&(e.state=e.tState),delete e.tState;Vn=null,yr((()=>{for(const e of n)Er(e);for(const t of e){if(t.value=t.tValue,t.owned)for(let e=0,n=t.owned.length;eqn(n)),!1);t&&t()}(n),t}catch(e){n||(Yn=null),Zn=null,Ar(e)}}function br(e){for(let t=0;t=0;t--)Er(e.tOwned[t]);delete e.tOwned}Sr(e,!0)}else if(e.owned){for(t=e.owned.length-1;t>=0;t--)Er(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}Vn&&Vn.running?e.tState=0:e.state=0,e.context=null}function Sr(e,t){if(t||(e.tState=0,Vn.disposed.add(e)),e.owned)for(let t=0;tn=ir((()=>(Fn.context={[e]:t.value},cr((()=>t.children)))))),void 0),n}}const Or=Symbol("fallback");function Pr(e){for(let t=0;te(t||{})));return Un(n),r}return ir((()=>e(t||{})))}function Cr(e){const t="fallback"in e&&{fallback:()=>e.fallback};return rr(function(e,t,n={}){let r=[],i=[],o=[],s=0,a=t.length>1?[]:null;return or((()=>Pr(o))),()=>{let c,l,u=e()||[];return u[jn],ir((()=>{let e,t,d,f,p,g,y,b,m,v=u.length;if(0===v)0!==s&&(Pr(o),o=[],r=[],i=[],s=0,a&&(a=[])),n.fallback&&(r=[Or],i[0]=$n((e=>(o[0]=e,n.fallback()))),s=1);else if(0===s){for(i=new Array(v),l=0;l=g&&b>=g&&r[y]===u[b];y--,b--)d[b]=i[y],f[b]=o[y],a&&(p[b]=a[y]);for(e=new Map,t=new Array(b+1),l=b;l>=g;l--)m=u[l],c=e.get(m),t[l]=void 0===c?-1:c,e.set(m,l);for(c=g;c<=y;c++)m=r[c],l=e.get(m),void 0!==l&&-1!==l?(d[l]=i[c],f[l]=o[c],a&&(p[l]=a[c]),l=t[l],e.set(m,l)):o[c]();for(l=g;le.each),e.children,t||void 0))}ar();var Ur=n(5108);Object.create(null),Object.create(null);const Lr="_$DX_DELEGATE";function jr(e,t,n,r={}){let i;return $n((r=>{i=r,t===document?e():Fr(t,e(),t.firstChild?null:void 0,n)}),r.owner),()=>{i(),t.textContent=""}}function zr(e,t,n){let r;const i=()=>{const t=document.createElement("template");return t.innerHTML=e,n?t.content.firstChild.firstChild:t.content.firstChild},o=t?()=>(r||(r=i())).cloneNode(!0):()=>ir((()=>document.importNode(r||(r=i()),!0)));return o.cloneNode=o,o}function Kr(e,t=window.document){const n=t[Lr]||(t[Lr]=new Set);for(let r=0,i=e.length;rr.call(e,n[1],t))}else e.addEventListener(t,n)}function Wr(e,t,n){if(!t)return n?qr(e,"style"):t;const r=e.style;if("string"==typeof t)return r.cssText=t;let i,o;for(o in"string"==typeof n&&(r.cssText=n=void 0),n||(n={}),t||(t={}),n)null==t[o]&&r.removeProperty(o),delete n[o];for(o in t)i=t[o],i!==n[o]&&(r.setProperty(o,i),n[o]=i);return n}function Fr(e,t,n,r){if(void 0===n||r||(r=[]),"function"!=typeof t)return Hr(e,t,r,n);tr((r=>Hr(e,t(),r,n)),r)}function Vr(e){const t=`$$${e.type}`;let n=e.composedPath&&e.composedPath()[0]||e.target;for(e.target!==n&&Object.defineProperty(e,"target",{configurable:!0,value:n}),Object.defineProperty(e,"currentTarget",{configurable:!0,get:()=>n||document}),Cn.registry&&!Cn.done&&(Cn.done=_$HY.done=!0);n;){const r=n[t];if(r&&!n.disabled){const i=n[`${t}Data`];if(void 0!==i?r.call(n,i,e):r.call(n,e),e.cancelBubble)return}n=n._$host||n.parentNode||n.host}}function Hr(e,t,n,r,i){if(Cn.context){!n&&(n=[...e.childNodes]);let t=[];for(let e=0;e{let i=t();for(;"function"==typeof i;)i=i();n=Hr(e,i,n,r)})),()=>n;if(Array.isArray(t)){const o=[],a=n&&Array.isArray(n);if(Gr(o,t,n,i))return tr((()=>n=Hr(e,o,n,r,!0))),()=>n;if(Cn.context){if(!o.length)return n;for(let e=0;er-a){const i=t[s];for(;a=0;o--){const s=t[o];if(i!==s){const t=s.parentNode===e;r||o?t&&s.remove():t?e.replaceChild(i,s):e.insertBefore(i,n)}else r=!0}}else e.insertBefore(i,n);return[i]}var Yr=n(7304),Qr=n.n(Yr),Xr=n(5108);function _r(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))}const $r=[{key:"spire_chrome",id:"gpfndedineagiepkpinficbcbbgjoenn",name:"Spire",shortName:"Spire",color:"",logo:"data:image/png;base64,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",link:"https://spirewallet.com/"},{key:"temple_chrome",id:"ookjlbkiijinhpmnjffcofjonbfbgaoc",name:"Temple Wallet Chrome",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"},{key:"temple_firefox",id:"{34ac229e-1cf5-4e4c-8a77-988155c4360f}",name:"Temple Wallet Firefox",shortName:"Temple",color:"",logo:"data:image/png;base64,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",link:"https://templewallet.com/"}],ei=[{key:"infinity_wallet",name:"Infinity Wallet",shortName:"Infinity Wallet",color:"rgb(52, 147, 218)",logo:"data:image/png;base64,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",deepLink:"infinity://",downloadLink:"https://infinitywallet.io/download"},{key:"galleon_desktop",name:"Galleon",shortName:"Galleon",color:"",logo:"data:image/png;base64,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",deepLink:"galleon://",downloadLink:"https://cryptonomic.tech/galleon.html"},{key:"umami_desktop",name:"Umami",shortName:"Umami",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",downloadLink:"https://umamiwallet.com/#download"},{key:"atomex_desktop",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAWgUlEQVR4Ae3BCXxV9YH34e/535PkZl/IAglJCDthF1kqFGhZBNxQxKWO+raOtaOtVqt2qtZSa2tt3ajdnNaqnapVQR0UlB0EAQGRRTYJSwhbgOzrTXLvGTvvxxnAiEAhuSfn9zyW8ylExJMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHiWQUQ8yyAinmUQEc8yiIhnGUTEswwi4lkGEfEsg4h4lkFEPMsgIp5lEBHPMoiIZxlExLMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHiWQUQ8yyAinmUQEc8yiIhnGUTEswwi4lkGEfEsg4h4lkFEPMsgIp5lEBHPMoiIZxlExLMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHiWQUQ8yyAinmUjntHUFKLwQAWf7C7l4JFqSsvraAyGiIzwkRQfRcf2CXTrlEJOhwRs2yBtn420aXX1Tcx/fxfvvreLlev3U1pex5dplxzNsAFZXDSqK2OHdyIq0kbaJhtpk0rK6/jzq+t5+a3NlFXWczpKyuqYvbiA2YsLSEmK5vrL+vCtK/uTlOBH2hYbaVOamkI8//pGpr+whsrqAP+s0vI6pr+whudnbuQH/zqMf7msDz5jIW2DjbQZe/ZXcPcjC1iz6SBnW0V1gAefWsqcJQU8cd9YsjLiEfczSJuw/MMiptw2kzWbDnIurVq/n8n/NoO1mw4i7mcQ11uwYg/fvn8OR8tqaQmHS2q44d5ZLFyxB3E3g7ja8rVF3P6zedTUNdKSamobuf1n81iz6SDiXgZxrd37yrnj4fnU1DbQGqprG7ht2rsUHaxE3MkgrhRoCHLXLxZwtKyW1lR8tIZ7H11EY1MIcR+DuNILr29k3eZDhIMVH+3jpVkfI+5jENc5UlrLb/+2lnAy/YU1lJTVIe5iENf5y4wNVFQFCCcl5XX8ZeYGxF0M4ipVNQ28/NZmwtErs7dQW9+IuIdBXGXe8l2UVdYTjo6U1rJo5R7EPQziKrOXFBDO5i7bhbiHQVyjoTHImo0HCWfL1+4j5DiIOxjENQoKy6iqaSCclVXWsbuoHHEHg7jGjsJSHMchnDkOFBSWIe5gENc4UFyFG+wvrkLcwSCuUV4ZwA0qqgKIOxjENeoDTbhBfUMT4g4GcQ1/lI0bREX4EHcwiGskxkfhBskJfsQdDOIamenxuEGH9HjEHQziGl1zk7Esi3BmWdA9LwVxB4O4RrdOKcTFRBDOkuL9dMpKRNzBIK4RFeljSP9MwtnwQdkYYyHuYBBXmTiyC+Fs4sjOiHsYxFXGjehMUoKfcJSSGM3Xv9IJcQ+DuEpSfBRTLuxJOPqXy/oQEx2BuIdBXOfmqwaQGB9FOElK8PPNKf0QdzGI63RIj+M7155HOLnjxsGkJEUj7mIQV7pp6gD698wgHAzu24HrJ/dF3McgrhQV6eOpB8aRnOinNaUmx/DE/eOIsA3iPgZxrc7ZSUx/YBzRfpvWEOOP4Pc/nUBOhwTEnQziaqOG5PL0gxcS7bdpSTH+CH7z4/EM7Z+JuJdBXG/c8Dye+dkkUpKiaQmpyTE89+jFjBuRh7ibQdqEUUNymPnbKQzMb8+5NKR/Jq//bgrDBmQh7mcjbUbn7CRemT6ZZ1/bwB9eWkdldYCzJSnBz+03DOb6yX2IjPAhbYONtClRkTa3XjeIKRf25C8zN/D3t7dQXlnPmUpJiuaai/L51pX9SUuJQdoWG2mTMlJj+dEtF/Bv157HwpV7mLNkJ2s/PkhlVYCQ4/BFjLFIjIticL9MLhrdhTEX5BEfG4m0TTbSpiUl+JlyYU+mXNiTuvomdhWVs3NvGfsOVVJZHSAYcvAZi6QEP1kZ8XTNTaZzdjJRkT6k7bMRVzpaVsvGbYdpnxZHry6pWBZfKtpv07tbKr27pSLyDzbiOm8t2sG9jy6itr4Ry4JJo7ry1APjiIzwIXI6DOIqG7Yd5u5fLqS2vpF/cByYvaSAV2ZvQeR0GcQ1Ssrr+O60d6kPNHGiDzYcQOR02YgrBIMOd/9yIXsPVtKczPR4zqWKqgDP/H0d67cU0yUnmW9fM5DsDgmIu9mIK/zuxbUsWrmH5qSlxPDNKf04VxqbQtxwzyzWby3mH95ft48FK3bz5h+mkpEai7iXQcLesjV7mf78GpoTEeHj1z8cQ4f0OM6VFev2sX5rMcc6cLial97ajLibQcJa0aFK7vrFApqCIZrzvevPZ/SwXM6l0vI6mvPG/O0EGoKIexkkbNUHmvj+w/M5XFpLc8Zc0Ilbv3EeFufWkP6Z+HwWJyrcX8Gq9fsR9zJIWHIch0f/YyVrNx2kObmZiTx6z9eJiPBxrmVlxDP8vGya88qcLYh7GSQszVq4g+df30hz/FE20388nrSUGFrKNRfn05wlqwo5UlqLuJNBws4nu0t54MmlhEIOzXngthEMzM+gJY29II+UxGhOVFPXyH8t+ARxJ4OElcrqALdNe5fK6gDNmTqxF9dd2puWFhXp4/Lx3WnOjHe3EQo5iPsYJGyEQg73P7GET/aU0pz8rqn89PavYiyL1nDlhF4YY3GiT3aX8NGWYsR9DBI2npu5kbcWFdCc+LhIfjdtArExkbSWXl1T6d8zgxMFQw4z525D3McgYWH1xgP86k8rcRyHExlj8eg9X6dzdhKtyQKmTuxJc95evIOqmgbEXQzS6g6X1HDnz+dTH2iiOf86dQCTRnUlHFw0uivxsZGcqKIqwNxluxB3MUirCoUc7vrFAvYdqqI5XxmYxT03D8OyCAtJCX7Gj+hMc16ZvQVxF4O0qpXr97P8wyKa0z41lifvG0dkhI9wcvVF+RhjcaIPNx+ioLAMcQ+DtKoDxVU4Dp8TGenj8fvG0iE9jnAzqE978jomcaJgMMRr72xF3MMgrWpgfga2z3Asy4I7/98QRgzKJhzZPsNVE3vRnDfmb6exKYS4g0FaVdfcFP79OxcQGeHjH4yx+MYlfbjlmoGEs0vGdMMfZXOi4qM1LF61B3EHGzltjuOwe18FBYVlFB+tpqqmAceB2JgIMtrFkpedRNecZGzbcCpuvmoAF47IY+vOEnIyE+jVJZVwl5URz8jBOcxbvosTvfbOVsaP6IyEPxs5JXX1TSxYsZs5S3by/roiKqoCnEy032bYgCzGDc9j0uiuJCf4OZmczERyMhNxk6sm9WLe8l2caOHKQoqP1pCRGouENxs5qfKqAM/N2MBf39xEaXkdp6quvonFqwpZvKqQn//+fa6alM+3rx5AZkY8bcVXz8+mY/t49h2q4ljBYIiZc7dx63WDkPDmm/Yp5HOCIYcZ72zjlh/PYdHKPdTVN3GmGptCrN9azN9nbyHkwIBeGdg+g9vZtuFIaS1rNx3kRBVVAa69pDeWZSHhyyCfU1pex60PvsO9v1rEkdJazpaa2kYe+/MqvnHnm+w9UElbMGVCT2zbcKLKqgBOyEHCm0GOs6uonGu+/ybvLtuF4zicC2s/PsgVt81g/dZi3K5LTjIjBnXkRKOG5uLzGSS8GeR/7Soq54a7Z7F9dwnn2pHSWm64ZxYfbTmEmxnL4pEffI3z+3TAZyxsn2H00FzuvXkYEv5s5H+UlNdxy4/nUHSokpZSURXgWz+azYynr6BLTjJulZkRz6u/uZyiQ1X4jEVWRjzGWEj4MwjBYIh7f7WIT3aX0tJKy+u47adzqalrxM18PkOnrESyOyRgjIW4g0F46e3NLFyxm9ayteAojz/7ASItzeBxpRV1PPbnD3AcWtV/vrmJrTuPItKSDB737KsbKK+sp7U1NAZ5/NkPcBxEWozBw6prG3j+jY2EiyUfFLKjsBSvaGgIUlXTQFVNA4GGINLybDxs9uICqmsaCBeNTSFen7uNf7/lAtqS2vpGNm47zIcfH+LjHUfYs6+cA8VV1NY34fD/WUCM36ZDejx5HZPo0z2N83q3p1+PdGJjIpBzw8bD5izdSbiZt3w3d980DNs2uFmgoYn31hTx+tztrPhoHxVV9TgOJ9XQGKS8KsDWnUeZs7QAy4L42ChGDs7m0jHdGTUkB3+UjZw9Nh4VaGhizaYDhJs9+ysoOlRJXsck3KiiKsDLb2/mxVmbKTpYgeNwxhwHKqsDvL24gNmLC8hqH88Nk/ty7SW9SYiLQv55Nh61Y08ZNbWNhJtgMMTGbYfJ65iEmzQ2hXh97jaeeG41h45Uc7Y5wL5DVfzijyt49rUNfP+bQ7hyQk8iI3zImbPxqILCMsLVzr1luElBYRkPPLmUlR/toyUUl9Rw32OLeWP+dn5+12i6d0pBzozBow4eqSZcHThcjRs4jsPr87Zz+a0zWPnRPlqSA6zecIApt81k5rvbCDkOcvpsPKqqOkC4qqppINwFgyEee/YDnnl5HcGQQ2uprA5w9y8Xsn1PKffePAzbZ5BTZ/CokOMQrkKhEOEsGAzx4PT3+MOLHxIMObS2kOPwzMvruO/xJQSDIeTUGTwqJjqCcBUbE0m4CoUcpj29jL/918c4hJdXZm/hR48vwXEc5NTYeFR6SizhKi05hhPVB5qY/sIaVn60n3bJ0YwcnM2owbl06phIS3r6P9fy1zc2Ea5emb2F9qmx3PWtociXs/GoTh0TCVd52Ukcy3Hg9p/NY+6yXXxmwfu7MZZFp46JjBqay9eG5nJ+3w7ERkdwrsx/fzdPPb+acPf0X9eS3y2NCV/tjJycjUfld03F9hmagiHCiWVBn+5pHGvvgQrmLdvFiUKOw66icnYVlfPcjA3ExUQypF8mo4flMmJQNp2zE7Esi7Ph0NEafvjrRYRCDuEu5Dj86LHF9OuRTmZ6HPLFbDwqPjaKPj3SWL+lmHCSlhJL19xkjlVZHcDhy1XXNrBo1R4WrdqD7TPkZiUyakgOo4fmcl5+e+LjIjkTjgM/mf4eJWV1uEVpeR3TfvMef3xoIsZYSPNsPMqyYNwFeazfUkw4GTk4mxh/BMfq2aUd2R0SKDpYyalqCobYubeMnXvL+MuMDSTERXF+3w6MHpLDiPOz6dQxCZ+xOBVLVxcyd9lO3Gbe8l0sWrmHscPzkOb5pn0Kj8pqH88Lr28i5DiEAwu4/9bh5GQmciyfMQzpl8naTQcprajnTAQaguzeV87iDwp5cdZm3lq0gz37KrAsi9TkaCIjfDSnKRji9ofmUVxSixvt3FvO1Im98PkM8nm+aZ/CoxLioti68ygFhWWEg3490vnBTcPwGYsTpbeL5ZqL8xk/Io/M9HgCjUHKK+ppCoY4XSHHobSino+2FPPG/O3MnLuN7nnt6JSVyInmv7+bZ1/bgFsdKa2lV5dUundKQT7PN+1TeFjn7GRenbOFUMihNVmWxUN3jKJHXgpfxOczZKTGMrR/JldflM/Uib3o1zOdaH8EpRV11NU14XD6amobWf5hEVdflI8/yuYzIcfhJ0+9R9HBStzsaFktUyb0xLIs5Hg2HpffNZXrLuvD8zM30ppGDclh/Ig8TkdGaiyXjunOpWO609gYZHPBUZau3svSDwrZ9MkRGhqDnKojpbVsKTjKVwZm8ZndReWs2rAft1v78SEK9pTRPS8FOZ6NcM9Nw3hv9V52FZXTGpIS/Dx85yiMsThTERE+BvTKYECvDO64cTBHSmtZ8dE+lqwqZNnaIo6W1eE4DieTlODnWHOW7iQYdHC7YDDEO+/tpHteCnI8GyEuNpKnH7yQq+94g+raBlqSsSx+/cOvk90hgbMpLSWGy8Z057Ix3QkGQ3z8yRGWrN7L0g8KWb+1mGDI4Vhjh+fRPS+FzziOw8IVe2gr5i/fzR03DkaOZyP/o0/3NJ68fyzf/elcAg1BWoJlwUN3jmL8iM6cSz6foX+vDPr3yuCOGwdTVlHPsrVFLF1dyOGSWoYNyOKmqf3xGYvPlFXWs3XnUdqKHYWlFJfUkNEuFvk/NvK/xo/ozPQHxnPXIwuorWvkXPIZi5/cPpLrL+tDS0tO9HPpmG5cOqYbX2RLwVHqA020FfWBJrYWHCWjXSzyfwxynImjuvC3xy6jY/t4zpWkBD+/nTaBGy/vS7jatquEtmb77lLkeAb5nEF92vPmH6Zyxfge+IzF2WJZMHxQR978/ZVMGtWFcFa4v4K2Zs++cuR4NtKstJQYHr9vLFdO6MkTz61m3eZDhEIOZ8ICuuWl8L3rBzNpdBdsnyHcFR+toa0pLqlBjmcjX8hYFsMHZTNsYEc+3HSQmXO3sWhVIUdKa3AcvlRifBQXnNeRqy/K54KBHYmK9OEWldUB2prKqgbkeDbypXzGYkj/TIb0z6Qu0MT2nSVs3H6YHYWlHC6poaq6gZDjEBcTSVq7GPI6JjGgVwY9O7cjIS4KN6oPBGlr6gKNyPFs5LRER9kMyM9gQH4GbZltG9oa22eQ4xlEmhHjt2lrYqIjkOMZRJrRLimatqZdUjRyPINIM7Iy4mlrstrHI8cziDSja24KbU233BTkeAaRZvTunkpbYlkWvbulIccziDQjp0MimelxtBVpKTHkdUxEjmcQaUZUpI+vDOxIWzG0fyb+KBs5nkHkC0wY2Zm2YsLILsjnGUS+wFfPzyGjXSxul5YSw+ihOcjnGUS+QLTf5ooLe+J2k8d2Jy4mEvk8g8hJ3HB5X2L8EbhVjD+CG6/ohzTPIHISmelxfOPS3rjV1Em9yO6QgDTPIPIlvnfD+aSlxOA27ZKiuePGwcgXM4h8iaR4P/ffOhy3uf/W4bRLika+mEHkFFw+rgeXje2OW1z8tW5cPr4HcnIGkVP08J2j6NG5HeGuS04yj9w9GmNZyMkZRE5RQlwUzzw0kYzUWMJVersY/uPhSSTERSFfziByGvKyk/jTzyeRkugn3CQl+Hn2kYvpmpuMnBqDyGnq3zODv/76UrLaxxMu2qfF8eITl9GvRzpy6gwiZ6Bvj3RefnIy/Xtl0Nr69kjn1emX06dbGnJ6DCJnKDczkZefnMz1k/vi81m0NJ/PcN2lffj7U5PJzUpETp+NyD8hNjqCh+8cxbjheTz022UUFJbREjpnJ/Hgd7/K6KG5WBZyhmxEzoJRQ3KY/aereXHWZv748joOl9RwLrRPi+OWawZy7cW9ifbbyD/HRuQs8UfZ3DS1P9deks+shTt4adbHbNh2mLOhb490rru0N5PH9iDabyNnh43IWRbjj+Cai/K55qJ8du4tY/77u1m2toiN2w5TWR3gVMTHRtKvZzojBmUzYWQXOmcnIWefjcg51CUnmS45yXzn2vNobApRdKCCXfsqOHC4ivLKemrrmrAsiPbbJCf46ZAeT6esRHKzEomwDXJu2Yi0kAjb0Dknmc45yUh4MIiIZxlExLMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHiWQUQ8yyAinmUQEc8yiIhnGUTEswwi4lkGEfEsg4h4lkFEPMsgIp5lEBHPMoiIZxlExLMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHiWQUQ8yyAinmUQEc8yiIhnGUTEswwi4lkGEfEsg4h4lkFEPMsgIp5lEBHPMoiIZxlExLMMIuJZBhHxLIOIeJZBRDzLICKeZRARzzKIiGcZRMSzDCLiWQYR8SyDiHjWfwNu/eoxBL4OFgAAAABJRU5ErkJggg==",deepLink:"atomex://",downloadLink:"https://atomex.me/"}],ti=[{key:"kukai_web",name:"Kukai Wallet",shortName:"Kukai",color:"",logo:"data:image/png;base64,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",links:{mainnet:"https://wallet.kukai.app",ghostnet:"https://ghostnet.kukai.app",mondaynet:"https://dailynet.kukai.app",delphinet:"https://testnet.kukai.app",edonet:"https://edonet.kukai.app",florencenet:"https://florencenet.kukai.app",granadanet:"https://granadanet.kukai.app",hangzhounet:"https://hangzhounet.kukai.app",ithacanet:"https://ithacanet.kukai.app",jakartanet:"https://jakartanet.kukai.app",kathmandunet:"https://kathmandunet.kukai.app",limanet:"https://limanet.kukai.app",mumbainet:"https://mumbainet.kukai.app",nairobinet:"https://nairobinet.kukai.app"}}],ni=[{key:"airgap_ios",name:"AirGap Wallet",shortName:"AirGap",color:"rgb(4, 235, 204)",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAqoElEQVR4Ae3BB5xdZ2Hg7f/7nnPvnVun9yaNZjTqki1LMsbdYGOwccIXwP6AxPDBEkJJsCH0QGiGJEtCPlgWCIGYpQYICcUY44K7LMlWLyONpOm93Tu3n3PeDbu/XZLggI3PzDn33vd5hPpXaJpWkSSaplUsiaZpFUuiaVrFkmiaVrEkmqZVLImmaRVLomlaxZJomlaxJJqmVSyJpmkVS6JpWsWSaJpWsSSaplUsiaZpFUuiaVrFkmiaVrEkmqZVLImmaRXLRCsbs/ksfzN4lOFsmres3cTuuibccGBhhvef2I9E8M6+rVzZ2I5WHky0kldwbL5w7gQfGTjEbLHAL/xkeozTL/g9qgMhngtbKV771EMcW17iF+6eneDlLV18bPMueqIJtNJmopUsRynunhrhPcf3c2R5iX9rrlhgMpuhOhDiucjZFiPZNP+HAr49OcyPZ8a5rWcTt/VuJR4IopUmE60knUwu8M5j+/jJzBgOK03xHy3bFh8+fZg7Rwf5xMadvKy9B0MItNJiopWU+UKOj506yOeGTpF3HLx2Ppvm5icf5IrzJ/mrzbu5sLYRrXSYaCUh79h8+fwpPjhwkNlCHr/5+fw0lzz8I27t7OVDGy6kpSqC5n8mmq8pFD+bGuNdx/dxKLWInxWV4ovDp/mniWHe37eN/7J2IyHDQPMvE823TiQXeO/x/fxgehRF6Zgt5vmT4/v4u+EBPrnpIq5r6UKg+ZGJ5jsT2TQfGzjIl4bPUFAOpero8hIveeJermto5eObLmJHTQOav5hovlGwbb4+NMBtJw+wZBUpF3fPTnDfQz/i9zt6+ED/DjojcTR/MNE85yjF6YUZjs1O8YOpYZasIuWmqBy+NHKGb0+c561rNvKOvq1UB0Jo3jLRPKOUYii5wKGZCZYLeSpByrL4+Jkj/N3wAO/u3cYb1m4gYpho3jDRVp1CMZZa4vDMBAu5LJVoupDntuP7+My543xg/Q5u6VxHQBpoq8tEWzUKmEqnODQ9zmw2jQZns2lee+gRPnX2GH+2fgc3tXVjCIm2Oky0VTGTWebg9DjTmWW0X3UktcjLDzzAnjP1/Fn/Dq5r6UKgrTQTbUVNZ5Y5OjPBRDpFKTKFICQNsG1Ww96lOW544l4urW3kfet3cE1TO1IItJVhorlOATOZZY7OTDCZTqEoXQFpUBesYqZYYLUo4KGFGV689x6eX9vIB/p3cFVjO1IINHeZaK6aSqc4NjvFZDqJovRJIdhd08CpdJLV5gAPLcxw3eP3cFltE+9fv51rmjvQ3GOiPWcKxfhykuOzU0xnlik3r2xfy1fHzuIVBTy4MM21e+/h+TUNvLtvG9e1dGEIgfbcmGi/NUcpRlKLHJ+dYj6XoVxd19zJzkQtB5ILeO2RxVleuu8+tidqeXfvNm5q6yYoDbTfjkR71izH4fTCDD8aPMHDo+eYz2UoZ1IIPrPtEiLSwA8UcDC5wM1P/pwL7/8+Xzh3goxloT17Eu0Zy1lFjsxM8M9njvHExAjJQo5KsbuuiS9sv4SQlPjJiXSSNx15nPX3foc7Tj3FdD6L9syZaL/RQi7LwPwM55PzWI5Dpbqls5f6YIg3HHqE0VwWP5nIZ3n/qYN88sxRXt3Rw5vWbmRzog7t1zPRnpajFOPLS5yan2Eqs4xSCg2ube7k4JW/wx0Dh/jc+VNkHBs/SdkWnxsa4O+GT/PChlbevHYjL2jqwJQS7VeZaP9O1ioyuDjH4MIcy8U82q+qDVbxF1v28IY1/bz/+AG+MzmM3xSV4scz4/x4ZpwN0Tiv61rPazp7aaqKoP2SiYatFJPpJIMLc4wtL+Eohfab9cVq+Nbua3h4doL3Ht/PI4uz+NHJdIo/PXGAPzv1FDc1d/K67vVc0dBKQBpUOpMKpYClfJZzi/OcTy6QKRbQfjuXNrRy32Uv4Z/GzvPBk09yKpPCj3KOw7cmhvj2xBBrwzFe1dHD/9uxjr54NQJBJTKpMFmryFBygfNL88xnMyg0N5hC8vKOHm5o7eLvzp/iE6cPM1nI4UcKOJtd5iOnD3PHmSPsqWnglvYeXtG+lvpQmEpiUgHytsVYaonzyQUm0ymUUmgrI2yYvHXdZv6gq4+/HTzKX589zqJVxK8spXhkYYZHFma4/dg+XtjYys3tPby4pZPqQIhyZ1Km8rbFxHKSoeQik+kkluOgrZ5EIMj7N1zI69ds4C9PH+aLwwOkbRs/yyuHH06P8cPpMeKGybWNbdzS3sM1Te0kAkHKkUkZKdg248tLDCcXmUgnsRyHUiKAkGFSTlqqIvzXrRfztp7NfHzgIP9j7Cw5x8HvUrbFdyeH+e7kMHVmkGsaW3lZazcvau4kEQhSLkxKXNYqMr6cZCS5yGQ6ha0cSlF7rJotjS2cPOfA7Djlpjsa5/MXXMY7erfykYFDfGv8HJZSlIJ5q8A/TgzxjxNDxAyTaxpa+N3Wbq5v7qQhFKaUmZQYBaQKOcZSSUZTi8xm0zhKUYoEgtZYgq2NLTSEo1SCvngNd+68gvf2beNDp57i+5MjFJVDqVi2Lf55apR/nhqlSkouqW3kpS3dvKS5g7XRBEIISolJCbCVYj6bZmw5yVhqkaVCHqUUpUogaI0l2NrYQkM4SiXakKjlm7uu5vDSHHcMHOJ7k8NYSlFKco7DfXNT3Dc3xTuP72NjrJobmzt5SUsnF9Q0EJQGfmfiUzmryEQ6xfhyksl0ipxVpNQJoD1ew+aGZhrCUTTYVl3PN3ZdzbHkPJ88fZhvjZ/HUopSU1SKw6lFDqcW+diZI7SFwlzT0MKLmjp5QVMbDaEwfmTiE7ZSzGczTKSTjKWWWMhlUSjKgRSCzngNmxtaqK0Ko/2qzYk67tx5Je9fv8hfnTnCN8bOkXFsStV4PstXx87x1bFzBIRgZ3U91zd18MKmNi6oaSAoDfzAxCdOzU3x1PQ45cSUkjXVdWysayIRqkL7zdbHa/jCBZfxvvXb+ZvBY3x59Awpy6KUFZXi8cVZHl+c5UMDB/n05l28ed0W/MDEJzKWRbkIGga9NQ301zURCQTQnr3uaIK/3vY83rV+O58/d4LPnT/FTDFPqVPAaD6LX5j4RMG2KHWxQJD+uibW1dYTkAbac9dSFeGDG3dye982/mFogM+cO8FAJkUpm8nn8AsTn8jbFqVIAA3hKP31TXTGa5BCoLkvZgZ487rNvGHtBn44Mcz/f+44Dy/M4ChFqZnP5/ALE5/I2xalxBCSzkQN/XWN1IejCLTVEJQGL2tfy++2rWH/wgyfPXeC700OkbZtSsV4IYdfmPhE3rIoBdFAkN7aBnpq6omYATRvCCHYVdfEV+qa+EQuw1eGB/jS0ABns2n8biGfxS9MfCJvW/iVIQStsQS9tQ20RhNIIdD8o6UqwrvX7+Advdu4d3qMLw6d4q6ZcXKOjR9NF/L4hYkP2I6DpRR+IoBEqIqe6nrWVNcSCQTR/M2UkutaOrmupZOx7DLfHD3LnSNnOL68hIN/ZByb5WKBWCCI10x8oODYoBR+EDJMuhK19FTXUR+JItBKUXs4xu1923h771aeWJjm6yODfGv8HLPFAl5zgFSxQCwQxGsmPlCwbRTeCUhJayzB2uo62mLVSCHQyoMUgovrmrm4rpm/2rqHu6dG+cboID+eHiNlW3jBUYqpYp5WYnjNxAcKts1qM4SkORqjO1FLe7yakGGilbegNLixtZsbW7tZKOT50eQw3x4/x/1zk2Rsm9W0WMjjByY+UHRsVoMUgqZIjO5ELe3xasJmAK0y1QZDvLqrj1d39TGdy/DjqRH+cfw8D8xNknMcVlqymMcPTHygYFusFEMImqNxOuM1dMRrqDJNKoWjFNpv1lQV4dbufm7t7mc2n+WHk8P808QQ981OknFsVsJ0sYAfmPhAwbFxU8AwaInE6UzU0BZLEDJMSkXIMHDLZCHLRrRnoyEU5tbufm7t7mehkOMnU6P8y+QwP5udYL5YwC2LhTx+YOIDRdvGLTua2lhf10hAGpSiqBnELU8tzXNVYzvab6c2WMUtnb3c0tnLslXk68OnedPRvbghVSzgBxIfKDo2bmmKxAhIg1LVVRXGLf88MYRCc0PMDHBFYytumSsW8AOJDxRtB7cEDINS1h2J45bHFmd5dHYSzR2xQBC3LFgF/EDiA0XHxi0BaVDKNsRrMIXADbZSvP3oXnK2jfbcxaRJVBq4YblYwA8kPlB0bNwghcCUklIWNQNsilXjlgPJed588GEsx0F7boJSEjIM3LBcLOIHEh8oOg5ukEIghaDUXV7fgpu+MnaWV+67l9l8Fu23F5AGIWnghmmrgB9IfMBybNxgCIlEUOqub+rAbd+fGmX7/d/nr08fZiqXQXv2TCmJGCZuyFoWjlJ4zcQHio6DG6QQSCEodZc3tNIUDDFdyOOmyUKOd5w4wAdOHWRTrJquaBxDCH6TrFXE4elVGSatwRDNVRH6InE2JmpZH6uhyjAoR/WBAIM8dzm7iK0UUgi8ZOIxpRS24+AGQ0qEEJS6iGny8tY1fHboFCsh69gcSM5zIDnPSqg2TXbVNHBdYzs3tnTRF6+hXESNAG7I2DaOUnjNxGMKsJWDGwJSUi7esKafzw8PYClFqVmyLH42O8nPZid598kn2V1dx+u61vOKjnXEzAClLGIGcMOSbVFUDiEMvCTxmEJhOQ5uMKWkXGyprufFje2UOlspHluc4w2HH2Pjvd/lE6cOkioWKFXxQAC3ZKwiXpN4TCmwlcINpjAoFwL40IYLMIWgXIzns7zv1FNsvu97fHVoAEcpSk2dEcAtGauI1yQec5RCKYUbTCkpJ9trGri1Yx3lZiyf5dZDj/CiR3/C2XSSUhIxTdySsS28JvGYrRzcYkhJufnopotoDYUpR/fOTbLnwR/w3bGzlIqIGcAtC5aF1yQesxwbt5hCUG4aQ2E+t/ViDCEoR/PFArc8+SAfOnEAWyn8LmwEcMuyXcRrEo9ZjoNbTGlQjm5sW8M71m6iXNlK8ZHTh3njUw9RdBz8LGGauCVvW3hN4jFHKdxiSEm5+vNNF/E7zR2Usy+PDvJfnnoQy3Hwq7hh4JasZeE1iccsx8EthhCUq4CU3LnzSi6rbaKc3Tl2jrcdfhRHKfwobJi4JWNbeE3iMUs5uMWUknIWNQP8y8Uv5Or6FsrZ54dP86nTh/GjsBHALSnbxmsSjzlK4RZDSMpdIhDkXy5+Ibe291DO3n/qIPdMjeA3IcPALRnHxmsSj1mOg1ukEFSCsGHyxQsv51ObLiIsDcpRUTm8/uAjzOSz+ElQGrglaxXxmsRjSincYkpJpZBC8Me9W3n40hezM1FHORrNZ3nn0SdQ+Ee9GcAtBcfGaxKPWcrBLUIIKs2OmgYeveJGPrNlNy3BKsrN18bO8sD0GH4RkhK3FB0Hr0k8ppTCLaaQVCJTSN7Us5nj17yMv9i4kzXhKOXCAd5zYj+W4+AHASlxS9oq4jUTj1mOwjWCilYdCHF73zbe0rOZe6ZH+droWe6ZGWPBKlLK9i/N86PJIW5qW4vXwmYAtzgovGbiOYVbAtJAg5BhcENrNze0dpO3bfYtTPPYwjRPLc1zanmJqVyW+WKBvHJ4pqoNA4ng38orh4zjsNIU8MnTR3hp6xqEEHhJInDLnGXhNROPWY6DtnJChsGlDa1c2tDKLyjAchws5VB0HHK2RcQMIITg1zER/EcKxVw+x6GleX4yM8p3x4eYLORYCfuW5nliYZo9dc14KWIGcItSCq+ZeEzhHkNItF9PAAEpCSAJG5AIBHku2iMx2iMxXtzaxcc37eKL50/y0YFDLFpF3OSguHP4DHvqmvGUwDUZ28JrEo85SuEWKdA8FDMDvL13K/uveCkX19Tjtu9MDlFwbLxkIKg2TMqFxGOOctDKy9pogp9ecj0vbGjFTbOFPE/MT+M1Q+CKnGXhNUkZMaWB5g9RM8C3d13NlngNbrpnZhwvCcAUEjfYysFrEo8p3CPQ/CQRCPKVCy4jKCVueWx+Gi8JIQhKg3Ih8Zjl2Gjl64KaBl7f2YtbjqYWyds25SBtW3hNomkr7K09mzGFwA3ThRyzhRxeMoTAHQqvScqIKQ00/+mL17Cruh43KGA4k8IrEggaBuVComkrTABXNLTilol8Fs0dEk1bBVviNbhluVigHCxYFl6TaNoqqA+GcEvatigHllJ4TaJpq8BRCrdIBJo7JJq2CibzWdwSMUw8IwSmkJQLiaatgsPJBdwSD4bwigAC0qBcSDRthdlKcd/MOG7pDIXR3CHRtBV2YGGao8tLuMEQgs5IHM0dEk1bQQrFHacPo3BHayhMbTCEVxSKgmNRLiSatoJ+MD7Ej6bHcMuORC0BKfGMAlspyoWkjDjKQfOPgdQibzz8KLZSuOXy+hY095iUEUcpNH84lVrkpr0/Y7qQx00vaGyjXDSYAbxm4jFTGmjlQ6H4wcQQf3joMaYKOdzUG4mxtbqeciEEnjPxmEArF4cXZ/nowEG+NzmCwn2/17YGKQReUoCjFOXCpIwUHYdKoJQibRVJW0VSjo1X8rbFcGaZfYuz3DU1yr6lORQrIygkr+taj9cUkLdt3CAQeM3EY6Y0cI+i3FiOw5n0Eo/MTXFgcZYjqUXOZVKkLIuC41BQDpXg+qZ21sWqKScRw8RrJmXEUYpy4CjFgYUZvjl2lh9OjTCYWUZRuQwheGfvFvxAoSg6DuXCxGOGELjFVopSlrUtvj06yN+ePc6h1CIK7Rde2tzBxfUt+IFSUFQ2bggZBl4z8ZgUErc4SlGKio7D10dO8+GBQ5zPptF+KWoY3LHxIgT+oICCo3CDKQ28ZuIxUwrcYjsOpWb/wjRvO/w4e5fm0H7Ve3q30hevwS8cFMuOjRuC0sBrJh6TQuAWSzmUiqLj8PFTT/GJM0cpKAftV11S08A7+rbjJwXbxi0BKfGaicdMaeAWRylKwVQuw6v2P8D981NoT68xGOIfLryCgJT4SdGxcUu9aeI1E48ZQuAW23Hwu2PJeX73iXsZzCyjPb0qKbnzgsvpiSXwm4xl4ZagNPCaiccMIXFL0XHwsycXZnjJ3nuYLuTRnp4E/vvW53Ftcwd+lHMs3BKSBl4z8ZgpJW6xHBu/OrI0x4se/ylzxQLa0zOF4LNb9vCa7vX4VcqycEvUDOA1E48FpIFbLMfBj4YzKW7Y+zPmigW0p1clDT639WJ+v3s9frZkW7ilyjTxmonHTClxi+U4+E3aKvLKffczmsugPb2mYIj/ceEVXNPUjt9lrSJuqTECeM3EY6Y0cEvRsfGbdx7dyxNLc2hP79LaRv7hwitYE41TCtJWEbckTBOvmXgsYEjcUnRs/OQHE+f54vAZtF8VN0ze07eV23q3EZCSUrFYLOCWqBnAayYek0JgCIGtFM9V0bbxi2SxwB8f2YuDQvslUwh+p7mTj226iN5YNaVmzirilqgZxGsmHhMITGlg2xbPVcGx8Yu/GDjEUC6D9r8ZwE3NnbyrbxsX1TVRqpaLBdxSHwjiNROPCSEISIO8bfFcFWwbPxjOpPjs+ZNo0BOO8vK2tbyuez29sWpKXbKYxy01gSBeM/GYAAKGhCLPmeU42MrBEBIv/e3gMZK2RaWRQLUZZHuihisbWrm2qYMLa+oJSINyMVHI45ZEIIjXTHwgaJi4wVYOtqMwDDyzUMjz5ZEzrLTGQJCd1fW0R2JEzABeEEBTIEhtMERXOMa6aILuSIwqw6RcJQt53BASkqgZwGsmPhAyDNxgOQ6W4xA0DLzyzdFBFq0iKyEiDV7d0cNru/q4qLYJKQTa6por5HBDTSCAKSReM/GBkGHilrxtEQkE8IICvjY6iNsEcENTO5/acjE9sQSaN2ylmC4WcEMiEMQQAq+Z+EDIMHFLzi4CYbwwmkmxd3EWNxlC8NH+C7i9byuGkGjeydkWGauIGxoCIaQQeM3EB6pME7fkLAuv3D01ioN7BPDpzbt4U89mNO8tW0WStoUbmkNh/EDiA1VmALdkrSJeeWBuEjf9UXc/b+rZjOYPc/kctlK4oSFUhR9IfKDKMHFL1iriBVsp9i3O4pbeSJyPb96F5h9juQxuaQuF8QOJD1SZAdySLRbxwlIxz0g2g1s+sH47MTOA5h+j2TRuaaqK4AcSHwibJkII3LBcLOCFkXSKvHJwQ3Owipe1r0Xzl8FMCrd0VUXwA4kPBA0TUwjcsFzIo1h953IZ3PKipjYihonmL4PpJG5pqYrgBxKfiASCuKHo2OSsIqttIZ/FLbtrG9H850RqETcYQtAdjuIHEp+IB0O4wVGKZD7HasvaFm7picTR/CVtFRnMpnFDwjCpD4XxA4lPxIMh3LKQy1LKgtJA85eB5SWytoUb1kUTCCHwA4lPJIJVuGUul6GUFR0HzV/2L8ygcMfmeA1+IfGJ6lAVbpnLplltVYaJW85lltH85bGFGdyyOV6DX0h8IhGqwhASN6QKebJWkdVUF6rCLU8sTKP5hwIenJvELTuq6/ALiU+EDJNoIIhbptLLrKbuqihuuWdmnLxto/nDUDrJuWwaN4SkZHOiDr+Q+EhdOIJbJtNJVlNXNE5QSNwwms/yw8khNH+4d2Yct3RXRWkOhfELiY80hKO4ZTKdwlGK1VITCNEdjuCWjwwcImdbaN67a3oUt+ypbUQIgV9IfKQxEsUt6WKBpXyO1WIIwe6aRtxyJLXIJwYOoXlr2SrywNwUbrmkrhk/kfhIdaiKkGHiltHUIqvpioYW3HTHmSN8Z+wsmncemp1goVjALZfXN+MnEh8xhKQxEsUtI6lFVtN1TR1I3GMpxWueeoivDZ9GoXnh2+PncMuacJTeWDV+IvGZlmgCtyzmcizmsqyW9kiM59U24qaC4/DaQ4/wRwcfZjafQ1s9y1aBH02N4par6lswpcRPJD7TGovjFoXifHKB1SKA13Ssw222Unxh+DRb7/8eHz7xJOeWkzhKoa2sn0yOMlcs4JZrm9rxGxOfSQSriAdDpAp53HB+aZ7tja0IIVgNr+jo4b0nn2S+WMBt04U8f376EB89fZi+aJxtiTo6qsIYQvBcRAyTsBmgvSpCdyTGhlg19aEwle7LI6dxS0hIrmvqwG9MfKgjXs2JuWnckC4WmEinaIslWA3VgRBv6Orjk4PHWCk2ipPpJCfTSVaCIQRrwlGuqG/h+qZ2rmlqpzoQopIMpVPcOzuBWy6ta6I6GMJvTHyoI17Diblp3HJ6YYa2WILV8taezXxhaIAFq0gpspViMLPMYOYMfz9yhmozwE0tnbyxewO765qQQlDuvjR0iqJSuOVlrd34kcSHGsJRooEgbhlfTrJcyLNaWsNR/rhnE+ViySpy5+hZLn3kx1z76F08ODtOOcvaFn8/chq3BKXkxtYu/EjiQ1IIOuM1uMVRioGFWVbT7b1bWR+JU04UcP/cFFc9ejeveOJehtIpytG3RgeZyOdwy+W1TbSHY/iRxKe6q2tx09nFOQq2xWqJmAE+t/15mEJQjr47OczOB/+FrwydQilFubAch0+fPY6bXtWxDr+S+FR9VYTqUBVuydsWZxbnWE1XNrZz29pNlKuFYoHXH3qUNx58mIxlUQ7umhrmSGoRt1SbAW5s7cavJD4lhGBtdT1uOjk3TdGxWU0f2rSTq+qbKVcK+NLIGV782E+Yy+coZY5S3DFwGIV7fqeli9pgCL+S+FhPTR1SCNyStYqcXphlNYWkwTcuuor+aIJy9tDCDC945C4mcxlK1Y8nh3liaQ43vaF7PX4m8bGwGaAjXo2bTsxNU3RsVlNjKMwP97yQrqoI5ezw8iI3PX4Pi4U8pcZWDh8+dRCFe3bEa9lT14yfSXyur7YRN+WsIifnplltPbEEP73kRawJRyln+5PzvPrAAxQdm1LyndGzHEjO46Y/XNOPFAI/k/hcczROTVUYN52YmyZjFVltfbFqHnj+i7koUUc5u2tmnD87foBSkbaKfODUU7ipMRDils5e/E7icwLYUNeEm4qOzZHpCbzQGYlxz/Ov5+bWbgTl61PnjnPP1Cil4LNnjzGYWcZNr+/uI2YG8DtJCehO1BIJBHDT2aU55rJpvJAIBPnqRVfx2a17iBsm5chSijcfeYy0VcTPRjLLfPLMUdwUM0zetHYjpUBSAkwp6a9rwk2OUuybHEWh8IIUgjeu3cRTV97EjU3tlKPBzDJ/efowfvauY0+waBVx06vae2gPxygFkhLRW9NAyDBx01w2zemFWby0Nprgn/a8kB/uvobd1fUIysvfnD3OWDaNH909Ocy3J4ZwU5U0eEffVkqFpEQEDYMN9U247dD0OOliAS8JIbi+pYuHL7+BH+y+hmvqWzCFoBykbItPDx7Fb1LFAm89uheFu17d0UNPNEGpMCkh/XWNnJybJm9buKVg2+yfHOHyznUIvGUIyfUtXVzf0sXp1CLfGjvH9yeHOJxcwKZ0fXnkDO/t30FNIIRfvO/4fgYzy7gpJCXv6dtGKTE+9K8oEYaQIGAyncJNyUKeaCBIXVUEv6gPVXF5Qytv6O7n9d19XFRdT0c4StQwsPlXSlFQDqUg69j0ReJcUNOAH9w7PcZtx/fh4K43d/dzc2cvpcSkxKyvbWRgfoZ0sYCbnpwapTkSIxYM4SdCCNrCMW7u7OXmzl5+wVaKrFVk2bbIWBbPha0c5gs5nkrO88PJEX42O0lRObjt62ODvG5NP15bKOR546FHsJTCTTVmgD/t20apMSkxppRsa2zlsfEh3FSwbR4bH+Ka7j6kEPiZIQSxQJBYIIhb9tS38IdrN3FkaY7bju7lvrkp3PTI/DSLhRw1wSq8olC87fCjnMumcdvbezbTGo5SaiQlaE11HfXhCG6bzixzZGaCSra1up6fXPIibl+7ETcVlOL+2Qm89JXzp/j6+HnctjYc5e29WyhFkhIkheDC5g4E7js+N8X4cpJKZgjJJ7bs4Y1dfbjp0flpvHJocZbbju1jJdyxcSdRM0ApkpSopkiM7uo63OYoxWPj50kXC1QyKQR/uWUPG6Jx3HJ4aR4vLBbyvPrAz0naFm67pr6Z/6e9h1IlKWEXNLUTNAzclrMsHhw5i+04VLKoGeB9fdtxy6l0Els5rCZbOfx/Tz3I8XQSt1VJg09tvRgpBKVKUsIigQDbG9tYCfO5DHsnhlEoKtlNbWuoDwRxw3whT9a2WS0K+PCJJ/n+1Cgr4faeTWxJ1FHKJCWut7aBxkiUlXBuaZ6jM5NUsqgZ4KLqetyQdmyWrSKr5RvDp7lj8CgrYVM0wbvWb6fUSUqcFII9rV0YQrISjsxMcm5pnkq2LhrHLVnLYjU8ODPOG488hq0UbjOE4L9tv4SoGaDUScpAdSjMtsZWVoJC8fj4EJPpFJWqJhDELUXHZqUdT87z8v33k7FtVsJb12zgsoZWyoGkTGyob6IxEmUlOErx0OhZ5rIZNH87n05x496fMVsssBI2xRJ8eONOyoWkTEghuLi1m4A0WAkF2+bnI4Ms5XNUmrRlUQqmcxlu2nsP57NpVkKVlHxpx2VEzQDlQlJGEqEqdrZ0sFKyVpF7h06TKuTR/GU2n+Ulj/+Uo8tLrJQPrt/O7romyomkzPTU1LOmuo6VkrWK3Dt0mlQhj+YPM/ksL37sbp5MLrBSrmto5bbebZQbSZkRwO7WTuLBECslXSxw79BplvI5NG/N5LPc8NhPOZBcYKW0hcL8/YWXY0pJuZGUoYA0uKyjB1NKVkq6WODeodMs5DJoz1zIMHDLeDbNix79CfuT86yUkJR89cLLaamKUI4kZaq2Kszuli4EKydrFbl36AzTmWW0Z8aUEjcMLi9x1SN3cTC1yEoRwMf6L+DKxjbKlaSMra2po7+uiZWUty3uHz7DcHIRbXU8uTDD1Y/exZlMipV0S9ta3ta7lXImKXMXNLfTGk2wkizH4ZGxc5ycm0ZbWXdNDvOCx+5mNJdlJe2qruPzO56PIQTlTFLmpBBc2rGW6lAVK8lRigNTo+ybGMFWCs1dCsVnBo/xsn33sWQVWUldVRG+s+saImaAciepAEHD4IrOdYTNACttYGGGB4bPkLOKaO7I2hZvPfQof3LsCQpKsZKqzQDf2XU1HZEYlUBSIeLBEJd39mBKyUqbTKe4+9wAc9k02nMzkU1z/aN387mhARQrKyAEd15wGTtrG6kUkgrSEI5yacdapBCstOVinnvODzCwMINC+23cNz3Grgd/wEML06w0A8F/3/o8bmjtppJIKkx7rJo9rV0IIVhptlLsmxjh4dFz5G0L7ZkpODYfOfkkL9n7MybyWVaaAD6yYQe3rumn0phUoJ6aeoqOw4HJERQrbzi5wFw2zcVt3bRE42j/ufPpJK976iF+Pj/NahDAn67bzJ+u304lMqlQ/XWNOMrhyakxVkO6WOC+4TP01zayvakNU0q0X3KU4s6hAW4/vo9Fq8hqeUt3Px/dtAuBoBKZVLCN9c38wlNTYyhWnlKKk/PTjC0vsbu1i5ZoHA2G0inecvhR7poZR7E6BPDm7vV8atvzkEJQqUwq3Mb6ZhRwcGoMxepIFfLcN3yGnuo6djS1U2WaVKKCY/OFcyf44KmDLFpFVosA3tzdz6e2XYwUgkpmorGpvhlDCA5MjqJYHUopBhfnGEstsa2pjd6aeoQQVIpH5yZ5+5G97E/Os9r+ZO1GPrllD4YQVDoT7X/pr2vClAZPTAzjKMVqydkWT0wMc3phhgua22mNJihn59Mp3nNsP98cP4+NYjUJ4H29W/nQposQaL9gov1f62rqCUqDR8fPYzkOq2khl+X+oTO0xhJsb2qjripCOXrBYz+loBxWW0AI7thwIX/Stw2B9n+YaP9OZ6KGq8xeHhw5S962WE0KGF9OMpFO0RmvYUtDC7VVYcpJQTmstpCUfHHbJbyqqw/t3zPRfkVTJMa1a9bzwMggqUKe1aaUYji5wEhygY54DZvqm2mIRNGevbpAkG/tvJKrm9rRfpWJ9rQSoSquXbOeh0bPMZ1ZxgsKGEktMppapDESo7+ukfZ4DYYQaL/Z+kicf9x1NVuq69Cenon2n6oyA1zd1cu+yREGF+fwigKmM8tMZ5aJBoKsq6mnp6aeaCCI9vSuqmvmaxddSXNVBO0/Z6L9WoaUXNzWTW1VmCenxnCUwkvpYoHDMxMcnZ2kORJnbU0dnfEaTCnRQAB/1L2ev9p6MUFpoP16Jtoz0l/XRG1VhEfGzpMpFvCaoxQT6SQT6SRhM8C2pjbW1dQjqFwxw+TTm3fzB2v6EWjPhER7xpoiMV60tp/WWAI/yVpF9o4P8fj4EI5SVKL+aIIHnn89t67pR6A9UybasxI2A1zVuY5jc1McmZnAUQq/OLs4hwAubuumUgjg5rY1fHb7JVQHQmjPjon2rAkh2NLQQks0zqNj50kV8vjF4OIczdE4a6vrKHc1ZoC/3ryb13T3IRBoz56J9ltrCEe5vmcDT06NMbg4h1IKPzg0PU53ohYpBOXqsromvrTjUtbFqtF+eybacxKQBntau+iM1/DExDDpYgGvpYsFJpaTtMerKTdRw+DP1+/gLeu2EJAS7bkx0VzRFkvwknUbOTg1zunFWZRSeGkinaQ9Xk05uaqumf+2/RLWx2vQ3GGiuSYgDXa1drKmupb9k6PM5zJ4JZnPUy6agiE+uuFCbu3uxxACzT0mmusaIzGuW9vP6YUZDs9MULBtVlvBsSh1phC8tmMdH964k6aqCJr7TLQVIYWgv66JrkQth2cmOLs4h6MUq0UpStpltU385eZd7KprQls5JtqKCpsB9rR20V/XyMGpccaXl1Bo/5n+aIKPbbiAm9rWIoVAW1km2qqoCYW5smsdU+kUh2cmmM4so/3SmqoI7+rbxu939VFlmGirw0RbVc3ROC+IxplcTnJkZoKZbJpK1hEKc/u6zbxuzQZiZgBtdZloq04ArbEErbEEU5kUx2enmFhOoVBUivXROG/v2cwfdPURMkw0b5honmqOxGnuirOQy3Jyfprh5AKW41CODCF4Xk0Df9yziRtauwlKA81bJpov1FaFeV5bNzua2ji7OMfg4hypQp5yEDdMfq+tmz9cs4GdNY0IIdD8wUTzlbAZYHNDC5vqm5nMpBhcmGNseQnLcSglAthdXc/vd/XyyvZ11AZDaP5jovmSEILWaILWaIKCbTOSWuT80jzTmWUcpfCr9ZE4r2hfwyvb17ExXoMQAs2/TDTfCxoG62rqWVdTT7pYYCS5yPnkPPPZLAqF11pDVbyspZubO3rYXduEKSVaaTDRSko0EGRDfRMb6ptYyucYSi4wtDRPspDn34oGgrilOhDkP0oYJje2dHJLew9XN7YTMgy00mOilazqUBXbGlvZ2tjKfDbNuaUFJtNJqgyTC5vbccubezbxyMI057JpNkUT3Nzew0tbu4maAbTSZqKVPAHUh6PUh6OshIZQmJ9ecj1a+ZFomlaxJJqmVSyJpmkVS6JpWsWSaJpWsSSaplUsiaZpFUuiaVrFkmiaVrEkmqZVLImmaRVLomlaxZJomlaxJJqmVSyJpmkVS6JpWsWSaJpWsSSaplWs/wlpu7pUloCWhgAAAABJRU5ErkJggg==",universalLink:"https://wallet.airgap.it",deepLink:"airgap-wallet://"},{key:"naan_ios",name:"naan - your portal to web3 ",shortName:"naan",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAFa0lEQVR4Ae3BQWjeBwHG4V/e/E2ydV3jFlinCcsgh1EEcxjYy1hheFIQRA8DDzvPy7yIB3WXeRAPneAO4mEehCF42M0iHhwoiHRQsHRFahNbEWmZ7WJrkrVJvI6PFLp9aZbw/p5nAthBUqUgqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCp1kCJ1xcWWJya5qBb/XCTV65eZdT3jh/n5JFHGNfv19b42fVr7ObrT5/myGcep917N3/H2Wu/osFAieePPsryQw9x0J1bX2c3J488wtdmZxnXja0tuM6ulo49z+z0Au3+s3mFFkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0B3ZeLGxu8ePkyo04vLHDq6FGkw2hA92VjZ4dz6/9j1AdbW0iHVZBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoNSPvs6q13+e+da4zjmdkvk4kBjWdA2mfv/OunXLjxW8bxw2f/zszko2g8QVKtIKlWkFQrSKo1IO2zrzz1I16Y/y4f9eHWbX5+4auMeu7Jl1me+yajpvIwGt+AtM8+O70ALPBRG1sfsJtjU5/jyYe/gB6MIKlWkFQrSKoVJNUKkmoFSbUGdKDMTk7y0uNzjHpqegpprw3oQFmcmuLNxUWk/RAk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUaKHH29m1u3r3LJ3Vpc5PdnF9f59jkJIfFxY117uXKrbPc2LzCp2Fz+za7eX9jhZW1P7Gf3t9YocUEsIOkSkFSrSCpVpBUK0iqFSTVGijxC15giVnanWGVH/Muu3nrBzMcf2yCg+7cpW2+88Ymo05/e5rlpTCu37xzlzfevkODgRLP8gTLzNFulTXu5eSJSRafmOCwWl4Kp744ybjOXdqmRZBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVGtA2iN/vrDNi69tMOqt789w8kTQwTMg7ZGNOzus/nubURt3dtDBFCTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFoD2lNn+AcXucE4vsUzzDGD9KANaE/9mr/xS95jHKeYZ44ZpActSKoVJNUKkmoFSbUGtKd+wnO8yklGPc2bjHqJE7zKlxg1zxGk/TCgPTXHDHPMcD9mmWaRo0ifliCpVpBUK0iqFSTVCpJqBUm1BqRDZn5ugle+McWo+bkJ9PEMSIfM0ufD6Zen0PiCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaAyX+wD9ZZY2D5BI3eZvL7KdzXOdezvzlLscfC5/U+ZUtdvPHv25x8xaHxvmVbVpMADtIqhQk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTVCpJqBUm1gqRaQVKtIKlWkFQrSKoVJNUKkmoFSbWCpFpBUq0gqVaQVCtIqhUk1QqSagVJtYKkWkFSrSCpVpBUK0iqFSTV+j8sK7GEReHhkAAAAABJRU5ErkJggg==",universalLink:"https://www.naan.app/",deepLink:"naan://"},{key:"altme_wallet",name:"Altme Wallet",shortName:"Altme",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAA0IElEQVR4AezBWZOl930Y5uf3f9+z9Ol1enqmp9fZMYOVxCaSEkhKohnZsZxU5LLLuUmuU5WbfANf5xPkJhepuFK+cMVW4jiOZUXWForUapIiCS4CSIAEMAPM3vs57y9Tp1kDU6QozN6Dfp8n/olMrVbrUCpardahVbRarUOraLVah1bRarUOraLVah1aRavVOrSKVqt1aBWtVuvQKlqt1qFVtFqtQ6totVqHVtFqtQ6totVqHVpFq9U6tIpWq3VoFa1W69AqWq3WoVW0Wq1Dq2i1WodW0Wq1Dq2i1WodWkWr1Tq0ilardWgVrVbr0CpardahVbRarUOraLVah1bRarUOraLVah1aRavVOrSKVqt1aBWtVuvQKlqt1qFVtFqtQ6totVqHVtFqtQ6totVqHVpFq9U6tIpWq3VoFa1W69AqWq3WoVVrHR7hJ6UPhZ+UWodArfXxEz6UpB9Lf7P0U8KPBVLrY6jW+ngJMo1FIbpUfaJLVAgEEe5ItyUSSY7IPZotcpdMY+G2QGp9TNRaT75A2lcoXaJGRRSaiqzIiiZoChmkfYFISlIaitsaygR6JHKP3MNI62Ok1nqyBYJEJFFTL1BNIdjbYvtdtrfYCXawg100YaxOuuiii17Sx8QS3XlKYXiV4XVGNwm3BQKN1hOs1npyhTuqAdU0WbN1hVtX2UOnYWaX+RNMnqG/QGeWeoJSIWh2GW6ye52t99l4j823uXaFnZuUYLpiYkBvntEVmi2aERH2pdYTqNZ6MoWx6FImyJot7O3Q3WLhFFMrHJnj+ID5ZWZOMThKf47ugFIQjHbZ3WD7Bhvvc+M9rr/N5RtcvcnGVXZ+yPYOTU1/QNSUHXIbqfWEqrWePIFAIQbEDKNttvYQrJ3g4hc480ssn2buOJPT9Pp0etQ9qpoIY9kw2mO4y94uO9ts3eLKJS69xQ+/wzf+LT/4Hlc3qSfpdokOoxH27EutJ0yt9eQId2TSPc5Ow8Y7dJPnPsvzX+SpZ1g8w8xxugPqmlIRQRQiiHBHFKoupaYzwcQMM0dZWOHU02x9hk/8Im9+k9f/nK/+O269T6fDxCKjK4xuEW4LpNYTotZ6MgTSWPSo59jYo9Nn/RkufJJnP8+5V5k/wcQkdRcF6adk+ilRCPuqmm6f/iRTs0zNcewkaxdZXOLbf8Db32Rjg06PEuRNpNYTpNZ6okQXA4YDypATZ3jpc7z6n7P6FNPz7kgfynRPIqg6TB1hao4TJzlxmoUT/Mn/yet/SYOoiF1yD43WE6LWejKksTLPTs37b/FL/4DX/gte/SLTR+l0jTWNOyKIIMJdyySTTCKM1V2WzzD5j1m+wG//b3z197l+ibkFRh+QO0itJ0Ct9USIDvUCN/foDvjFv88v/0Oe+RSzx6hqBJlEuCPCPYtwR4SxTKIwNc/pF/hCUFV8/fe48i6DHqXQbGo9AWqtAy96xICdQjXB6lk+/xs8/0ssrFBqPyHCAxXhp9QdZo/x9Ke4+QHb1/nK9xhNoxAdcojUOsCK1sEVZFCmyVmuvMfiEq/+Kr/49zm6TKnJJBBBhIcqgghjURjM8sIv88qvMt+j2WBvjxigaB1wRevgCQSCeo5myPBdZkY8/wov/DITM5TKWAmERyoQyGR6nnOf4Vf+ByZPsufHAqF1gBWtgyftC6LPDoYdLrzG07/E6lNUHaLYFx69IIJM6i7HT/Hir3PyeQZz7O6iRtE6wIrWgRRB6dAEuxWdRV76R5x9lZl5d4THKNwxmOHMczz9KgurbO2QHaLWOsCK1oGTiD7lCJvXmEzOneTCC8weJZPRyL7wWJWCJAr9SS58muWn2Q30UNsXWgdQ0Tpwwm0VWbM9YnaNpz7NidNMTBmLcKAESsXSGdbOcHSG3KYZotI6oIrWgRMdBMMdsmFhnTOvMr1A3TEWQYQDIQJhbO44a2dZO0fTMELpaR1QRevAKQMaDC8zvcfyMVZOU9c0SSYRDo4gwlh/kqVnOfcF9qbYm6BMk4FAaB0gRevgqRgWdjosv8LaJzm6RKkIB1QiiWDuOKefYaZPhSYJrYOoaB0cQdTkiNGI7LD6CZYvMjlLFAQRDrSpWVbPsXqO/iS7u8QEKq0DpmgdGFGIHs0uduj2WLvAwip1l0xjEQ6eIMJYf5LFk1z8LNPH2NqiOkJ0yURoHRBF6+AoRI+9hk6HlSXWzjJ3lEwyHWxBJlHoT3HuJWaW2a6IAVFrHTBF62AIBFnYTSYWOPMKJ04zmDEW4YnR6bFyjpVVZnvsXSNRekitA6JoHQxBBs0eo2RqiXOvcWSZTt9YBBEOvAiqmoVlTp1lZZHND2gqygSpdVAUrYOhMtbcpDPk6DynnqE/QEM2RDjwIoyViokZ1l5m7bNcqdmbpJq0LxBaj1nROhCi0BS2GxZOs/4cSyfp9BBEeKJkUgrH1lh/iumKMqJB6SKQWo9Z0ToYCk3FFhYvsv4cswvUtX3hiTR3lLWzrK1Tgp09qimi0joAitaBEBVZsYOli6xcoNMj7YvwRBrMsvwUz/0a1YCNHeoFdEi3hdZjVLQeuyiMdqg2WcLJVY4teaKFfaVi+ggXXmHyKMNATQThttR6jIrW41WICfZQJjjzMivnmZ43FuGJFsHENCcvsrTCZJft6+gSPa3HrGg9HoFAoUyx26U6wdP/kGNP0Z8kEUGEJ0+Qaazb48Q6Z86xMMuNdzBBmSLdFlqPSdF6vIIslGB2hgsvMX2ETDJ9LFQdpuY48yqLL3A1GE1QulqPWdF6PJKoiS7bG8zMs36R1XNMTBoLT7YIMglUXZbOsHKKySQ3aEaUCYTWY1K0HotE9DBgc4Ojq5x9kflFOj0ifGykffMnWDvF6jFyi+GQahqh9ZgUrUcvjEUXU2wUFs5x5pN0J4hCJhE+VqbmWH2WC7/G7oCtinoGFQKh9YgVrceidGn2yGssNKydYHGdKD62Oj3mlzn/MoMpmhGjEVEhkFqPWNF6LKoBw2Bvl/WzrJ3lyHEiiCDCx0KEsUxKxfQ8Jy9yfIluzc4G0Sc6Wo9B0Xp0AoGgmmW3z/Yk5/9Lll9iMO1jKZANmUxMsnyKsxeZmWLjGmWG6JNuC61HqGg9Ookk0CAw2ef008wdQ5DpYymCQKfH7HFOv8zcKTaDrCiFcFtqPUJF65GKLtUMO5v0u6ydY/UcU7M+vgJBIgq9SVYvsLhMf8TwBk1S+lqPWNF6NIJE9KkWuHWLyVkuvsLiOhOTPtYi3FEKi2usrrDQZ/cKI5QpMrQeoaL1SEWFPhuFqTXO/wKTc5TaWPgYSyRRmFtg/SXWPs/2gL2a6BJaj1LReviCTMoEiZ33mNllZYGV83T6RCARPr4CYaw74NgpTr5Ap0ezS7NL9FC0HpGi9XCFO6pJRhUbH7B0lJOnOLZMXZNJ+niLMJYoNfOLnLzAkSNEw+4OZUDUWo9I0XpkqkmGk1zpsPpFTn6GqVlKcahkg2R6jtWznHyK/oCdITFJVFqPSNF6uBJB6dI0GDKoOHmBY+uUmgwC4SFKMskkk0wyySSTTDLJJBPpoYkg0BuwsMq5TzG1zG5DjhAIrUegaD10UVHNsLNLSVbWWTvH3AIRSNJt4cFKMpHuSSaZSA9MBBEkSs3kEU5/gqPHqUYMN8kgaq1HoGg9PGEsOtRH2dyi6vDMZ1g5w9SssUwPXCaZZJJBBhFE+BsFIoggw1gmmUgPTATZkEm3x+p5lo4xjd1rZCF6Wo9ArfXwpH2Bip3CsWNc+DRzJ6h7xiI8GEmmfUEUwocyGe0x3GU0pGmMRVAVqi51h1ITbgsijGWiQRDh/gUR1B0Wllh/lb/6Lt/+YzqFklqPQK31UJU+0WX7ChM7LM5x8mkGM5RCprEI9yXTvkASGA3Z3WLzJpu32LzFxjU2rrB9k+E2iaqm02cwz+QckzMMppmYoj9Jr29fGMsk3BbuWYR9wcQUyxdZfpZv/QnNHgI1Rkith6TWejiCTGJA9rj1HsemOLXE0km6PTLJpBT3JROJMDYasrvNratceYf3fsDld/ngMtfe4+a7bH3A3oaxqkNniqklZo4zd4yFRRZXWFjh6DK9AXWXqiYbMgj3LoJMY1WH4+usnafXxx5NoIMGqfWQ1FoPTaB02O1xDc++xpkvMHeMTtcDkUkmEUSwu8PV9/j+N/nen/GdP+L7r3P5GreGVCM6Q+oR0RBuC0aFnZphRamZqVhf58zznH+NM89z4hSzR4lCNjRJCYT7duQ4a2dZW+eDtxju0q1oQushqrUejqD0aUY0G/SS5TMsnafTQxiLcM8yyTQ23OX9H/H9r/KNf833fsR777L5DntDSsXUBFVDNaI0hA9l0KkYFRLNLu+8wdXLfOM7nDvOUy9z4e+wfJqJGaqaTGMR7lrYl8lgisXTPPUaf/rv2HyHbkFoPUS11sMRlCn2hjQjji+yeoaFJaLQJIFwbzLJpBmxu817b/KNr/DV3+bb/5JL2KuZSAbTTPQpFRpyiMZYprEIokZFYlTY2eD9S2y+z5Ut3nmdd2/y4mdZv8iRJeoOgUwi3J0gkKi7HFniqV/kW3/K1R+RjX2B1HoIaq0HK+wrlEm2b1B6nP9F1i4yu2Bf2lfctUyyIQp7O1z6Ab/7L/i9/4vv/gUzI2bW6E1jh9E1RlfZ2yX97aJQ+kzMMnkMXW59n69/nb94k7e/xef+K176AnPHEcYyiXDXmoZSmJjm7AscneXSiGabkqTWw1JrPViJQtQ0Q0Yj+nOcfZGFVboTJCLck0wyicLNK3zrS/zR/8GffZkbVzh2jG5SbrF3HSNyD0Nj4SNoyG2GI+ImUeh1qRYZ1rz+J2xf5r2v87n/lmNr9CbtS4SPLijFWK/P4jqnf4FL7/Lu6wz6xJDc1XoIaq0HLjpEj91N6oajRzj9LDMLlJpMAhHuSiaZNA3DHV7/Cl/+v/nKb3HtFr3CREWMGG2SOyTCj4WPLEcYkdvGqhm6FXXDxjZ/9ZdsXaM/x4t/l7WL1D37EuGuVTVTc5z6BG98kzdfp9+lRu5qPQS11gOVKF0M2L7MzCTrS6ydZzCNJBuiuCuZZBLY2+b9H/Kl3+Qr/54fvcuJJaotRldpdog0FoG0L92dcMfwBnGL0uPIMjdu8cYb7P7PTEwze4z5ZdK+8NFFkImg1KxeYPEMo4IORgj7UusBKloPVLgtaAqbmL3Imc+xsEKvbyzCXclEEkEz5NIP+P1/xZ9/hes3WVwkrjC6Su4S/hPp3iUSSQSSZofdHzJRmFzgjXf48u/ytT9kuIMkgkz3bGGZ9TWWB7jJcIeotB6CovVARY9MRjeoGo6vsfYs/QFRGYsgwt0JIrhyidf/lD/4TW5copN09sgtcheNh6uh2cYt6h3607z+Df7od3j7O2xvGotwV8KHpuZYfoqzn2LUZ6+mTCG0HrCi9eAE0adJRreYGbC8ztIpSk0mmUT4yDLdMdrj7W/zl/8f3/gSZcigYnSdHNoXSA9eIhHGRjdxjflZPvghX/tDvvpbXH+PZuTuBREkun2OneX8F4hZhl3KAIFAaD0gReuBig7DimGflU+w/ixHl4jinmQaa4bcusZ3vsx3/4gO6ppIRltIJNLDlQhjzZDRVWZ3aL7F7/6P/PBr7GwZy3T3GiSzRzn7PLMDKjRaD0PRejCCqMkRoxHRY/05jp+mP2ksgggfWSYRBHZ3+OH3eP3r/Ohd5pYoOzQ3iQbp0UkEGkY36A0YTvHtK3zvu3zwjnsWgWBimuUznHuJmXk2b1FmiR4SofUAFK0Ho6BDs0vsMehy8mmOLlN1yTQW4SPJNBZBJlu3ePNb/PD73Npg8gh2abY8Pg3NNqWQXW4mb36Ld9+kGbkvnR5HFjn/CjMn2NihzBBdUutBKVoPRBSix94unV2O9zh5ltmjSLJx1zKNDfe4eYU3vsqt96mDqiDJRHj0Ekmg2aLeZLbh7b/g7W+yt40kk0wfXZBJBL0BZ15k7iRbBT2iQiAQWvepaD0YYWwHk2c4//dYPMvEFIFS3JUIIoztbHHlLb7/OwzfZmLI8CY5tC89VrlFDOnP8v6bvPs6199nNHRfSsXSOqcXWNlj722aIdUEmUit+1S07l8xlkOaZG6FM59meoG6Q7otiHBPtjf44D1+9DZD9HqMrmNIePxyZKwecGOD9y9z7QNGI2OZ7kogUCrmjnHyadafZXOPYYcyidR6AIrWfYsgMdqjU7GwxKln6A1IZBLhI8skkwhjW5tcucblhuEsnWmam+TQ4xckIig128H1Ta5fZjQ0FuGeRNCfZPllTv0aWxMMJygDBAKhdR+K1v2raILdPY6tsvYUJ9bodIhw34a7bG6wmTQVpSIbB0sSQ0rDzi2uvMdoiEC4O4EgE8H8IifPM1tThjQjSo1Aat2HonXfoqap2cbys6w9w9QRojIW4d4lu9tsb5ANEQgy7QuPXbgtMaLCcJtb12iGBML9mZpj5RznX6LbZ2ub+ijR0bpPRev+VWRFBqvPsHSeTt8dEe5ZNuztsLNJSSIdTEk2lKTZY3uTpkHal+5Zf8DxNZ55jYlZNneo54mOfaF1j4rWvQtjzS7VLrPB+mkWljwwmQyHDHcpSSTSwZE+lMYyaYZoPBBVh6l5zr/C4Dg7BR2iaN2nonXvCmWa7aA+wsUvsnKBqTljEYT7E4W6pu4yCjIcLOFDYSyCUiHclwgyjXX7LJ3i1ArHam6+RXYpU2QitO5B0bon6baKMsVeoXuUp3+Zo2t0J8gk3BbuSwSdLt0+TZCBcPAEETRBqen2iYJw3zKpOxw9wemLLK5x7QpNjzLQug9F6+4FEShkl1HN5DwXXmVyzlgmwv0LOj16kwgyjYWDI90WqBih6jE5S6lJpNvCfalqpuY4+SonXuUqhj2ii9C6R0Xr7iXRQcX2JY5OcuYMK2foD4xFeGA6XQYDBkEZ0YyIQCIdDIXo0hQ6k8weo6qRSPcsgggyESyssLbOUbfdYLRHNY2idQ+K1t0JY9HHgBs7HDvDmU8wt0DdIYII9yzCT+hNMDfLfKG6xWiDMonKgRBuS5qkg6kBc8eoKmOZ7kumfcHcUVbPcfZ5BDtDqhlUWvegaH10gSCD6JIDtoITz3DqJboDoiLdvwgyjfUnmV9gcY56m90NqiNEh3QAFDIZbTPV4egccwtUtbEID8xghuVzPPOrxCTbSRkQBYHQugtF66NLJCVoRthhHmsrnFizLz0QmWQa6w9YOMnpX6GzymZNNU3U9oXHJpPSJyu2rnB0jaXzzC1Q1R64usvcIudfZjBL09AMiRoFqXUXitbdCaoj7AbD5NynWHuamaPGIggPRoSxusv0UU59kokF9twWRBBuS49eIIyVAaMB1xuWnmH5Ar1JohBBhPsSYSwbAoNp1p5ibZ2pLptXMaD07Qutj6hofTSBQKHMsFfIDhc/z4nz9Cc9UBHGMikVgxnWn2ZhiW6HnQ1UlK7HJ4gOWSEohZPPsHyWuoPwwAQSid4EJ9Y5fZG5BW7dRJ/okVp3o2jdlQjUNIXuFE+9zJFFSuWBiyCTTLo91s5x7gyLk1z/ATmgzJJuKwiPRthXqKYYbVBf5WRw7hzHV+1LD04QCHS6zB3j9KvMP8VGMKoQhNtS6yMqWn+7QBI9yiybl5npcP4cK6cZTBvL9MBFGKs6zB7j4mc580tsNOwVdCg9HwoPVxhLRIfucW50KSf53H/P6gv0p41FeKAiSCSiYvEky0vMjBhdotmjTCG0PqKi9ZEkSo8yw60tZhZ46kWOLtHre2gijEXQm+DUCzz9WZYuMAp2kmoWBenhCmOJakCZYWOX/hFOvcQrv8HCOnXHwxH2JREsLLF6lhPrDPcYokwgtD6iovWRRBAd9LlVmD3LuU8xeYSq46HLNHZ8lec+xWt/n6rHxh7VEUoPBYnw4IV9gYpqDke49DanTvGZX+GpFxlMG8v0cKQ7Zo+y+iynfpHRFHs1OkRofURF62+XlAkyGF5nfsTKAidOUVXGMonwUEQQQdNQ1Zw4xed+g0++yGyP99+hHKeeM5aJQHgwColMVEyss4vNt1nt8MpneP6z1H2ikEmEhyICQZN0eiyscvp5+hM0uzS7RI+otD6CovWRVFPsVWxssvo0J5/hyCJRkemhiyAQhcE0J5/h07/Oc59iUHFri90u9VFKD8W9C4Q7MomKeobOMTZ2aW5ybIrP/dc8/8scX6cUYxEenrAvicLsUU5e4PgJOhW728QEaq2PoNb6+YJETDAcsjnk9KdYfZ6pWUqQHo0IElWHqTle/DWM2LzEN77Hbk01IBrsYEgOkT6UPpqwrxAdShfTDGfYucziLC+8zK/+dyydZ2KKTCI8EtkQFZMzrJzm5HluvMu1y/RmiC1S629Ta/2tSiGTpqHusP40x1aoagTSoxFIY4mZBT75a8wtM/8v+PIf8NZbrMzSnSN2GX5As0s27gg/XyaSqKmm6J5guMeVm1x7m0++wOd+nV/4uyw9RadPpkcmUAqB3gQLq5z5DN//Ae9dpmmIIArZaP0ctdbPFkiiSz3H1gbdLivnWTvL9DyCTGMRHokIMglEYXqBMy9SOsyf4mt/yNt/xNUNomHQUB0hCobkECM0ZGNfEAWFqFETNc0uOyOuXqLfsLTKp17l5de4+BInztPtI4xFeDSCQKax7oD1pzm+yPeHjG5QBTrY0fo5aq2fKzpUR9h8m/kjXHiREycZTBvLJMIjFUGmsbrD7ALPfIa5RRZP8OWGt9/j5iVik92CmkAkkUQi7AuaICuyImt0KHvUHWYWODHH05/ipX/AmWeZOUrdJdNYhEcryAZB3WH5NMunmZ1n8woxoOqQO1o/R631c0Uh+mwUlk5w/jMcWabbNxYIj14EmfYF3QlOPcvSaZ57jW9+ha/9G772z7l8mW3U6KODGsW+RIM97GAHeziGcxd46b/huU+z/jRHl4xlkmkswmMRYayqWVhm/RMsfYJv/j5VUIXW36LW+pkyqSbJis03mN1kdY7Vc/R6ZBqLQHgsItyRSQSdHsdW6P8KJ8/xyn/Gjy7x/rtce4+bl9i6ys51RteNlR7VDL0ZphaYWWTuBCcWWVpn+VmmjzCYNpZJhMcugkQmnR4nTrP+LH/5JUZDFKImR0itn6HW+htFn1HNjfdYWufkBY6vUveMZRLFgRBhrFT0p+hPcWSR5Yuc/YDr73P9Mjcus3GVrWvsXTdWenRnmZhl+iizx5g7xuwCU3NMTPkJ4YAIJJmUwsIK6+eYrhhtM6ooNRqk1s9Qa/20MFa67NbcwCdf4uTLzC1Q18YiHDxJIoK6w/QRpo+weo5MmiF7Owx3Ge4ZK4W6S6dH1aFUfkqmsXBbOFAiEMwdZe0UK7O8s83ekF4fe6TWz1Jr/bSg6tOMaIZ0sHqWE2fo9BEOriB8KNNYBBGUmm6h00faF0QQQYSxTHdEEOFACreFsd4Ux5/i6X/MtX/NrTfpd8gdjLR+hqL1U6KiTLE3xIjlddbOcvQEUcg0FuHAiyDCHRFEoVSUmlJTKqIgEMYCgQgHWxDIpBSm5jn3GWaOG0utn6dofSgQKJQJdkaUmvMvsHKWmSOeeJk+lP5mgfBkCKSx/oBTT3N8hYkBoyEZKAitv6ZofSiRxppkN+nMc+GzHD9Ff8pYeHJFEEEEUYgggggiPLEijHX7nFjj7Cc5foaNDZqa6CC1/pqi9ROijz67V+ltsTjN6eeYnEPQNAgiPDmSbMiGpqFpaBqahqahaWgamoamIZNMT5QI+4LugLVnOXGRjST7RI90W2j9J4rWT4gOemxvMj3L6llWzzIxaV96ImSSSSbp3mSSSaYnRqCqWTrDyhm6bmvIhgitv6bW+klBFjZx5jnOvMaxFTo9d4SDLZNMMo2VQhRjkaSfLdwWxhLZkEm4rRDhibGwxPoKS4WtG4yCqpCN1n+i1toXRI8cMbpO1XB8leVzdPooxkpBOHiSRCYRRBBhLIJmyN4uu1vs7TIckiMEpVDVdHp0e3R6REUUIo1lkkkgigMpAmFsYpql53n2n/DH/y87N5geMLyKIQLp0Ku17ogewyHNiLkFVs6wuE6paRr7woGTaV8SYWy4y84WmzfZuMHGNW5d49YHbL3PznVGu0RQ9ejMMJhnap6peSbnmJxhMM3EJFGIMJZpLMKBVXeYX+Hi5/nan7G1RfQRCK0fq7X2BWqGDdll5Tyr5zi66I5MIhwomWQay6TZY2+HG+/z/o94903efYv33+Hau9y6xOb32XmXvW0C1STdY0yuMn2CIydYWGVxhRNrLJ5iYpbegLom0x0RDpxMIpia48wLzC9w631GSVTkCKl1W61FEIUcMRzRmebsp1l6iolZEhEOnGyMlWJs4xqXf8ib3+SNv+DNv+Ctr3Fjj509ckg1pOxi6ENb5I9oLpMd1HQ7HOlwYp3Tn+f8S5x6hqWTVD1KMdY0RBDhwAj7+gNOrPPUK9z8gMtvMDVLbDC6RQTSoVZriYIOzQ7VkOkJTj/DkUVKIRsiiHAgZNoXNCN2Nnjv+3z3D/j2l3nzHa6/w6132b7MaJLSJWrqQukgiTSWQaIpNEHTsHeLK9tsXOWdG/zVn3Lyac69zKnnOb7G1BwRxjKJcDCEsapmcpazL/JX3+KvvsvUJLGn9WO1FgUdhhv0JjixwtpTTM3ZlwgHQqaxTIa7XL/MO9/jq1/iG/+GN77MB6iDHro1Ez2iSxSiIRMN0r5AoLIvaQp7DVs7XHud9/6St77K97/FM5/h6U9z6jlmjlIqojhwotDpsf40x9eM5YgIosbIoVdrEShsB/OnOft5ls4wmCLcFoTHLxsiEASuXeI//gf+4F/y519i7wP6wfwMVYdw2w65QXONTHek25LwY+GOCKJHp09nhqnC6Bobl/jqv+cb/4EX/g6v/SNe+SLT89QVmYQfC49VprEoLK5y8hjLe+z9EH2qCYa3CIdb7bALBIkh5pY4/Rz9KRQyiUB4bDKNRSDYuM6Pvscf/K9840u8/Tb1Ht1J6oayQ24hyRGGZCLdEf6adEcGdjDCFhlE0ulTVWTy3a9y4xbvfIcXv8jp55maI/1YEuGxi2BqjvWXOf/3+Mrv0+sz3WN4y6FXO+wKmTR7TFQsLrF6nm7fWCLCY5PpQ8H19/ne1/ijf8PXfpNLbzHqMVFT3NaQu+SQTPcmyRFG7ogOVaFCBltXeePrbH7A1gdsXeKZL9Cfoqo9dhFkGuv0WDzPmdf4yp8yKugQBQ3SoVU75KIwSoZbHDvC2ionTlLVhMcvkwhjw13+6uv87r/gX/1PzCaDKQZTjD6g2fXQ5B65ZyyCySOMuvzgm1z/Gle+wcwyKxeYnCMKmUR4bCLIJIK5Y5y6yNwkWxuMRpQOzS7SoVU955/+U4dRGCuT7FZsBc9+kU/+XU6/QKlQCLeFRy7TWASBzRt884/5t/8Lf/bb9GomJqgaRjcxRHo0ghxiyMQco4Ybl/nBHzO3wvQxJiaNhR8Lj00EpZDJ5be4fomb1xgskLvkHsKhVBxG4UMFhbrm5CdYPEvdsS8RHr10RwTX3uebf8z/8894/U/Yvk6/oozIXewhPVI5JHco25Qum7u8/qf84T/ja7/FzSs0IxLp8ev0OHKci7/A5HE2h5RJonaoFYdR2lcxaqgq5o6w/hTzi8YyPTbpQztbvPGX/OG/5vf/FdcvMzlBbNPcInfsS49OItCwd50K9QS7hT/+Tb78z3njT9i6SdMYy/RYlYrBDGc+yfwSidEQhagdWsUhFRXVNLu79Ke48BmWzzE1ayyC8OhlIhCMhrz1Or/3v/M7/5zpKSa72GJ4AyP70qPX/P/twWuTXHedGODn9z/dM9Nz0YzutmVZtnzZGLCXZNnKLknVVpIPkMonCp8hb/dFUpW8yyabVEEBSbGAASdgfMEXWb5Jsu7WXXPt6e5zfpnqARFSC5gsbtnd53nQUAr1JvosHWU4xzs/5Fv/lstvs7ttLJNMExdBprFOl+MneeoojzZsnaepKCtkIsycYlZ1iGV2KxaO8id/ydoxqi6ZhD3hodnd5vo5Xvr3fPASMaQT2KHeQiKRHp5EoiYH5AZzy2wl73/IT7/NxTOMBvYlmR6KTEqH1cOc+iec+Br3akbzlAW/FmZKMWsCQQaJwMHDPPOPWVylFPvCQ9OMuHOVMz/i1W9x6zxLPWKHZpscEOHzoSHsGVFvUtkzz/2an32Pd/4Xt68i7Uukh6IEC4uceIHHv8aoorGnIroIpJnSMWuS6JANg1usDXn8ACefZn4BgTRxmcYi2N3i/Ov83X/ik5vEHAtz9G8QDSXI2udHIohgdIfuATqrvPsLlo+x9giHH6M7jySTCBMT9iWi4shjPPEUh4LYop6js0y9QTZmSjFLgkRZJle5O+TRf8bT/5KVw3S6xiJMVhJB2JN88AavvMS779I5yFzF4AaRSLLx+ZNIIsldYpO1Ba68yU/+hvdeZeMuiUwyTU6Qfm15jRPP8fy/IJbYGlGtoWNfmBnFjAnEHDnPsOHEC5z8U+Z6RPFQpD3JcMCda7z6fc68wmBINSJ2abbRIJE+n9K+IblDb46t23z0Kq9+i+sfMdxFGMv0UCwscvQkz32d+VUGNbqoEGZKMUuSKDT2LS5w4jTHThrLJNPEZdIkm/d4/zVe+S6Xz3L0MHmb+j4RaJA+97LGgIJOYesW//s/c+51Nu9SCplkmpgID1RdDhzhma9y4JCx0YCoiAppZhSzIOzr0DnC7gBDvvJ1nvgTDhzycCSZlGDY59r7/OA/sPkxCwNynaztS18o2dDcZ65LWeLcFd76OefPoKEEEWSaqKYhk/lFHn+aJ59gbY7NT9CjLJL2hJlQzIpAoaywW7DI83/JsZPMLxiLIMLEpF8Kbl3lvTf4xc8YDJjrUG+gsS99sSTNkGioktLnw5d55/vcuspwYCzTxER4YG6OI4/y5IscforNAdkluoQ9aSYUs6IQHTJpkt4Bnv0aq8coHQ9NJsNdPn6bMz/h+lXqpFPR7KDxxRRk0gwoA1bnuf4uZ37MR2+zvUEmEWSamAhjpcPSKk+8yPHnGCb1iEyigzATimkXZBLzlEV2rrB2n6d7PPEsiyvGMk1U05CoR9y5zplv8/43OVjT2aTZIuxJpC+eJILsk0PmH2O4yJXrvPY97lyjHhLIJNNERJBJJlE49gQnHme1ob5JPaCsIMyEYkaUBRzgTrL6FZ79Vxw6TnfexGUSQWB3m/de46Pz3N1lfplAjnzxJRoMyW168+ys8/r3OP8O67cRhIfn4DFOPs+TX6NZZFCIBSLMhGIGREV0yA7D4MjzPPV1egeoOiYqk0wiGA24e523v8f1C9RBmSPsSVMja+p1FubImotn+fAX3LhMPUIYyzQREcYSSwd49BlO/1OqFUZ+qUKYesUMKHMkmj7LyYnHeOw0pSKRCJOTDZls3efyGd76b2x9wFJihMb0CDTUW5RCmWNY89EbXH6PwQ7SRAUiyKQzz6HHePqrLCzTDKn7RJeoTL1iBlRr7AbbWzzz5zz5AmtHEUgkwsSUisCtq7z/Jrd3GfXo9Mg+2ZgeiSTQ3Kc74OARzr3Fuz/j+seMhkQYy/TZC2PZIFla4dQznDzOUofdHaJHdE29YtoFscAoGOHpP+OxZ+ktE2GiMj2ws8XVM3z4I3a3iQ6lwghpKtU7lBGLy6zf5eL7nHubnS2ahggTFfb1ljh+ilMvsvIIuzVZUBCmWjHFIigV2ZCYX+LJFzhygs6cicskk2y4d4OLr3Phx1S7dOxJskGaPkGOUFOCUnHzCmd/ysZt6iGZZJLpMxdBhLHuPGvHeeovOHiaYdKMjEUx1YppFKQ9C1RH2bnDwjZPHeHxUyytGmsaYxE+c5lEEEHTcO0Cl65xu6GzQgmaXdMrCTR96tusLrN9izMvce0CO5tEEEGEiYhCJk1SdTn5HI88ynzNaJ2mwZypVkyx6BDLbNX0jvPsX3DsJAuLSAJhAhJprKnpb3DpLDev0KCapyCHpl6OqLeYW2CYXL/BxQ9Yv0MmEWSauFI4eoLH/xHHnqYO6kBlqhVTKipUNMkQqyd5+uusHqM7T9oTJiKRaWw04P4tLr7J3Ut0g6qgQW26BWpyQAkUdnY4/zq3r1CPPJBpIiKIIAqrh3n8eU5+lXqeUSAQplYxhTIpPVQMb7I04JEjnHyOuZ4HIhAmIu3rb3PjEhdfZfMCC4khGtMvjWVSbzLfp7fBR/+Ta2/T30CaqAhj2dCZ59gpnnyRmCNroiEKwlQqplTpUXfY6HP8eU69yJFH6XTsS5ORxkohsL3B5Y+4ucHuPN01coccmBmR1Ot0KrpHuHiHS1e4e5NEBBEmLrB2lFOnOdqlO2Q0QIUwlYppE0RBRR30a058mce/xMohSmWi0p4kgtGQezf4+G22tsg5qkVyQI7MlOxTCtUSG7tcv8KNS2SNNFGBCBLLazx2mlPPs7DKoCG6RJhKxbQJoksmdU1UnHiOR04zv4hiX5iITNK+nU1uXuDcz2k2mAtKkmZP2lMTIzq4fZkrHzAakmks02QEEQjmFzlymuf+NUtPs1sRC6hMpWLKRIdqjcEO1Q5PHOLkKdYOG8vGWITPXhKBMLZ+h2vnufQuUdNFvY3GbEkCzQ65zlqPu2f48O+4d4PhrskLskGy0OPpFzl0lIKmkH4pTJVi2hTKAv2GzjKn/4xHT7O8ZuLSvkA23LnOtUvcXqf0qCqabTRmUg7Qp7fC+g4fX+TaBfrbHqruPCdO8/gzrB1jd4esiC7SVCmmSUHQ1AyThWM881ccOcXCIpkmKtO+ZDTgkwtcv8gAZYlSkTtIsyfIhmZEZ5GdLp9sceEsW+tkEmGiIox1uhw+zpNf5tGn2dqk6RBzpk4xRWIeXQY3mNvhyCqnv8LiAQSZRBBhokZD7t/m41e49RYrKCOyJu0JsytpdlgY4h7v/5T7N2hG9qWJiTCW6Mxz4nlOvMBGUPeIBdKeMDWKKRIdssv2iLUTPPElTpxmoWdfEmEiMolAMBxw+xqXLnJ3nZXDxC7ZJ+xJsyeRGNHcZT4w4r2fcP0c2xt+LU1UIApHH+fkkxxE1acZEJWpUkyLgkJT6OPw0zzxAoceoTtnLMJEZNoXSHa3uXaBT26wVbNwEAOyr9VQb9KtSFz8gKvnuH/LWCJNTtgTxlYP8/hTPHmKKhkOKQsIU6OYBkF0yIZ6QJ0cfZLHnqO3TFT2hYnJJNDUbN3n4zPcv09WdOYwImuE2RYkotBUbODyJW5e9XAEEcYWlzn+HF/6N8RR+l06h4iOfeELr5gGQcyRNbZZSo4d5dAxBJlIIkxMhLH+Fjc+4t3/TnOJxSH1JlmTiTTbkkDTp2yxmtx4m8tvs7tFNkSQaaIyESyu8uQLVCsMK2IeBWEqFNOiQ51I1tY4dJyVg/YlaXIiPLC1zvVLnHuPuqE3R32fHBFav5K7lAErS9z4mEtnuX+bekSmhyOY73H8CRYXCTTp19IXXjENAkETxAIHT7F2nN6yfWFiMskkAsn6Ha5e42pDfZjuCvVdjLR+Jcghkcwf4tZtLp3nxhWGA2Pp4ejOsXaU1TkWRtS7xsJ0KKZIg5ynd5LeYeYWPBBhojIZ7nL9AlfOMl9T1RiR9oTWr6R9SQyJ5P4dzr1NfxtBhIeidOitsNih26e5iwodU6GYImlPobNEd4GqMhZh4pqa9Tt8/BaX3mJ5hc6QepuwJ7X+XzW5RXfE1kXOfoc7lxj2jWWSaaKiUHWoglKTfQSKqVBMm6QZ0dRkGss0caMB1z/m/FtcP8fKGmVIs6n1W2RNs8V80r/O+z/g8rts3kXSpMlLmppMMogKiTQViilSkAO2rrB1m92+BzJ95jKJQLKzybs/5epFRkGni5ocIbT+Pkk2dBYZ9bg55L23+OQSEUQYyzQxzYjdLXZqRj3KITQYmQrFNEg0VIkdbn3E7cts3rcvfeYyyTS2foeP3uSV73LvBsvL1DfIvn2p9TvkiKqm9HnnO5x9iVtXyZpMMk1EJoNdbl/n3i79DlUPSaapUEyDJIdUQQT3b3H9Arevko0HMv3RZZLpgd1tLp/htW9y4VUG9+l1qO+RA61PIQdUDXPBlbc582M++Dk7GzQ1kkykz0SmsWzYus+Fd9jcIJNIpH3hC6+YBknuULpUq+wGFz/i0vvUQyIINDXSH1UmmcYiuPsJb36bH/478jbdPrlJk1qfVk2p6Kwy6vDBG7z8X7h1mdGAKDQ1TUOmP6pMMomgGXH3Gm9+n/oWC0PqLbI2Naqv+MY3TIuKCDrJzn3qEYceZ2mV+QUiSGR6IMKnl6TfFEEE/W1uXOCl/8ir3+HGJ3RXiYamT6R9qfUpZGJEZ4nBkPW77G4zv8TKQeZ7lLAvkR6I8AfJ9BsiiOD8GV75H/zob8mGDnITNdJUqL7iG98wJSIJdLr019ndZNind4D5JeYWiEKEByL8f8ukGXH/Fudf55W/5eff5toF6kKnYIChfan1aSUaqi5N0u9z7yZ1H0nvAJ0uVce+MBbhH6Sp6W9x9SNe+TavfZdr7zEXVDXZJ9LU6JgiOSIQc8wV7p3nh39N3dDf4bmvsnSQzhxVRRQkwu+WxhKZZENTM9hl6y4f/ILXvsnLf81OobNIb5H6Dmr7UusP1ZAbdFdoKi6fZesGN8/T3+WZP+XQo8z1KBWloBD2hN8vSWRDNtQ12+t8coHXvs/Lf8PFN1iZJ7ZRE6ZLx5TJmtwg5uks0PT58X/l3Bme/3Oe/+c8+hQHj7K0SqdLFL9bGhsNGeywuc7dG1z9kLMv897rfPIhNRYWCTR3USO1/gEyyS1iyOoBBtu882MuvMeX/4pn/5wnv8zBYyyv0luiO4/w+yXDAf0tNu9z4zIf/pyzL/PeL9i9w3yXUpMNmaZOx7RJ1BiiEIXBOlfPsHWTc+9x9AhHj3HkNAsH6MwTfrtMmobdTTZvcusyt+9w5yb3znH/NsMd5uYoNWpyqPXHUpMDSiEaRgPuXuLtH3DpQ9Ye5cgKhx9j9VEWD1J1/G5J3bBzj/VPuH2JT+5y+2PuXWRrk86QqiFrpKnUMa2GKJSKXpfRFtfvcO5DesnaMgefpXeQzjwl/L0SiWbE7jqbN7hzhc0BdbLYMDdPr0OgGaDW+mOrabao5ul0SNy9yLWPGQUHGlaPc+AEi0eoOkT4rTKpa3busHGNu5fZKFQNi0Fv0b4R2ZhaHdOsIZPcoOqytMjyMs2Qfp+Lb1AHTfi9AqWhg84KB5eJJLfIXXKHtCe1PkM5IAcIej16Pcxhl4173LlJXUi/X6Bq6HTornKkSwzJbXITDdJU65h2aSxHBLImGkrSnaNbyPCpRE2piW0EmRihRmpNQtqX2EWNCjVVEF2aDhH2pd8uiZrSEFsoZIMRGqSp1zErGnJADgiUiqpLFITfL8kw1uySDYnQelhyhBGJQJmjqlAIvxR+q0w0aMhd0uzpmDERSLImN0l/mLAnEIQ9qfWQRSDJATkgfXrh/xL2pZnRMWvSbwh7wqeT9qXW50n6DRE+vfRraeYUrVZrZnW0SK1pklqfUtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1ZlbRarVmVtFqtWZW0Wq1Ztb/AVsUdTNabiCPAAAAAElFTkSuQmCC",universalLink:"https://app.altme.io/app/download"},{key:"autonomy-app",name:"Autonomy: Digital Art Wallet",shortName:"Autonomy",color:"",logo:"data:image/png;base64,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",universalLink:"https://autonomy.io/apps/tezos",deepLink:"autonomy-tezos://"},{key:"temple_ios",name:"Temple Wallet",shortName:"Temple",color:"",logo:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAA010lEQVR4AezBbazdB4IX5uf390terpPYI9hJNrHjvC3J7OzLJNnFhqHwAapKSKCqXWipptVW/bypaCsWVVrYDxSqfqcCtVAtqILCShRRlQ9FoILAqdSdLDt0l8lkdjaT9xfbSWzHduzz673nXN9zj8+59r2xkx1n/s8Td4BHjh3/kchPlK/gSRzFw/i9uB+HcJfR6PNzCedxFu/hdXwfr+Df0N947dXvveMHXPwAOnbs+FPlj1W+jj+IY0ajO8/v4F9G/0Xl/3rt1d/+th8w8QPg0UcfzaT52crP4U/gKaPRF8/L+IfRv//9V793yg+A+F30yLHjD+Lnyc/jKaPRD4+X6a/gf3rt1e+95XdJ/C44euz41yp/Fn8aB4xGP7wu4+9F/4fvv/q9X/c5i8/R0WPHv1Z+ifxJxGg02qb/OPyF77/6vf/H5yQ+B488evwxzV/Gn0KMRqOdTPD3kv657//O937HZyw+Q48cfeyupL9Y+XO4x2g02q2L+Cvqr7z2/d++5DMSn5FHjj32+/E38BWj0ejT+i3686+9+r1TPgNxmz386PH9Q/1S5c9jv9FodKsm0b8k/eXv/87vXHUbxW30yLHHHsbfwdeNRqPb7V/Q/+i1V7/3uttkn9vk6LHjf4D8E3zFaDT6LBwjf+aBBw7/qw8/OPt9t8E+t8HRY8f/TOVXcdhoNPosHSL/yQMPHP7tDz84+xtu0T636JFjx/8r8j/igNFo9HnYT/79+x84fOHDD87+S7dgn1vw8NHjfzHJf4cYjUafp5B/9777D+ejD8/+M5/SPp/Sw0eP/8Ukf8FoNPpdk+SP3Hf/4Xz04dl/5lPY51N45Njx/zrJXzIajX7XJfkj9z9w5NyHH5z9V/Zonz06euz4nyF/FTEajX5Q/NEHHjj8nQ8/OPsb9mCfPXjk2PE/QH4VB4xGox8kIX/8/gcO/9MPPzj7fbu0zy49cuz4w+Sf4LDRaPSDaD/54/c/cOTvfPjB2Y/swj67cPTRR/cx/CN8xWg0+kF2CD973+HDf+ujD85O3MRgF9rhL+DrRqPRneDraX7JLgxu4pFjx0/gvzUaje4kf/6RY4/9fjcxuIFHjj52F/mbGIxGozvJfvyNR44+dpcbGNxI/CKeNhqN7kRfEb/oBgY7OPro8Ufxi0aj0Z3szx199PhjdjDYQZv/HncbjUZ3snva/GU7GKxw9Njxn8XPGY1GXwR/6uix41+zwmCFyi9jMBqNvghS+SUrDK5z9Njxn8K/ZzQafZH8yaPHjn/NdQbXqfw3RqPRF00qf9Z1Bts8cuz4g/g5o9Hoi+hPP3Ls+IO2GSzIf4GDRqPRF9EB8vO2GSz6T41Goy+yn3/00Udj02DTI8eOn8BTRqPRF9lTVzv8rE2DLfkPjUajHwY/Z9Ng7k8YjUY/DP6ETYN1jxx77MfwlNFo9MPgqaPHjj9l3WDmjxqNRj80Kn/MusHM141Gox8mX7duMPMHjEajHyZ/0LrhkWPHfwSPGo1GP0yOPXLs+I8M5CeMRqMfQvmJAV8xGo1+GH1lP540ui1+7Ef3238wdi9uKj6d2BS7EnsXIm7ZYNcuXq5XvnfJ6LZ4cj+OGt2yF37fJf/lf3ZIjj9gS0JsE2ImZhILYiYR62ImsaEhNiWWBEFiKrEl5hJTMRMziQ0JtSHElgSJLTGXmIpNIWZiJtaFmIt1MRUziaCxJeHchYmf+KO/6cqVGt2yowMeNrolLzx9yQtPX+LdC25J3JrYnVhX4jqhpoogKuaKtnYlZmJnsS5WqZkgoVi7d/CTz9xjdFs8POD3GH1qLzx9yS88c1mH6LsXLIhbUstSe1RLal2oZTFTakMUMRPEHtWy2qamYklQ1NyJZ9eMbovfO+Cw0afywtOX/MIzl13T859w4ROrxV7EDuLGYlHNxFzsrGZiqmZqpq5TexQLal0sqw217ORza0a3xf0D1oz27IWnL/mFZy7bLom++7EttU0tiwW1IFarPYiZuomYigVRsai2iU2xo5hrTcWy2ia2i7nnf2rN/v0xumVrA+4y2pMXnr7kF565bEMSSSQx9e4FU7Es5mpdKbEpZhI1V9uU2IPapZqqmdoUG2ImiF2qmZqLmbpOiZlYVxtipubW7h385DP3GN2yuwejPXnhmcte+MonkkhiQaLvfWyqltVcbKnrtIKaiW1C7UHsoMQNBVUbaqb2IGZiWWxTxJbaVNeL2HDi2TWjWzcY7doLz1z2wjOXbUlISBhCcOETLnxiWexF3S6xWuxFkBA7qSU1U8tqm1gtNsRc1YaTz60Z3brBaFdeeOayF75ymSAYQhDETEz1vY99luIGalFrKq5TNxIUEUXRuoFQi2JnsStFEcTc8z+1Zv/+GN2aweimXvjKZS985RMShMSWIIiZ4L2PrRTXiZUSG4K6Tt1YLIqd1Y6K2FAxk1A7KbGodlY7iyVFERGs3Tv4yWfuMbo1g9ENvfCVy174yifETBAEsS4kmmhCou99bKXandY1sU0Qn05dJ1aKLbUhNgStG4glsbPYWS2IRTVz4tk1o1szGO3oha9c9sKPf0IQBLEuJJpoLCh64RM+vuLmareq1GcoVqm6JjFVu9RaFpTapm6k1pWg6pqTz60Z3ZrBaKX/+PErXvjxT1zTRBMSDTXXmAmCIfrex8TOakEsq7kIcWO1B7WoVglqLjbEslqSmIptilgUNxWKiA3B8z+9Zv/+GH16g9FKl0sTTTRxTW0KglgXhpCQ2ND3P6a2KbGzuLnaUivEstqlmKoFFde0FFFLEjuqbWJZ3UjMVQXF2r2Dn3zmHqNPbzBa6cV39lkQMwmxLggJIa7z/sf2orUgZmq1uImaiXUlrhOLaicxEwS1S61ltXu1oQgikthSTjy3ZvTpDUYrvXY+Xr8wkJCQMMRUQhBTCUViKqEXPuHjT8zFglgQc0kUMVOfQszUulC7UGJLELVdESvUssTuxFTNxKbYrqqtLeHkc2tGn95gtKNT7w4EMRcLElNJEBlCIom+f9GCmqsFNdfWhroFrZ3FarFdbYjtgtql1p7ETC2pa2JDzDz/U2v274/RpzMY7ejFd/ZZKSSRhISEIAiC4P2PzZW4odiUiJkgltUOaiaxILapZXFTMRXb1EysEFMxkyCW1bK4kZo5dO/gJ5+5x+jTGYx29OI7A0FIIkNkiCQEQRAEMZfo6Y/NxV4UQa0W61pLYrXaJpbVKlVFzdVu1VTN1LpaFstqtapNNXXiuTWjT2e/0Y5eOx+vXxg8slZbYrXEkgtX+PgK9+y3JJbUuktXXf27/x9FUTOtqZai5lpqptaVoqWomaI1VTMtramitHVNitZUS9Ha0KJmWlpbikktKFqK1lTNTSqPPeDAL/8hxDVBS2JdXNOYOvncIX/1f3nXaO8Goxt68Z2BIIi5hISExErB+x/bUnO12l375PDdbkntUt1IbIpFiZUSN1Y3kvsOcvc+ffeCmdpQ60JRtaEIiud/6l7798do7wajGzr19kBCQkJCYqUgCAaEnrlophbEjvLgmiWJ266WVImpotbVSrFHtbMD+3hojdJXPzQTG2IuiVq0trbPTz5zj9HeDUY39OLbgxsKgiAIYibR0xfdUCzJg4csad26WhCr1a7UHsVcYksiD66RMKHf+wB1Tc21tSFmguDEc2tGezcY3dBr5+O1c7ElCIIBQRAkphISUxc+4eJVxEq1INZ9ec2SxE3VurqhmAlqJnFNxDWxLoiV4iZiZ61r8nvu4eDApLT622ctqQU1UzMnnztktHeD0U29+E4IBgRBkJCQkJhKCIIgOP2x3ap1d+2TI3db0LqpWBdiB6Fmaq61SpGiaF2v1sXO6ubWDnDoAJMyKVer5z7Rdy5IzMWmCGImZp7/6Xvt3x+jvdlvdFOn3h78B09OSCyJ1WJdbOiZi/Kj91lQxGqJ4cTD+uFlYqWglsW6oAhqLmbqhmpTiE1FzBQxVzMJallQBEVQG67+39/nkwmtqZrqd8/qj6xJTNVMVEUsWrt3n5985h6/9hsXjHZvv9FNvfj2QGJLLIp1MRVLeuaiuE5sKmLJl9fky2sSM4mpmCqGxIIgZhJTsSnETKyLqZiJdSEEQWNTJIi5xFTMJaZiU4iZmIl1MRUm3/tAXz5DrSs11VfOcuJhSxJBEXPBiefW/NpvXDDavcHopl47F6+dD0HMBAkJCUGsduETLl6xLCR2EteJLbGDWiFWih0VsSmmaoXao5iKqeHRB5iUyYSrZVKu1uSVszYUNddWEdu0Npx87pDR3gxGu/Li2wMJCUNICGJnCcEQzly0rNSSmKmZ2lRTdQOxCzFV28SGmKuZoEhtii2xKZbETGxT2+X4A1wtE0wwKS3nLuub58SiiGtqrnjup+61f1+Mdm8w2pVTb4UgdhYkJAwxldjQMxctC7Gkre1iUexFLKtltaEWRVxTM1XLaklrqnaUHz3EwX1MyqRMcLVMqq+csV1QFTOxKRHct7bPV5++x2j3BqNdefHNWBIkJAwhMRUzMXf2ogW1rtSyRBB7VCvUntSCouZqJ7EspmJZzQwxHL2PSZmUyYRJmdTk5TNqF1pT4cTza0a7Nxjtymvn4rXzISEhITEVczETBAlD9OIVLl2xKFaromaK2oVYVjNxEzEVS4IgIYhtalMtq6m6Tm2Xxx5gUp1MdFJtdVJ9+Qy1pChqU2KqnHzukNHuDUa79uKbMRXETMwEQUJCQkLMnb1oS6wrsUJsCIogPqVYVutKbFOrBLWpFLVN3ECsFmIm5IkjOqmUTMjVyqR8dEnfOGcnQS362Z++1/59MdqdwWjXTr05EHNBwhASEoJYqWcu2VI7a20oYo9qpjVVMzUX60JtEwtiqiqW1S2qmZJH7pMDA1cnTCZMyqRMqt9+36LYEDOxTTi0ts9Xn77HaHcGo1178c0QDGEICXFDSSSRhLMXbYmZmoplQe1RzCQWxE0UtaWW1EwQm2qPYirm9kWOP8CkXK1OqpPqhMlvnbYhrqkNRc3Vupo6+fya0e4MRrv22jleOz+4kSSSSCKJLcHFK1y6aqqmElO1rAjqNqibiKm6TtSmmKpVYkmsUFM1lcSG4ckjOqEtkzIpk4l++31qqkgiZmIu5k48d8hodwajPXnxDVuSSCKJJJLYEgRBzCScvWi7lrhOIn43hBDrYlPFppqKbWJTLWlNxY7aIvLEYSYTJmVSrpZJ9cPL+tqHaqatInb2Mz99r/37YnRzg9GevPhmJJHEliAIgphLSEhMfXDJ9eo6rZqLz0MtqCUJQe1RbRPLKo8+wP59XC2T0jJB6W++73pFrXbf2j5fffoeo5vbb7Qnp94IKUUsSiyJbaIfXBI3lkTNFHG7xY3UsiJmYmby6+/IE4flvoOIZbFr+wYHfvEEl6/aEusiDxx0TRJLWhJbwonn17z0by4Y3dhgtCevfcRrH4UgISEhsSUIYl1ISAg+vsLlq7aLmZhpazeqdqcW1VRsE5TaEjNFLJr8+juu/LWX9OXTZurTiw155D55/LA8flieOCyPH5EnDvN77nVNWxuK2pTYElMnnztkdHOD0Z6dehMJMRMkJCQkJCTEouDsJWJLXSexXa0WcVOxLnYntquZWDT51++68tdf4urE5N+eMRPLakexZxER29V1aupnvnav/ftidGOD0Z69+EZIEBISgiAWBUEQMx9cMlfX1KKYic9RrFQzk3/9rit//SWuTGzot0+bihVid2pBLAmqquoGgnLf2j5fffoeoxsbjPbs1OsIglgWBLEpJCQk+uElc7GktaHmapW6qVpXK9WWWC0ogsn/+7Yrf/0lrpaERN88px9dpm6fWlIrlKCtBUE48fya0Y0NRnv22ke89hGCIAiCmElISIi54OIVLl21SqxLXC821TZxUwniZmq1mumlq678zX/N1RIEMdWXz1itdidWqw2xKIh1oUhiS82Uk88fMrqxwehTOfW6RQkJCYktQRDE3IeXENerda2YCWqb2JsWtWexKTbkrn3y5TViyeTbp60WU7GstqnVYkPNJXG9thbU1M/89L3274vRzgajT+XF15GQkNgSBEFsExISEj64jBIr1Vx8HmpBbYmZ/NiXrNJvn7ZSzNSmoKZiz4K2NhQxE9eJqfsO7fPVp+8x2tlg9Kmcet1MEASxKCEhIQiC0A8vmapliQ1B3Q6xKPaiZoanjlilb57Tc5fdXBE3FeviejUX1KbEdrUupk48v2a0s8HoU3ntI944ZyYhISEhITEVBDGXcOkql69aJTVVBEVb4japm0ksyVNHiEVB6cun3Ta1rqgtJUjimiA21HaxrqZOPn/IaGeD0ad26nUktgRBEMRcQkJiy4eXrRQLgiRaexcrxFQsiLnWprom9x2Uhw4RxFyYfPu0JbVCTdUuRMwk1LpSc0VLXSemfuan1+zfF6PVBqNP7dRrCIKYS0hISEhMBUEQfHjJ9SK2K2omtkncslpQxPUi5vJjX7IltvTbZyyJRbEubiaxpZbFTBEzcZ2auu/Q4KtP32O02mD0qb34Wk0lJCQkFgRBzCUk+tFlNxJzdZ3WrtQKNRVL6npV1Mzw1BELEhJ985x+dNmC1lTM1FzsqLUutqu5momZWCG2nHx+zWi1/Uaf2qsf8sZH/Oj9ZmJniQWhv3Xa5P/8LkMIEh0isS4EQ0wlBEMIgoSEIEgIhpAQ7B8MX/uy4fmHzMVUEbsSM3nqCAktie368hl59svmYqqITUVcc/mvfVM+uixDSHQIQyQYQsK+MIRgCEMkYQgJA4aQMIQhDCGcvRT//B9/YrTaYHRLTr2GIGYSEhISEhJTQRD622dNfvsssVLVVEvcQO1o32A4fpjLE1q7FTvLoYPy0CES1+vLp4mbiO2Go/ebKuIGakmL2snZi3zj73ziW2/XaLXB6Jaceq0kJCQWBEEQM6HfPWvy3Q+o1UrEVELNxJbalFhpXwzHH+Du/VyZ8NFlc7WToBbFXJEfO2JBECbfPk3NxU3l2P221Eytiy21WkJilbMX6xt/94pvvV2jnQ1Gt+TF79eWIAhiJkgYwhB95azJK2doCWpJQ5WgJWZqpnYW7Ivh+GHu3k9rQ89eMhdTcZ2qZW1dEwxPfYkgiC196xznLttSN5Wj91sS62qu1K6dvcg3/rervvV2jW5sMLolr37IGx+WmAkShjCEhJjqd86YvHLGliKWlQi1LhQxF3O1aBgMjx3mnv2mWlrOXjRXU3WdUNcJiZrLk0eIZWXy8hlbYmc1NTxwl95/l6kQ18Su1ExNnb3EN/7+Vd96u0Y3NxjdslOvI2EICbFk8vIZk5dPW1ILUsQ2JShiS6ywbzA8fpi799PSuqYfXGJSO4upENvVhqA1lUMH5KFDBEGQkOjLp22pncWWHL3fVKlrai5uKpy9xDd+deJbb9dodwajW3bq+yWWJST68hl9+bQtiakgFjSomSChCGpZzOwfDE8c5p79lhRXJ3x42c6KUmpdTMVcYsvw1JcQhIQgTF4+Y0vcXBiO3m9BrYsFsVpMnf2Yb/zqxLfertHuDUa37MVXJ7YkJCQ29NunTV4+bUFrqqjdqZ3tHwyPH+ae/RRFy6RMSkvp2YsWxFytCzFTUzVTtLbkqSMEsaBvneOjy3ZWC0qO3W9BrKstcUNnL/KNf1DfetdojwajW/bqB7zxIRLb9dunTf7t+5YkpmJJaiaouSCW7Yvh8cPcvZ9JaWmpmaIozly0oOZiT/LkESuVyXfO2IvhgYN6/13ETK2L3Th7kW/873zrXaNPYTC6LU59f2JLov/2fZPfet+CmmntpDFTi4patC+GJ45wz35TRVEURUtLq2cuMqktsVLcTOTQQXnokFX68hlTtWs5eh81E+tqS0stOXuRb/xDvvWu0ac0GN0Wp14twRD9rfdMfut9S+L22T8YnjzC3fspaqalpaU1VRRXy4eXzNROai5iQ6yLTbVheOqIVSYvnzYVK8RULcjR+22pRUHMlbOX+MY/im+9a3QLBqPb4sVXJyT6m++Z/Ob7Vqq5hCKWJGZitX2D4Ykj3HOAlpaW1lRRFDXT0urpi3ZWakHVhlpXC/LUEav0zfOc+8RqNRUzMTUcvZ+YSixqbPfBZb7xfwy+9a7RLdpvdFu8+gH/9J9/4P5Xz5G7TCUEQWJqsC4EiQ0JEkITYioJQUJM3XVw8OPP3s89+2lN1WqtLTVz+iJPWBfLQszEVFCr5YkjJLQW1eQ7Zwxf+7KbKhJ54C7f7j3On75MQsgQEgYM0TARv3xqn2+9a3Qb7De6bf7zf3E3HvJZuns/v35in4O1qLWkFrV65qJMyhCK2KaIDUFRsSSxIYcOykNr+sY5U0FN9eXT/PSXiV0o4n++8CV/75+cNfr8DEZ3lItXeOnN0tLS0tpSFDXT0tKaujLh7CWUuE6oqSKIirmirWuGJ48QBAlDGGLynTPETOws1sWGk8/ea/T5GozuOKe+X1uKoihaWlpaU0VRUz39MUIti5lSG6KImSDm8tSXGEJCEFN985yeu2yqltU2teHks2tGn6/B6I7z4mulKFpaWlqKoihqrqXl/Y/tqGZiqmZqphblycMEsaTfOWNZLKh1seHhhw46+tABo8/PYHTH+bW3uHyltKaKomZaWlpaWlqK0tMXmdSimIoFUbGo5nLooDx4yCp9+YypmGtNxbJy8tk1o8/PYHTHuXiFl95EUTMtLa0tRVEURXGlnL1oUU3VTG2KDTETxKLhySNWmbx82lTNxUxdp4QTX1sz+vwMRnekU6+XlpaWoiiKiUWtmdLqex8TNxRUbaiZWpYnj9iSmEr0rfN67jKxLLYpYsPJZ+81+vwMRnekF19HUdSiWldaWlqKlqLlvQv2IkiIZXniCImplsQ1/c4ZalltE9c8/NBBRx86YPT5GIzuSL/2FpevoiiKoqWlKIqipaWl9PRFJrWToIgoitZKOXRAHjpEQmK7fueMlWJHJ59dM/p8DEZ3pItXeOktMy0tLUVLS0tLS1HUzJWJnrloJ0VsqJhJqNWGJ49YkJCYfOeMlWpHJ55dM/p8DEZ3rFNvoKWlpaWlZoqitrTVVlvevWBJbKkNsSFo7ShPHrElcU3fPM/5y5bEjk5+bc3o8zEY3bFefB2tqaKomZpqq6222tqu714wF6tUXZOYqmV54jBDSFxv8p2z5oJS29R2Dz90wNGHDhh99gajO9avvc3lq6ipttpqq622lhQtk+r7HzOpmVolqLnYENfL2gF5cM2CmOp3zpgrYlFc7+Sza0afvcHojnXxCi+9TVttLSmKomVSWmrmyoQzF83EVC2ouKaliFqSGJ48YkERJi+fMRfL6nonnl0z+uwNRne0U2/EgqJoaWlpqUUtrb5zwUztJGaCoFbLE0dMxUzMvH2Oc5fN1G6cfHbN6LM3GN3RTr2BlpaWlpaaqZmiaJmUovSd8+ZKbAmititihZInDhMzIYiZyStn7SymaiY8/NABRx86YPTZGozuaN98Jy5fQVFzLS3KpLS01IK+9zG1KbarDbFdUKvl0EHDQ4ckJAhiqt8546ZipqZOPrtm9NkajO5oF6/w0jsx1dIyKUVRy4qWlk+u8v7HiJuKqdimZmIqTx62JNHvnCFBLKtlceLZNaPP1mB0x3vxTUxKUcuKlkmZlJZigtJ3zqNWqSpqrnaWJ46YSkwlNvTt85y7jFoWy+rks2tGn63B6I536s3BgqJlUialZYKiKGqm1bfPI1aJ2FLLYqam8sRhElOJ7frKWVtim1oWDz900NGHDhh9dgajO943343LVzApk9JSM0XNtbS0tJS+c4HJBLVdrAuxKaaS2EnWDsqDa5aUyXdO21LbxGp14mtrRp+dweiOd/EKL71rpiiKoqWlpaUoigmKTya8fxGhZkLRmquZWhZb8uQRgiAIQl85i5iKbWq1+P3Prhl9dgajL4QX3xyomZaWlqKYYIKiqAV9+zxqS22qDXETtSVPHLZK3zrPucumaiZ2UBtOPLtm9NkZjL4QTr0VWialKCYoarWWllbfOocQW2KmNsUN1DV5/AiJVSavnLWgdhAbjj180MMPHjD6bAxGXwjffG9w+QqKopa1tLS0tpS+fYFJbVczMVPX1I3k0AF5cM1UQkJiQ185Yyq2iVUSUyeeXTP6bAxGXwgXr/DSe4MFLS0tramiKIoJWr18lfcuWBY1EzcS2+WJwySu11fOmqptapWW4OSza0afjcHoC+PFt0NLS2uqKIqitKXVSbXVmupb510T15TahdouTxwh5hISffs85y9bFMvqmhPPrRl9NgajL4xTbw8URVEzpS2ttpTWotI3z7mmiE0xVSvUSnn8MEKiiYaGYvLKWWImbqg49qMHPfzgAaPbbzD6wvjme4PLV9FqS8uk2lJac0XRMimqb52XSV1TM0GR2hRbYlNsl7UD8uCaBrGgr5yxpdbVdklcEzMnnl0zuv0Goy+Mi1d46b1oUVpqU1G0tCgtNVN6ZaLvXrBdxDU1U7WsrpcnDltl8spZN9LW9U4+t2Z0+w1GXygvvjPYUhQtipoqaipm0kqrb5yzXVFztZO4Xh4/bJW+fZ6PLpuLBbGlZk48u2Z0+w1GXyin3tlHS0tLS1EUJUgrLa20FKVvnnO9IEgIYpvaVNfL44eJuZgpk1fOmqsFteTYwwc9/OABo9trMPpC+eb7g0+uoqZiJkhJS0tRFEVR+tZ5JnVNUJtKUdvEjrJ2UL68JrEo9LtnTMWunXh2zej2Goy+UC5e4aXTg7TS0krLpLQUEzNFMSmKcvmqvnOBmKqKZbU7wxNH1HXK5JWzpmpd7MbJ59aMbq/B6AvnxXf2URRFzdW60tLSmipqqm98RC2pmSA21Q3l8cOmYiYIfecCH102U8tiu+DEs4eMbq/B6Avn1Lv7KIqiKCalpaipttpqq622+sY5c1GbYqpWiSUhjx+WxIYkIpIIJt89K4nVitru2MMHPPzgAaPbZzD6wvnm+4PLE7S0tLSuaauttpYUb5xjUjMVm2oqtolNtaSVtQPy5TVJTMWWfvestohlsV3NnHh2zej2GYy+cC5e4aXTgw1ttdVWW20tKWmllZZPrvLOeddLCGpv8sRhW2JLXzlrppbVKiefWzO6ffYbfeEcPlhf+vHDhuePEJtCLIupJGomwf132a6ImVgllsWGPH6Yf/k6MRNTffc85y5z30ELYl2scvK5Q0a3z36jL5TDB+tXvv6xpxL5kXtNxboQM7EuxFwiihBTQVHEzRSxyvDYYVcH1KIy+e5Zw0992YIiRVzv6I8e8PCDB7z+1idGt24w+sI4fLB+5esf+/EHrpq8c55JiXWxO7FdzcR1EstiWU2tHZAfWTOVkJCQ6HfP2q2IiBPPrRndHoPRF8Lhg/UrX//YVw9PJJGr1fc+tmexUm3TWhIrxDV54jCJ6/W7H6AWxJKgqurks4eMbo/B6I53+GD9rT900VcPT0hISPStc9S6Wqm2xGpBEdvFkrqhPH7YKn3nPOc+saCW1NyJ59aMbo/B6I72pbv5X//IRT9+ZMIQgmCgb18gQdxMrVYzRV1Tu1PXDI8dJuZipky+e9ZqtSEWPfrwQQ8/eMDo1g1Gd6wv3c3f/nc+9vT9E4IgdIgmvHeBqxPUnsWm2BDrao9iKlg7ID+yRhAzQaKvnLVabKi5JDaceG7N6NYNRnekL93N3/7DFz39wESHaKKJJgShVyZ6+qLdqQW1JTbF3sRMTeWJw2aCuKbfPWs3grY2nHz2kNGtG4zuOF+6m7/9hy/6fQ9MNCEIEoaQkJDo2+cRi2IvalPdQN1MHjtsQWJD373Aucu2xLr4/9uD/xC/7/s+4I/n++4sxaf65DSxHfxLSpY1sJW2yBRpbDQbpRQCg8IKhcHoyvbf/m3X/rWldFvLoGD/tzEIdBlbm43SQsOgg/UPt5Vjj6wk9mo7sU4nKZYlO76T9fvuPq+dvl/pfuh+6CTbic96Px63K2uOHZnWvX9Nt6d8cj9f/eJVP3ZwIGhBSIixkCA4d9lm5U4SdydxJ+3wDAlBjMVInZi3qqwolFVFkMQNTz3+gMcfm9K9P023Z3xyP1/94lU/drBISAiCkBZpkYQWaVHvXGYoG8VIbBBrqtxUbklsr8omZaPpKXl02laGN+ZtFjGWUFYUZezokWnd+9N0e8In9/PVv3/NFx4uQhJJJJEWaSEIgoSEpVLvXrWlskEhbhexptym3BSbxEYhn52xlXpjwS2JVWWzGDt25IDu/Wm6j7xP7uer/+CaLxwsEkloaAiChISExKrg3CUblZHYpNyuFMpY3BCr4qaySZWRGCty+CCxJgh17jLvXXdDlRWxXllTxo4dmda9P033kfeTnxp84eGiIWghISEhMRIEDQ0ToUWdv2yjGCm7FmNlRexSjJRV7fAMQkJiTRlOLBiJFWVLserJxx/w+GNTunvXdB95L77VLAsJiZEgCIKGhhYSWghCff8KVXYrthcryvZiZ9MPyKMPEmMJCYk6MW+krIgNykhVuSU4emRad++a7iPvvUVeebcRBA1BCy20kJAQtJDQQgvLxbtXrSnbCcpGsaasiO2VNbGlHD5oJDaoN+aNxI6CMnbsyAHdvWu6PeH4uUZCCwkJQRA0tNBCEGNBWD5/2ZoYiduUsllVuSVWlN0pW8pnZ2ylzl3m4nU7iVjv6JFp3b1ruj3hhbdCQ9DQQgsttJBYFSS0kJDwzhVryki5TSi3CYlyD2JL7dBBYkt1YoEitlfWPPX4Ax5/bEp3b5puT3jxbLOc0EJCrAmChBYSYiyhhXevUmV7MRJivXJDUOWmsitla9NT8si0TcLwxjyxWYixWBMcPXJAd2+abk94b5GX34mRIKGFFhISgqCFFlqIsaWB+Wu2VyiKsiJGYk1is7K92FYOzxAEQYzUiXmKslmhlEKsOXZkWndvmm7PeOFso4WEGEtIaKGFxC1JJJFEEvXOFRvEmrIixFgZKWOFKpvFTbE75YZ89iAxFgSh3r7MxUWxvRgrY0ePTOvuTdPtGS+cDQkttNBCEKuSSCItBEHQwjtXbFDWxPtU7kY7NEMQGxXD7Lxb4qYyliiUNU8/sc/jj03p7l7T7Rkvno1la5JIIom0SEIQJCS00EKod69RZVVsKe4kNotNyvamp+SRaRskJOrEglI2iJGUkVhTVY4eOaC7e023Z7x3nVfeiSTSQhAECS0kJCS0kJCQsDywcN1Y2U5ZE3FDrIibyq7EFmKkyOGDJCQkbqkT84gbykaljMSqJI4dmdbdvabbU154M7SQkNBCC0FCQgsxFgRBi/r+Fdsrygal3FBWlB2U3SkjIYdmbKXOX+HidYktxYoi1hx75oDu7k3q9pTj34t//lOFGImNYk1ig1BvXWLfBImRIFaEIHFDYiwhxhL1QJMf/YQPQjs0YzkoxFhZUerEPD/+CLGlQtxU5anHH/D4Y1POnF3U7d6kbk958U2WxUQQG8WKWBVrEhYHw/On1ZUlSWhIaCFIaGghIUhoaI2pxt942NTPf5a4s0Jsb3pKHplW5y5ZlbhhmF0w+eOPKDcVCYWyppDEDUePHPA//uRd3e413Z7y3nVePo8gISEhISEIWkhIaGFpMLx8nsuLbihlk9goMRYmoh06qE00ywvX7EqMxbZyaIYEsV6dWFDGgoSyJijEmmNHpnV3p+n2nBe+hxaCoIUWEhISgqCFpcHwrfNcXnRLxLbKWJWRyWiHD7Jvwg35/lV3pWxWRtrhGQpBQhDq7ctcui4olI0KQVlz9MgB3d1puj3n+BkkJCQEQdBCCwkJi4Phr85xedF6pWylrIixhMmmHT7IvgmqqOLdK1aVuxTr5dAMsVlRJxaU3Xv6iQd85tEp3e413Z7z4vdYLgRBQkJCEITlpcHy/32LS4tuF7GVWFHGJqJ97iD7JylUMZT6/lU1lJG4KbYVa6qMxNiDU/LIgzYJw+yCW2KjGAtKueXYkQO63Wu6Pee967x8Hi20EAQtJCSWF8vS/3mLi9dtpZRNirIimGja4YPsm2AoqhhQWBzU/DV3VMbKmhgrq3L4oJEgiJGanRdjZXsRtxw9Mq3bvabbk46fLhISEhKCsLw4WH7pTZOXrrmh7FKMTUT73EH2TzKgMBRVVDGUeueKO4qx2CxW5dAMsUmdv6wuXrdexA2FslHh2DMHdLvXdHvS8dMIgoYWEsuLg+VvvGni4nUjiTsqY0Ummva5h9k3QRVVVFEoFKrU21dsVDYpY2Wzsqo9PUNsIWp2QawpZTvBoSce8JlHp3S703R70otnynKhhYRQi4OlF940cfGaVVVilyab9rmH2T9JoVAYiiqqGIrCO1fUUNaEslFsL9ZMT8kj00YSEhI3DLMLCkFsVm4Tjh45oNudptuTLl7n228hIWFxUMfPmHzvmpFYVdaLTYKJpn3uIJ+YZCiqqKKKQqFQRZUsLav5a9YUsVHZXtkgh2ZI3K5mF9xQKETEmlhRZVVx7Mi0bneabs964VQZWVw2/OUZtXDNqrKNckPEqolon3+YT0wyFIVCoVBFFUNRKBTeuWxNbBLbiw3aoRlbqfOXubRovbKzY88c0O1O0+1Zx08NLA2GPz+j5q/aIMYSyialjEw27fMPs3+SQhVVVFHFUBQKVVRRxVCcu2xHVTYLirJOydMzxGZFzS5QBKXcEjcl1jv0xAM+8+iU7s4mdXvWi6fL1/5knoVJHCAhxhKCFoLESJAYCb/wMwe0/ZNUUdYpypqyUTGcvyJDSQsKsUFiJNYpxEbhwSn59IPq3GUbhGF23sTf/pRCRCG2ERRHjxzwh19/V7ezSd2edfE6v/bXB3DAvfr8T/GTDxqrsqpsVmWkjGRxWb17VX70EyS2VYibYrNC5PCMOn/Z7Wp2wS2lRJSxWFFFYqQQjj0z7Q+//q5uZ013Xzt+GlUMRaEwoFAoDMVQDEWhiiqGUucu21aVzcp28vSMVUEQ6u3LXFwUkcSqsrXi2JEDujtruvva8TMoY1VUUUUVVQxFFVUUhqJQVJV665KRsllid+KG9vQMDbFRUScXlFJVVoWyhXDoyQd85tEp3c6a7r720pssLRdDURiKKoZiKKooFFWlqlSVqjJy/rIabK3KXZmekk9PW5WQkBhmF4zFDbFObOnokQO6nTXdfe3SIt8+hyqqKBRVpapUlapSVUYKhaEYiuvL6t0rxBZiJMYSxGbllhyaISGxXs0uWK+MxYqypWPPTOt21nT3veOnUdRQqkpVWVWoYiiGoooqI4XCW5dsrYyUsbKibBa3tKdnbJKot69waRGl3FTGEls59swB3c6a7r53/HtUlVWFKoaiikKhUMVQDEUVVersJcoulFWxTrklTz9EQkJC4paaXRARxIrYXjj05AM+8+iUbntNd9976a1YWiqGYiiqKBQKQ1FFFWVNYSjD2UuqymaxrbJOrHpwSj79oK0MJy8o5YZCUFZUuaVsdPTIAd32mu6+d2mRb59HoYqhGIoqqowUqhiKoRiKKopcX1bvXLE7MRLrlPXy9EO2UrMLkigbVeKW2OjYM9O67TVdt+Ibb4YqylihiqEYiioKhUJhKKoYyvDmJZvEFspIGYtN2qEZW6m3L6uL190QY0FsoYwce+aAbntN1604fjYUqhiKKgYUCoWhGIqhGIoBA4p686JNylisExuUTfLUQ8SW6uSCG8pYWVPWiZFDT+7zmUendFtrum7FS281y8vFgMJQVDEUQ7FcFAqFsqaKsxfVUDYqm5WRWCc2eHBKPv0gQRDEyHDygiDGYk1s7dgzB3Rbm9R1Ky4u8u234yc+NVDGykaFKhuUkVxatPxfXpZ9EwpJiLGEGGshIcYSYiwhaGFpMBIb1P9729LyQGIkJFEIKiRUESvCvoVBt7VJXXfTC2fjJz5poyoblLGyopQVS4M6scDVJVoIEhJCgoSgRSWEJAQJQULw4BQTITYaSs1fUy++SUJCEGNB2eC51/b7r6/u022t6bqbjr/VqKKKKqooFAZqKDWUGkpVqcLiwHfnubpkK7FOgthajDw4yWSIjYZiqSjbKxs899p+z766T7e9SV1300vnmuWBiRirUoWgrCkriuVSb8xzbZnYUhWJdQoxUoibigenmGwEZc1ysTSQELvy3Gv7PfvqPt3Omq676eIi334naig1lCpixYBCFUNRxeKgvvMuV5bsKNZU2SDWTE8x1YyUNcvF4uBuPPfafs++uk93Z03XrfPCuUahUKWGoooqilixOKjvznN1yVjZVrlNjJQ1k43l4toy15a5PnB94PrA9WUblB0999p+z766T7c7Tdetc/xco4oqiiBFqqSK68vqjXmuLtmVuE3ZZGng6hJXl7m2zLVlFpdZGuxaeO61/Z59dZ9u9yZ13TovnZ8wDEykjJQ1i4PhjXmuLxPrxLYKiZFEiZG4TYzFvXju1f2efXWf7u40XNV1N11c5OV3Q6FQqGJxMLwxz9UlI2VnVUZiRRmpEmWk3JvY5LnX9nv21X26u3at4ZKuW+eF8xMMxVBUsTgYvjvPlSV3VMYSI+U2MRLbKDsqGzz32n7PvrpPd08uNVzQdescPz+hqlSVWlw2vDHPtSW7EhsFiZHEqrKNuKWqbBKrnnt9v2df26e7Z/MN53XdOi+9PWG5sDSoExe4ukzZQdlRlZGyomytjJUdlZHnvrPfs6/t070vbzec0XXrvLfIK+9EnVjg6pKR2EHcURArYlXZUWztue98wrOv7de9b2cmcUrX3eZfHN/vR9pj7krQYtda7ChxuyW8/t6E7gNxahLf0XW3Ob04qfvY+27DK7quux+93Khv6bruPlTfaqfnZs9hTtd195OTp+dmzzVjf67ruvvJX1jRjD2v67r7yfNWNCui/lTXdfeT/2VFs+LU3OzreF3XdfeD10/PnXjNimbNH+u67n7wx25q1nxN13X3gfrvbmpumsjwDbyu67qPs9dPz80ed1Nz08mTJwtf0XXdx9nvWadZJ+orWNR13cfRdeo/WadZ59Tc7Fn8vq7rPo6+dnpu9qx1mttE/S5K13UfK1H/3m2a25yam/0m/kjXdR8n//PU3OxfuU2zhajfROm67uNgiPpXttBs4dTc7DfxB7qu+zj42qm52W/YQrONpH4DV3Rdt5ddTepf2saEbVxYmJ9/aObhSXxR13V71W+dnpv9I9todlJ+G6/oum4v+mvlt+2g2cHpUyeu4VewpOu6vWSg/unpUyeu2cGEO7iwMH/moZmHp/Azuq7bK37r9Nzsf3YHzS5U6jfxvK7r9oLnk+HLdqHZhTMnZ5fwSzir67qPsrPUL506eXLZLkzYpQsL8+89NHPwL8k/xqSu6z5qrlJfOj03+4pdmnAXLizMn5qZOXiC/AKi67qPiiHql0/PzX7dXZhwly4szH/roZmHL+HndF33EVG/dnpu9j+4SxPuwYWF+b/8kYcOZsUXdV33Q1VVXz5zavbfugcT7tF7F+b/7EceOpgVX9R13Q9FVX35zKnZf+0eTXgf3rsw/2cPzRy8RH4W0XXdD8pA/eqZU7P/zvsw4X26sDD/FzMzB79DvoRJXdd92K5G/fLpudn/6H2a8AG4sDD/rZmZg/+bfAkHdF33YTkb9aVTc7Nf9wGY8AG5sDB/6qGZg/+N/DSe0nXdB+15/NzpudlXfEAmfIAuLMy/N3Nw5vdCyN9DdF33fi1F/ZuKXzkzN7vgAxQfkieeOnSUfAVf0HXdvXoFv3J67sQLPgTxIXriycP7xK/j17Ff13W7dSXqd6ry26dPnbjmQxI/AE8+fejpqvwOfhFN13XbKfyB1G+cPjl7wocsfoCefOrQTxdfJj+v67r1ivqj8Jun5ma/6QckfgiefOrQT5T8Kn4RD+i6+9cifj/qd0/NzX7TD1j8ED3x1KHH8M/IP8Hndd3943XqK+Erp+Zmz/ohiY+IJ586dLTkH+Ef4vO67uPndfxx1Nda6hsnT54sP2TxEfTEU4f/ZtTPlvxd/B08rev2njn8edTziT+dOzn7uo+Y2AOeeOrQI+TH8bfwOTyJx/EpHMQ09um6H5yruIQLOI8zOIXvhFdKfev03Ow5H3H/H7jHo73+qqK/AAAAAElFTkSuQmCC",universalLink:"https://templewallet.com",deepLink:"temple://"},{key:"atomex_ios",name:"Atomex Wallet",shortName:"Atomex",color:"",logo:"data:image/png;base64,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",universalLink:"https://atomex.me",deepLink:"atomex://"},{key:"umami_ios",name:"Umami Mobile",shortName:"Umami Mobile",color:"",logo:"data:image/png;base64,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",deepLink:"umami://",universalLink:"https://umamiwallet.com/"},{key:"trust_ios",name:"Trust Wallet",shortName:"Trust Wallet",color:"",supportedInteractionStandards:["wallet_connect"],logo:"data:image/png;base64,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",universalLink:"https://trustwallet.com",deepLink:"trust://"}],ri=zr('',4),ii=zr('',4),oi=zr('',12);function si(e){return(()=>{const t=ri.cloneNode(!0);return tr((n=>Wr(t,e.style?Object.assign({overflow:"visible","font-size":"22px"},e.style):{overflow:"visible","font-size":"22px"},n))),t})()}function ai(e){return(()=>{const t=ii.cloneNode(!0);return tr((n=>Wr(t,e.style?Object.assign({overflow:"visible"},e.style):{overflow:"visible"},n))),t})()}function ci(e){return(()=>{const t=oi.cloneNode(!0);return tr((n=>Wr(t,e.style?Object.assign({},e.style):{},n))),t})()}var li=".loader {\n height: 3px;\n position: relative;\n background-color: #ddd;\n position: absolute;\n width: 100%;\n left: 0px;\n bottom: 0px;\n overflow: hidden;\n}\n\n.loader:before {\n content: '';\n position: absolute;\n left: -50%;\n height: 3px;\n width: 40%;\n background-color: #3880ff;\n -webkit-animation: lineAnim 1s linear infinite;\n -moz-animation: lineAnim 1s linear infinite;\n animation: lineAnim 1s linear infinite;\n}\n\n@keyframes lineAnim {\n 0% {\n left: -40%;\n }\n 50% {\n left: 20%;\n width: 80%;\n }\n 100% {\n left: 100%;\n width: 100%;\n }\n}\n";const ui=zr('
',2),hi=e=>ui.cloneNode(!0),di=zr('
',14),fi=zr('
',2),pi=zr('
',2),gi=zr("
",2),yi=zr('
',2),bi=zr('',2),mi=e=>{let t=null;var n;n=()=>{t=document.body.style.overflow,document.body.style.overflow="hidden"},nr((()=>ir(n))),or((()=>{document.body.style.overflow=t}));const r=window.innerWidth<=800;return(()=>{const t=di.cloneNode(!0),n=t.firstChild,i=n.firstChild,o=i.firstChild,s=o.nextSibling,a=i.nextSibling,c=a.nextSibling;return t.$$click=()=>{e.onCloseClick()},n.$$click=e=>{e.stopPropagation()},Fr(i,(()=>{const t=rr((()=>!!e.onBackClick));return()=>t()&&(()=>{const t=fi.cloneNode(!0);return Br(t,"click",e.onBackClick,!0),Fr(t,kr(ai,{})),t})()})(),o),Fr(i,(()=>{const t=rr((()=>!e.onBackClick));return()=>t()&&pi.cloneNode(!0)})(),o),Fr(o,kr(ci,{})),Br(s,"click",e.onCloseClick,!0),Fr(s,kr(si,{})),Fr(a,kr(hi,{})),Fr(c,(()=>e.content),null),Fr(c,!r&&(()=>{const t=gi.cloneNode(!0);return Fr(t,(()=>{const t=rr((()=>!!e.extraContent));return()=>t()&&yi.cloneNode(!0)})(),null),Fr(t,(()=>e.extraContent),null),tr((()=>Dr(t,e.showMore?"alert-body-extra-show":"alert-body-extra-hide"))),t})(),null),Fr(n,(()=>{const t=rr((()=>!(r||!e.extraContent)));return()=>t()&&(()=>{const t=bi.cloneNode(!0);return t.$$click=()=>{e.onClickShowMore&&e.onClickShowMore()},Fr(t,(()=>e.showMore?"Show less":"Show more")),t})()})(),null),tr((r=>{const i=e.open?"alert-wrapper-show":"alert-wrapper-hide",o=e.open?"alert-modal-show":"alert-modal-hide",s=e.loading?{opacity:1,transition:"all ease 0.3s",height:"14px",overflow:"unset",width:"unset"}:{opacity:0,transition:"all ease 0.3s",height:0,overflow:"hidden",width:0},l=e.extraContent?"":"1.8em";return i!==r._v$&&Dr(t,r._v$=i),o!==r._v$2&&Dr(n,r._v$2=o),r._v$3=Wr(a,s,r._v$3),l!==r._v$4&&c.style.setProperty("margin-bottom",r._v$4=l),r}),{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),t})()};Kr(["click"]);const vi=zr("
",2),wi=zr('

',9),Ei=zr("

",2),Si=zr('
',2),Ii=zr('',2),Ri=zr('

',5),Ai=e=>(()=>{const t=vi.cloneNode(!0);return Fr(t,(()=>{const t=rr((()=>!e.small));return()=>t()&&(()=>{const t=wi.cloneNode(!0),n=t.firstChild,r=n.firstChild,i=n.nextSibling.firstChild;return Br(t,"click",e.onClick,!0),Fr(r,(()=>e.name)),Fr(n,(()=>{const t=rr((()=>!!e.description));return()=>t()&&(()=>{const t=Ei.cloneNode(!0);return Fr(t,(()=>e.description)),t})()})(),null),Fr(n,(()=>{const t=rr((()=>!!(e.tags&&e.tags.length>0)));return()=>t()&&(()=>{const t=Si.cloneNode(!0);return Fr(t,kr(Cr,{get each(){return e.tags},children:e=>(()=>{const t=Ii.cloneNode(!0);return Fr(t,e),t})()})),t})()})(),null),tr((r=>{const o="wallet-main "+(e.mobile?"wallet-main-mobile":""),s="wallet-main-left "+(e.mobile?"wallet-main-left-mobile":""),a=e.image;return o!==r._v$&&Dr(t,r._v$=o),s!==r._v$2&&Dr(n,r._v$2=s),a!==r._v$3&&qr(i,"src",r._v$3=a),r}),{_v$:void 0,_v$2:void 0,_v$3:void 0}),t})()})(),null),Fr(t,(()=>{const t=rr((()=>!!e.small));return()=>t()&&(()=>{const t=Ri.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Br(t,"click",e.onClick,!0),Fr(r,(()=>e.name)),tr((()=>qr(n,"src",e.image))),t})()})(),null),tr((()=>Dr(t,e.disabled?"wallet-disabled":""))),t})();Kr(["click"]);const xi=zr('

Connect Wallet

If you don\'t have a wallet, you can select a provider and create one now. Learn more
',12),Mi=zr('

Other Wallets

See other wallets you can use to connect

',13),Ti=e=>{const t=window.innerWidth<=800;return(()=>{const n=xi.cloneNode(!0),r=n.firstChild,i=r.firstChild.nextSibling.firstChild.nextSibling,o=r.nextSibling;return i.$$click=()=>e.onClickLearnMore(),Fr(o,kr(Cr,{get each(){return e.wallets},children:n=>kr(Ai,{get disabled(){return e.disabled},mobile:t,get name(){return n.name},get description(){return n.descriptions.join(" & ")},get image(){return n.image},onClick:()=>e.onClickWallet(n.id),get tags(){return n.tags}})}),null),Fr(o,(()=>{const t=rr((()=>!!e.otherWallets));return()=>t()&&(()=>{const t=Mi.cloneNode(!0),n=t.firstChild.nextSibling.firstChild,r=n.nextSibling,i=r.nextSibling;return t.$$click=()=>{e.otherWallets&&e.otherWallets.onClick()},tr((t=>{const o=e.otherWallets.images[0],s=e.otherWallets.images[1],a=e.otherWallets.images[2];return o!==t._v$&&qr(n,"src",t._v$=o),s!==t._v$2&&qr(r,"src",t._v$2=s),a!==t._v$3&&qr(i,"src",t._v$3=a),t}),{_v$:void 0,_v$2:void 0,_v$3:void 0}),t})()})(),null),n})()};Kr(["click"]);const Oi=zr('
',6),Pi=e=>(()=>{const t=Oi.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Fr(n,kr(Cr,{get each(){return e.wallets},children:t=>kr(Ai,{get disabled(){return e.disabled},get name(){return t.name},get description(){return t.descriptions.join(" & ")},get image(){return t.image},get small(){return e.small},onClick:()=>{e.onClickWallet&&e.onClickWallet(t.id)}})})),r.$$click=()=>e.onClickOther(),t})();Kr(["click"]);const Ni=zr('

',6),ki=zr("
",2),Ci=zr('
',2),Ui=zr('
',2),Li=zr("",2),ji=e=>(()=>{const t=Ni.cloneNode(!0),n=t.firstChild,r=n.nextSibling;return Fr(t,(()=>{const t=rr((()=>!!e.icon));return()=>t()&&(()=>{const t=ki.cloneNode(!0);return Fr(t,(()=>e.icon)),tr((n=>{const r="info-icon "+(e.iconBadge?"info-badge":""),i=e.bigIcon?{"font-size":"3.4em"}:{};return r!==n._v$&&Dr(t,n._v$=r),n._v$2=Wr(t,i,n._v$2),n}),{_v$:void 0,_v$2:void 0}),t})()})(),n),Fr(n,(()=>e.title)),Fr(t,(()=>{const t=rr((()=>!!e.description));return()=>t()&&(()=>{const t=Ci.cloneNode(!0);return Fr(t,(()=>e.description)),t})()})(),r),Fr(t,(()=>{const t=rr((()=>!!e.data));return()=>t()&&(()=>{const t=Ui.cloneNode(!0);return Fr(t,(()=>e.data)),t})()})(),r),Fr(r,kr(Cr,{get each(){return e.buttons},children:e=>(()=>{const t=Li.cloneNode(!0);return Br(t,"click",e.onClick,!0),Fr(t,(()=>e.label)),tr((()=>Dr(t,"secondary"!==e.type?"info-button":"info-button-secondary"))),t})()})),tr((()=>Dr(t,"info-wrapper "+(e.border?"info-border":"")))),t})();Kr(["click"]);const zi=(e,t)=>`${e}?type=tzip10&data=${t}`,Ki=new it("QR"),qi=(e,t,n)=>{e.length>500&&Ki.warn("getQrData",'The size of the payload in the QR code is quite long and some devices might not be able to scan it anymore. To reduce the QR size, try using a shorter "name", "appUrl" and "iconUrl"');try{return new(Qr())({color:"black",content:e,join:!0,ecl:"L",height:t,width:n}).svg()}catch(e){throw Xr.error("error",e),e}};const Di=zr('
',6),Bi=zr("

Or scan to connect

",2),Wi=zr("",2),Fi=zr('Learn more',2),Vi=zr('

Copied!

',8),Hi=zr('

Copy to clipboard

',8),Gi=e=>{const[t,n]=er(!1),r=document.createElement("div");function i(){return _r(this,void 0,void 0,(function*(){e.onClickQrCode&&e.onClickQrCode(),navigator.clipboard.writeText(e.code).then((()=>{t()||(n(!0),setTimeout((()=>{n(!1)}),3e3))})).catch((e=>{Xr.error("Error copying text: ",e)}))}))}return r.classList.add("qr-svg-wrapper"),nr((()=>{const t=e.code.startsWith("wc:")?e.code:zi("tezos://",e.code),n=e.isMobile?qi(t,300,300):qi(t,160,160);r.innerHTML=n})),(()=>{const n=Di.cloneNode(!0),o=n.firstChild,s=o.nextSibling;return Fr(o,(()=>{const t=rr((()=>!e.isMobile));return()=>t()&&Bi.cloneNode(!0)})(),null),Fr(o,(()=>{const t=rr((()=>!e.isMobile));return()=>t()&&(()=>{const t=Wi.cloneNode(!0);return Fr(t,(()=>`Open ${e.walletName} Wallet on your mobile phone and scan.`)),t})()})(),null),Fr(o,(()=>{const t=rr((()=>!!e.isMobile));return()=>t()&&(()=>{const t=Wi.cloneNode(!0);return Fr(t,(()=>`Scan QR code with a ${e.isWalletConnect?"WalletConnect":"Beacon"}-compatible wallet.`),null),Fr(t,(()=>{const t=rr((()=>!!e.onClickLearnMore));return()=>t()&&(()=>{const t=Fi.cloneNode(!0);return t.$$click=()=>{e.onClickLearnMore&&e.onClickLearnMore()},t})()})(),null),t})()})(),null),Fr(o,(()=>{const t=rr((()=>!(e.isMobile||!e.onClickLearnMore)));return()=>t()&&(()=>{const t=Fi.cloneNode(!0);return t.$$click=()=>{e.onClickLearnMore&&e.onClickLearnMore()},t.style.setProperty("margin-top","auto"),t})()})(),null),s.$$click=i,Fr(s,r,null),Fr(s,(()=>{const e=rr((()=>!!t()));return()=>e()&&Vi.cloneNode(!0)})(),null),Fr(s,(()=>{const e=rr((()=>!t()));return()=>e()&&Hi.cloneNode(!0)})(),null),tr((t=>{const r=e.isMobile?{"flex-direction":"column","align-items":"center","justify-content":"center",height:"340px","text-align":"center",border:"none"}:{},i=e.isMobile?{"background-color":"transparent"}:{};return t._v$=Wr(n,r,t._v$),t._v$2=Wr(s,i,t._v$2),t}),{_v$:void 0,_v$2:void 0}),n})()};Kr(["click"]);const Ji=(e,t)=>t.test(e.navigator.userAgent),Zi=e=>((e,t)=>e.matchMedia(t).matches)(e,"(any-pointer:coarse)"),Yi=e=>Ji(e,/iPhone|iPod/i)||(e=>!!Ji(e,/iPad/i)||!(!Ji(e,/Macintosh/i)||!Zi(e)))(e),Qi=e=>Ji(e,/android|sink/i);let Xi=le.LIGHT;const _i=e=>{Xi=e},$i=()=>Xi,eo=zr("
",2),to=zr("
",10),no=zr('',6),ro=zr('',8),io=zr('',8),[oo,so]=er(!1),[ao,co]=er(!1),[lo,uo]=er(!1),[ho,fo]=er(""),[po,go]=er(void 0),[yo,bo]=er("top-wallets"),[mo,vo]=er("top-wallets"),[wo,Eo]=er(void 0);let So=null;const Io=()=>_r(void 0,void 0,void 0,(function*(){return new Promise((e=>_r(void 0,void 0,void 0,(function*(){So&&oo()&&(so(!1),setTimeout((()=>{So&&So(),document.getElementById("beacon-alert-wrapper")&&document.getElementById("beacon-alert-wrapper").remove()}),500)),e()}))))})),Ro=e=>_r(void 0,void 0,void 0,(function*(){var t,n,r;const i=null===(t=e.pairingPayload)||void 0===t?void 0:t.p2pSyncCode(),o=null===(n=e.pairingPayload)||void 0===n?void 0:n.walletConnectSyncCode();if(Eo(e.analytics),null==i||i.then((()=>{Xr.log("P2P LOADED")})),null==o||o.then((()=>{Xr.log("WC LOADED")})),!oo()){const t=yield kn.getAvailableExtensions(),n=()=>_r(void 0,void 0,void 0,(function*(){if(e.pairingPayload){const e=new xt,t=yield e.serialize(yield i);fo(t)}}));vo("top-wallets"),go(void 0),localStorage.removeItem(se.LAST_SELECTED_WALLET);const s=document.createElement("div");s.setAttribute("id","beacon-alert-wrapper"),s.style.height="0px";const a=s.attachShadow({mode:"open"}),c=document.createElement("style");c.textContent=".alert-wrapper-show {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n height: 100%;\n width: 100vw;\n overflow: hidden;\n top: 0px;\n left: 0px;\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 1;\n transition: all ease 0.3s;\n z-index: 99999;\n}\n\n.alert-wrapper-hide {\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n height: 100%;\n width: 100vw;\n overflow: hidden;\n top: 0px;\n left: 0px;\n background-color: rgba(0, 0, 0, 0.6);\n opacity: 0;\n transition: all ease 0.3s;\n z-index: 99999;\n}\n\n.theme__dark .alert-modal-show {\n background-color: #27334c;\n}\n\n.theme__dark .alert-modal-hide {\n background-color: #27334c;\n}\n\n.theme__dark .alert-footer {\n color: white;\n -webkit-box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n -moz-box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n box-shadow: 0px -4px 12px rgb(0 0 0 / 20%);\n}\n\n.theme__dark .alert-logo svg g {\n fill: white;\n}\n\n.alert-modal-show {\n background-color: white;\n border-radius: 32px;\n transition: all ease 0.3s;\n transform: translateY(0px);\n opacity: 1;\n width: 480px;\n}\n\n.alert-modal-hide {\n background-color: white;\n border-radius: 32px;\n transition: all ease 0.3s;\n transform: translateY(24px);\n opacity: 1;\n width: 480px;\n}\n\n.alert-modal-loading-wrapper {\n width: 480px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n}\n\n.alert-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 1.8em;\n padding-top: 1.2em;\n padding-bottom: 0px;\n}\n\n.alert-button-icon-empty {\n width: 24px;\n height: 24px;\n padding: 2px;\n}\n\n.alert-button-icon {\n width: 24px;\n height: 24px;\n padding: 2px;\n border-radius: 100%;\n border: 1px solid #f0f0f1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n fill: #64748b;\n transition: all ease 0.2s;\n}\n\n.alert-button-icon:hover {\n background-color: #475569;\n border: 1px solid #475569;\n fill: #e2e8f0;\n}\n\n.alert-logo {\n margin: 0px 6em;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.alert-logo svg {\n height: 28px;\n}\n\n.alert-body {\n padding: 1.8em;\n padding-bottom: 0px;\n transition: all ease 0.3s;\n}\n\n.alert-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n color: grey;\n cursor: pointer;\n -webkit-box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n -moz-box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n box-shadow: 0px -4px 12px rgb(50 50 50 / 6%);\n font-size: 0.938rem;\n font-weight: bold;\n height: 64px;\n}\n\n.alert-body-extra-show {\n transition: all ease 0.3s;\n overflow: hidden;\n max-height: 35vh;\n overflow-y: auto;\n}\n\n.alert-body-extra-hide {\n transition: all ease 0.3s;\n overflow: hidden;\n max-height: 0px;\n}\n\n.alert-divider {\n border-top: 1px solid #aaaaaa42;\n width: 100%;\n border-radius: 6px;\n}\n\n@media only screen and (max-width: 800px) {\n .alert-logo {\n margin: 0px 2em;\n }\n\n .alert-wrapper-show {\n align-items: flex-end;\n width: 100%;\n }\n\n .alert-wrapper-hide {\n align-items: flex-end;\n width: 100%;\n }\n\n .alert-modal-show {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n padding-bottom: 1.8em;\n width: 100%;\n }\n\n .alert-modal-hide {\n border-bottom-left-radius: 0px;\n border-bottom-right-radius: 0px;\n padding-bottom: 1.8em;\n }\n}\n\n@media only screen and (max-width: 300px) {\n .alert-wrapper-show {\n align-items: flex-end;\n width: 100vw;\n }\n\n .alert-wrapper-hide {\n align-items: flex-end;\n width: 100vw;\n }\n\n .alert-body {\n padding: 0.8em;\n }\n\n .alert-body {\n padding: 0.8em;\n padding-top: 0.4em;\n }\n\n .alert-logo {\n margin: 0px;\n transform: scale(0.8);\n }\n}\n",a.appendChild(c);const l=document.createElement("style");l.textContent=".top-wallets-wrapper {\n margin-bottom: 1.8em;\n}\n\n.top-wallets-info {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n.theme__dark .top-wallets-info h3 {\n color: white;\n}\n\n.theme__dark .top-wallets-info span {\n color: #b5b8be;\n}\n\n.theme__dark .top-wallets-other-wallets-left h3 {\n color: white;\n}\n\n.top-wallets-info h3 {\n text-align: center;\n color: #334155;\n margin: 0px;\n font-size: 0.938rem;\n}\n\n.top-wallets-info span {\n text-align: center;\n max-width: 300px;\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 6px 0px 12px 0px;\n}\n\n.top-wallets-learn-more {\n text-decoration: underline;\n cursor: pointer;\n font-size: 0.95em !important;\n}\n\n.top-wallets-wallets-main {\n margin-top: 1em;\n grid-template-columns: repeat(2, 1fr);\n display: grid;\n gap: 1em;\n}\n\n.top-wallets-other-wallets {\n display: flex;\n gap: 1.25em;\n justify-content: space-between;\n border-radius: 12px;\n padding: 1.25em;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.top-wallets-other-wallets-left {\n max-width: 148px;\n}\n\n.top-wallets-other-wallets-left h3 {\n color: #334155;\n margin: 0px;\n font-size: 1em;\n}\n\n.top-wallets-other-wallets-left p {\n max-width: 400px;\n font-size: 0.85em;\n font-weight: 300;\n color: #94a3b8;\n line-height: 1.35em;\n margin: 0px;\n font-size: 0.75em;\n}\n\n.top-wallets-other-wallets-right {\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.top-wallets-other-wallets-right img {\n border-radius: 8px;\n width: 2.4em;\n height: 2.4em;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.top-wallets-other-wallets-center-wallet {\n transform: perspective(500px) translateZ(100px);\n}\n\n@media only screen and (max-width: 800px) {\n .top-wallets-info h3 {\n font-size: 1em;\n }\n\n .top-wallets-info p {\n font-size: 0.75em;\n }\n\n .top-wallets-other-wallets {\n flex-direction: column;\n text-align: center;\n justify-content: center;\n align-items: center;\n }\n\n .top-wallets-other-wallets-left {\n order: 1;\n }\n\n .top-wallets-other-wallets-left h3 {\n font-size: 0.85em;\n }\n\n .top-wallets-other-wallets-left p {\n font-size: 0.65em;\n }\n}\n\n@media only screen and (max-width: 400px) {\n .top-wallets-other-wallets-right {\n max-width: 50px;\n transform: scale(0.8);\n }\n}\n",a.appendChild(l);const u=document.createElement("style");u.textContent=".wallets-button {\n border-radius: 6px;\n background-color: transparent;\n border: 1px solid #3880ff;\n color: #3880ff;\n width: 100%;\n padding: 12px 0px;\n margin-bottom: 1.8em;\n transition: all ease 0.2s;\n cursor: pointer;\n font-size: 0.9em;\n}\n\n.wallets-button:hover {\n color: white;\n background-color: #3880ff;\n}\n\n.wallets-list-main-wrapper {\n position: relative;\n}\n\n.wallets-list-wrapper {\n display: grid;\n overflow-y: auto;\n grid-template-columns: repeat(4, 1fr);\n padding: 1.8em 0px;\n gap: 1.2em 0em;\n max-height: 180px;\n}\n\n@media only screen and (max-width: 800px) {\n .wallets-list-wrapper {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-height: 300px;\n padding: 1.6em 0.6em;\n margin-top: 0px;\n }\n\n .wallets-list-main-wrapper::before {\n position: absolute;\n top: 0px;\n content: '';\n left: -24px;\n width: calc(100% + 48px);\n background: radial-gradient(\n circle,\n rgba(171, 171, 171, 0.7329525560224089) 0%,\n rgba(193, 193, 193, 0.1279105392156863) 100%\n );\n height: 1px;\n }\n}\n",a.appendChild(u);const h=document.createElement("style");h.textContent=".wallet-main {\n display: flex;\n gap: 1.25em;\n justify-content: space-between;\n border-radius: 12px;\n padding: 15px;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-disabled {\n opacity: 0.5;\n}\n\n.wallet-main:hover {\n transform: scale(1.01);\n}\n\n.wallet-main:active {\n transform: scale(0.99);\n}\n\n.wallet-main-left {\n max-width: 148px;\n flex: 1;\n}\n\n.theme__dark .wallet-main-left h3 {\n color: white;\n}\n\n.theme__dark .top-wallets-info p {\n color: #b5b8be;\n}\n\n.theme__dark .wallet-main-right {\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n}\n\n.theme__dark .wallet-small img {\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 63%);\n}\n\n.theme__dark .wallet-small h3 {\n color: white;\n}\n\n.wallet-main-left h3 {\n color: #1c1e21;\n margin: 0px;\n font-size: 1em;\n}\n\n.wallet-main-left p {\n max-width: 400px;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 0px;\n font-size: 0.65em;\n}\n\n.wallet-main-right {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 8px;\n overflow: hidden;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-main-right img {\n width: 3.2em;\n height: 3.2em;\n}\n\n.wallet-main-tags {\n display: flex;\n gap: 6px;\n}\n\n.wallet-main-tag {\n color: #3880ff;\n margin: 0px;\n font-size: 0.75em;\n font-weight: 600;\n margin-top: 6px;\n text-transform: uppercase;\n}\n\n.wallet-small {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: 0.5em;\n}\n\n.wallet-small img {\n padding: 0.4em;\n border-radius: 10px;\n width: 2.5em;\n height: 2.5em;\n cursor: pointer;\n transition: all ease 0.2s;\n\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.wallet-small img:hover {\n transform: scale(1.01);\n}\n\n.wallet-small img:active {\n transform: scale(0.99);\n}\n\n.wallet-small h3 {\n color: #334155;\n margin: 0px;\n font-size: 0.8em;\n text-align: center;\n}\n\n.wallet-main-mobile {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 1em;\n}\n\n.wallet-main-left-mobile {\n order: 1;\n}\n\n.wallet-main-left-mobile h3 {\n font-size: 0.9em;\n text-align: center;\n}\n\n.wallet-main-left-mobile p {\n font-size: 0.65em;\n text-align: center;\n}\n\n@media only screen and (max-width: 800px) {\n .wallet-main {\n padding: 0.65em 15px;\n }\n\n .wallet-main-mobile {\n padding: 1.25em;\n }\n}\n",a.appendChild(h);const d=document.createElement("style");d.textContent=".info-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5em;\n border-radius: 10px;\n padding: 30px;\n}\n\n.info-border {\n border: 1px solid #aaaaaa42;\n}\n\n.info-icon {\n width: 40px;\n height: 40px;\n border-radius: 6px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 28px;\n margin-bottom: 0.2em;\n}\n\n.info-badge {\n background-color: #3880ff;\n font-size: 38px;\n -webkit-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n -moz-box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n box-shadow: 0px 0px 12px -4px rgb(0 0 0 / 30%);\n}\n\n.theme__dark .info-title {\n color: white;\n}\n\n.theme__dark .info-description {\n color: #aeaeae;\n}\n\n.info-title {\n text-align: center;\n color: #334155;\n margin: 0px;\n font-size: 1em;\n}\n\n.info-description {\n text-align: center;\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.25em;\n margin: 6px 0px 12px 0px;\n margin: 0px;\n max-width: 300px;\n}\n\n.info-data {\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.25em;\n margin: 6px 0px 12px 0px;\n margin: 0px;\n overflow: scroll;\n max-height: 300px;\n}\n\n.info-buttons {\n display: flex;\n align-items: center;\n gap: 0.6em;\n}\n\n.info-button {\n border-radius: 6px;\n background-color: #3880ff;\n border: 1px solid #3880ff;\n color: white;\n padding: 0.6em 1.2em;\n width: 180px;\n transition: all ease 0.2s;\n cursor: pointer;\n margin-top: 1em;\n font-size: 0.8em;\n}\n\n.info-button:hover {\n background-color: #166afc;\n}\n\n.info-button-secondary {\n border-radius: 6px;\n background-color: transparent;\n border: 1px solid #3880ff;\n color: #3880ff;\n padding: 0.6em 1.2em;\n width: 180px;\n transition: all ease 0.2s;\n cursor: pointer;\n margin-top: 1em;\n}\n\n.info-button-secondary:hover {\n background-color: #e8f0ff;\n}\n\n@media only screen and (max-width: 800px) {\n .info-title {\n font-size: 0.9em;\n line-height: 1em;\n }\n\n .info-description {\n font-size: 0.65em;\n }\n\n .qr-more-info {\n font-size: 0.75em;\n }\n\n .info-wrapper {\n max-height: 180px;\n padding: 1.2em;\n }\n\n .info-icon {\n width: 40px;\n height: 40px;\n font-size: 1.8em;\n }\n\n .info-button {\n padding: 0.5em 1.6em;\n font-size: 0.7em;\n }\n}\n",a.appendChild(d);const f=document.createElement("style");f.textContent=".qr-wrapper {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n gap: 0.5em;\n border: 1px solid #aaaaaa42;\n border-radius: 10px;\n padding: 30px;\n height: 200px;\n}\n\n.qr-left {\n display: flex;\n flex-direction: column;\n max-width: 16em;\n height: 100%;\n}\n\n.qr-left h3 {\n color: #334155;\n margin: 0px;\n margin-bottom: 0.4em;\n font-size: 1em;\n}\n\n.theme__dark .qr-left h3 {\n color: white;\n}\n\n.theme__dark .qr-left span {\n color: #aeaeae;\n}\n\n.theme__dark .qr-copy-wrapper p {\n color: #aeaeae;\n}\n\n.qr-left span {\n font-size: 0.8em;\n font-weight: 300;\n color: #7c828b;\n line-height: 1.35em;\n margin: 0px;\n}\n\n.qr-more-info {\n font-size: 0.95em !important;\n text-decoration: underline;\n margin-left: 6px !important;\n cursor: pointer;\n}\n\n.qr-right {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n border-radius: 6px;\n transition: all ease 0.2s;\n cursor: pointer;\n}\n\n.theme__dark .qr-right:hover {\n background-color: rgba(238, 238, 238, 0.492);\n}\n\n.qr-right:hover {\n background-color: rgb(238, 238, 238);\n}\n\n.qr-copy-wrapper {\n display: flex;\n align-items: center;\n gap: 0.6em;\n color: #7c828b;\n margin-bottom: 8px;\n margin-top: 18px;\n}\n\n.qr-copy-wrapper svg {\n font-size: 1em;\n}\n\n.qr-copy-wrapper p {\n font-size: 0.8em;\n margin: 0px;\n}\n\n.qr-svg-wrapper {\n background-color: white;\n border-radius: 10px;\n}\n\n.qr-svg-wrapper svg rect {\n fill: transparent !important;\n}\n\n@media only screen and (max-width: 800px) {\n .qr-wrapper {\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 340px;\n }\n\n .qr-left {\n margin: 0.6em 0px;\n }\n\n .qr-left h3 {\n font-size: 1em;\n line-height: 1em;\n }\n\n .qr-left p {\n font-size: 0.75em;\n text-align: center;\n }\n\n .qr-left > div {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .qr-more-info {\n font-size: 0.75em;\n }\n}\n",a.appendChild(f);const p=document.createElement("style");p.textContent=li,a.appendChild(p);const g=document.createElement("style");g.textContent="* { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;}",a.appendChild(g);const y=[...ei.map((e=>({id:e.key,key:e.key,name:e.shortName,image:e.logo,description:"Desktop App",type:"desktop",link:e.downloadLink,deepLink:e.deepLink}))),...$r.map((e=>({id:e.id,key:e.key,name:e.shortName,image:e.logo,description:"Browser Extension",type:"extension",link:e.link}))),...ni.map((e=>({id:e.key,key:e.key,name:e.shortName,image:e.logo,description:"Mobile App",supportedInteractionStandards:e.supportedInteractionStandards,type:"ios",link:e.universalLink,deepLink:e.deepLink}))),...ti.map((t=>{var n,r;const i=t.links[null!==(r=null===(n=e.pairingPayload)||void 0===n?void 0:n.preferredNetwork)&&void 0!==r?r:$.MAINNET];return{id:t.key,key:t.key,name:t.shortName,image:t.logo,description:"Web App",type:"web",link:null!=i?i:t.links.mainnet}}))],b=function(e){return e.map((e=>{const t=["Web","web","App","app","Mobile","mobile"];for(let n=0;ne.name)).includes(r.name)){const e=t.findIndex((e=>e.name===r.name));e<0&&Xr.error("There should be a wallet"),t[e].descriptions.includes(r.description)||t[e].descriptions.push(r.description),t[e].types.push(r.type),t[e].deepLink=r.deepLink,t[e].firefoxId=r.key.includes("firefox")?r.id:t[e].firefoxId}else t.push(Object.assign(Object.assign({},r),{descriptions:[r.description],types:[r.type],firefoxId:r.key.includes("firefox")?r.id:void 0}))}return t}(b),v=["kukai","temple","naan","umami"],w=function(e,t){const n=t.slice(0,4),r=[],i=[];for(let t of e){let e;n.some(((n,r)=>{const i=t.key.startsWith(n);return i&&(e=r),i})),void 0!==e?r[e]=t:i.push(t)}return i.sort(((e,t)=>e.namet.name?1:0)),[...r,...i]}(m,null!==(r=e.featuredWallets)&&void 0!==r?r:v),E=window.innerWidth<=800,S=()=>{var e;null===(e=wo())||void 0===e||e.track("click","ui","show more wallets"),uo(!lo())},I=()=>{var e;null===(e=wo())||void 0===e||e.track("click","ui","learn more"),bo(mo()),vo("help"),uo(!1)},R=()=>{var e;null===(e=wo())||void 0===e||e.track("click","ui","copy QR code to clipboard")},A=()=>{new Promise((e=>_r(void 0,void 0,void 0,(function*(){So&&oo()&&(so(!1),setTimeout((()=>{So&&So(),document.getElementById("beacon-alert-wrapper")&&document.getElementById("beacon-alert-wrapper").remove()}),500)),e()})))),e.closeButtonCallback&&e.closeButtonCallback()},x=t=>_r(void 0,void 0,void 0,(function*(){var r,s,a;if(ao())return;co(!0),uo(!1);const c=w.find((e=>e.id===t));if(go(c),(null==c?void 0:c.key)&&(null===(r=wo())||void 0===r||r.track("click","ui","opened wallet",{key:c.key}),localStorage.setItem(se.LAST_SELECTED_WALLET,c.key)),null==c?void 0:c.types.includes("web")){if(e.pairingPayload){const e=new xt,t=yield e.serialize(yield i),n=zi(c.link,t);window.open(n,"_blank","noopener")}co(!1)}else if(c&&(null===(s=c.supportedInteractionStandards)||void 0===s?void 0:s.includes("wallet_connect"))){const e=null===(a=yield o)||void 0===a?void 0:a.uri;if(e)if(Qi(window)||Yi(window)){let t=`https://link.trustwallet.com/wc?uri=${encodeURIComponent(e)}`;if((e=>{var t;return e&&1==(null===(t=e.ethereum)||void 0===t?void 0:t.isTrust)})(window)&&Qi(window))t=`${e}`,window.location.href=t;else if(Qi(window))window.open(t,"_blank","noopener");else if(Yi(window)){const e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("rel","noopener"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}}else fo(e),vo("install");co(!1)}else if((null==c?void 0:c.types.includes("ios"))&&E){if(fo(""),e.pairingPayload){const e=new xt,t=yield e.serialize(yield i),n=zi(Yi(window)&&c.deepLink?c.deepLink:Qi(window)?"tezos://":c.link,t);if(Qi(window))window.open(n,"_blank","noopener");else if(Yi(window)){const e=document.createElement("a");e.setAttribute("href",n),e.setAttribute("rel","noopener"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}}co(!1)}else yield n(),co(!1),vo("install")})),M=()=>_r(void 0,void 0,void 0,(function*(){var e;null===(e=wo())||void 0===e||e.track("click","ui","other wallet"),uo(!1),go(Object.assign(Object.assign({},w[0]),{name:"",types:["ios"]})),localStorage.setItem(se.LAST_SELECTED_WALLET,w[0].key),n(),vo("install")})),T=()=>_r(void 0,void 0,void 0,(function*(){var t,n,r,i,o,s;if(null===(t=wo())||void 0===t||t.track("click","ui","open extension",{key:null===(n=po())||void 0===n?void 0:n.key}),uo(!1),null===(r=e.pairingPayload)||void 0===r?void 0:r.postmessageSyncCode){const t=new xt,n=yield t.serialize(yield e.pairingPayload.postmessageSyncCode()),r={target:ne.EXTENSION,payload:n,targetId:null===(i=po())||void 0===i?void 0:i.id};if(Ke.postMessage(r,Ke.location.origin),null===(o=po())||void 0===o?void 0:o.firefoxId){const e={target:ne.EXTENSION,payload:n,targetId:null===(s=po())||void 0===s?void 0:s.firefoxId};Ke.postMessage(e,Ke.location.origin)}}})),O=()=>_r(void 0,void 0,void 0,(function*(){var e,t,n;null===(e=wo())||void 0===e||e.track("click","ui","install extension",{key:null===(t=po())||void 0===t?void 0:t.key}),uo(!1),window.open((null===(n=po())||void 0===n?void 0:n.link)||"","_blank","noopener")})),P=()=>_r(void 0,void 0,void 0,(function*(){var t,n,r,i,o;if(uo(!1),null===(t=wo())||void 0===t||t.track("click","ui","open desktop",{key:null===(n=po())||void 0===n?void 0:n.key}),null===(r=e.pairingPayload)||void 0===r?void 0:r.p2pSyncCode){const t=new xt,n=yield t.serialize(yield null===(i=e.pairingPayload)||void 0===i?void 0:i.p2pSyncCode()),r=zi((null===(o=po())||void 0===o?void 0:o.deepLink)||"",n);window.open(r,"_blank","noopener")}})),N=()=>_r(void 0,void 0,void 0,(function*(){var e,t,n;null===(e=wo())||void 0===e||e.track("click","ui","download desktop",{key:null===(t=po())||void 0===t?void 0:t.key}),uo(!1),window.open((null===(n=po())||void 0===n?void 0:n.link)||"","_blank","noopener")})),k=()=>{var e,n;return t.map((e=>e.id)).includes((null===(e=po())||void 0===e?void 0:e.firefoxId)||"")||t.map((e=>e.id)).includes((null===(n=po())||void 0===n?void 0:n.id)||"")},C=$i();So=jr((()=>{var t,n,r,i,o,s,a,c,l,u,h,d,f,p,g,y,b,m;return(()=>{const v=eo.cloneNode(!0);return Dr(v,`theme__${C}`),Fr(v,(()=>{const v=rr((()=>!!e.pairingPayload));return()=>v()&&kr(mi,{get loading(){return ao()},get open(){return oo()},get showMore(){return lo()},get content(){return(()=>{const e=to.cloneNode(!0),v=e.firstChild,S=v.nextSibling,A=S.nextSibling,C=A.nextSibling;return Fr(v,(()=>{const e=rr((()=>!(E||!(null===(t=po())||void 0===t?void 0:t.types.includes("extension")))));return()=>e()&&kr(ji,{border:!0,get title(){return rr((()=>!!k()))()?"Use Browser Extension":`Install ${null===(n=po())||void 0===n?void 0:n.name} Wallet`},get description(){return rr((()=>!!k()))()?`Please connect below to use your ${null===(r=po())||void 0===r?void 0:r.name} Wallet browser extension.`:`To connect your ${null===(i=po())||void 0===i?void 0:i.name} Wallet, install the browser extension.`},get buttons(){return k()?[{label:"Connect now",type:"primary",onClick:()=>T()}]:[{label:"Install extension",type:"primary",onClick:()=>O()}]}})})(),null),Fr(v,(()=>{const e=rr((()=>!(E||!(null===(o=po())||void 0===o?void 0:o.types.includes("desktop")))));return()=>e()&&kr(ji,{border:!0,title:"Open Desktop App",description:"If you don't have the desktop app installed, click below to download it.",buttons:[{label:"Open desktop app",type:"primary",onClick:()=>P()},{label:"Download desktop app",type:"secondary",onClick:()=>N()}]})})(),null),Fr(v,(()=>{const e=rr((()=>!!(!E&&ho().length>0&&(null===(s=po())||void 0===s?void 0:s.types.includes("ios"))&&(null===(a=po())||void 0===a?void 0:a.types.length)>1)));return()=>e()&&kr(Gi,{get isWalletConnect(){return(null===(l=null===(c=po())||void 0===c?void 0:c.supportedInteractionStandards)||void 0===l?void 0:l.includes("wallet_connect"))||!1},isMobile:!1,get walletName(){return(null===(u=po())||void 0===u?void 0:u.name)||"AirGap"},get code(){return ho()},onClickLearnMore:I,onClickQrCode:R})})(),null),Fr(v,(()=>{const e=rr((()=>!!(!E&&ho().length>0&&(null===(h=po())||void 0===h?void 0:h.types.includes("ios"))&&(null===(d=po())||void 0===d?void 0:d.types.length)<=1)));return()=>e()&&kr(Gi,{get isWalletConnect(){return(null===(p=null===(f=po())||void 0===f?void 0:f.supportedInteractionStandards)||void 0===p?void 0:p.includes("wallet_connect"))||!1},isMobile:!0,get walletName(){return(null===(g=po())||void 0===g?void 0:g.name)||"Airgap"},get code(){return ho()},onClickLearnMore:I,onClickQrCode:R})})(),null),Fr(v,(()=>{const e=rr((()=>!!(E&&ho().length>0)));return()=>e()&&kr(Gi,{get isWalletConnect(){return(null===(b=null===(y=po())||void 0===y?void 0:y.supportedInteractionStandards)||void 0===b?void 0:b.includes("wallet_connect"))||!1},isMobile:!0,get walletName(){return(null===(m=po())||void 0===m?void 0:m.name)||"Airgap"},get code(){return ho()},onClickLearnMore:I,onClickQrCode:R})})(),null),Fr(S,kr(Pi,{get disabled(){return ao()},get wallets(){return w.slice(-(w.length-(E?3:4)))},onClickWallet:x,onClickOther:M})),Fr(A,kr(ji,{iconBadge:!0,get icon(){return no.cloneNode(!0)},title:"What is a wallet?",description:"Wallets let you send, receive, store and interact with digital assets. Your wallet can be used as an easy way to login, instead of having to remember a password."}),null),Fr(A,kr(ji,{iconBadge:!0,get icon(){return ro.cloneNode(!0)},title:"Not sure where to start?",description:"If you are new to the Web3, we recommend that you start by creating a Kukai wallet. Kukai is a fast way of creating your first wallet using your preffered social account."}),null),Fr(C,kr(Ti,{get disabled(){return ao()},get wallets(){return E?w.slice(0,3):w.slice(0,4)},onClickWallet:x,onClickLearnMore:I,get otherWallets(){return E?{images:[w[3].image,w[4].image,w[5].image],onClick:()=>vo("wallets")}:void 0}})),tr((e=>{const t="install"===mo()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"},n="wallets"===mo()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s"},r="help"===mo()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s",display:"flex","flex-direction":"column",gap:"0.9em"},i="install"!==mo()&&"wallets"!==mo()&&"help"!==mo()?{opacity:1,height:"unset",overflow:"unset",transform:"scale(1)",transition:"all ease 0.3s"}:{opacity:0,height:0,overflow:"hidden",transform:"scale(1.1)",transition:"all ease 0.3s"};return e._v$=Wr(v,t,e._v$),e._v$2=Wr(S,n,e._v$2),e._v$3=Wr(A,r,e._v$3),e._v$4=Wr(C,i,e._v$4),e}),{_v$:void 0,_v$2:void 0,_v$3:void 0,_v$4:void 0}),e})()},get extraContent(){return rr((()=>!("top-wallets"===mo()&&!E)))()?void 0:kr(Pi,{get disabled(){return ao()},small:!0,get wallets(){return w.slice(-(w.length-4))},onClickWallet:x,onClickOther:M})},onClickShowMore:S,onCloseClick:()=>A(),get onBackClick(){return rr((()=>!("install"!==mo()||E)))()?()=>vo("top-wallets"):rr((()=>!("install"!==mo()||!E)))()?()=>vo("wallets"):rr((()=>!("wallets"!==mo()||!E)))()?()=>vo("top-wallets"):"help"===mo()?()=>vo(yo()):void 0}})})(),null),Fr(v,(()=>{const t=rr((()=>!e.pairingPayload));return()=>t()&&kr(mi,{get open(){return oo()},get content(){return kr(ji,{bigIcon:!0,get icon(){return io.cloneNode(!0)},get title(){return e.title||"No title"},get description(){return e.body||"No description"},get data(){return e.data},buttons:[{label:"Close",type:"primary",onClick:()=>A()}]})},onCloseClick:()=>A()})})(),null),v})()}),a),document.body.prepend(s),setTimeout((()=>{so(!0)}),50)}return""}));let Ao=ei,xo=$r,Mo=ti,To=ni;const Oo=()=>Ao,Po=()=>xo,No=()=>Mo,ko=()=>To;var Co,Uo;!function(e){e[e.DESKTOP=0]="DESKTOP",e[e.IOS=1]="IOS",e[e.ANDROID=2]="ANDROID"}(Co||(Co={})),function(e){e.IOS="ios",e.ANDROID="android",e.EXTENSION="extension",e.DESKTOP="desktop",e.WEB="web"}(Uo||(Uo={}));const Lo=zr("",1),jo=zr("

",2),zo=zr('

',2),Ko=zr('
',6),qo=zr('

props.label

',2),Do=zr('
',2),Bo=zr('

',4),Wo=zr('
',2);const Fo=e=>{const t=e.label.includes("{{wallet}}")&&e.walletInfo;return(()=>{const n=Ko.cloneNode(!0),r=n.firstChild,i=r.firstChild;return Fr(r,kr(hi,{}),i),Fr(r,(()=>{const n=rr((()=>!(!t||!e.walletInfo)));return()=>n()&&rr((()=>function(e,t){const n=/({{\s*wallet\s*}})/g;return e.split(n).map((e=>e.match(n)?[(()=>{const e=Lo.cloneNode(!0);return tr((()=>qr(e,"src",t.icon))),e})(),(()=>{const e=jo.cloneNode(!0);return Fr(e,(()=>t.name)),e})()]:(()=>{const t=zo.cloneNode(!0);return Fr(t,e),t})()))}(e.label,e.walletInfo)))})(),i),Fr(r,!t&&qo.cloneNode(!0),i),Br(i,"click",e.onClickClose,!0),Fr(i,kr(si,{})),Fr(n,(()=>{const t=rr((()=>!!e.actions));return()=>t()&&(()=>{const t=Do.cloneNode(!0);return Fr(t,kr(Cr,{get each(){return e.actions},children:e=>(()=>{const t=Bo.cloneNode(!0),n=t.firstChild;return Fr(n,(()=>e.text)),Fr(t,(()=>{const t=rr((()=>!!e.actionText));return()=>t()&&(()=>{const t=Wo.cloneNode(!0);return t.$$click=()=>{e.actionCallback&&e.actionCallback()},Fr(t,(()=>e.actionText)),t})()})(),null),tr((()=>Dr(n,"toast-action-label "+(e.isBold?"toast-action-bold":"")))),t})()})),t})()})(),null),tr((()=>Dr(n,e.open?"toast-wrapper-show":"toast-wrapper-hide"))),n})()};Kr(["click"]);let Vo=null;const[Ho,Go]=er(!1),[Jo,Zo]=er("");let Yo;const Qo=()=>new Promise((e=>{Go(!1),setTimeout((()=>{Vo&&Vo(),document.getElementById("beacon-toast-wrapper")&&document.getElementById("beacon-toast-wrapper").remove(),e()}),300)})),Xo=e=>_r(void 0,void 0,void 0,(function*(){const t=yield Le();Zo(t),yield Qo(),t===Jo()&&(e=>{const t=document.createElement("div");t.setAttribute("id","beacon-toast-wrapper"),t.style.height="0px";const n=t.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent=".toast-wrapper-show {\n max-width: 460px;\n overflow: hidden;\n background-color: white;\n position: fixed;\n top: 12px;\n right: 12px;\n border-radius: 6px;\n transition: all ease 0.3s;\n transform: translateY(0px) scale(1);\n z-index: 1000000;\n -webkit-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n -moz-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n}\n\n.toast-wrapper-hide {\n max-width: 460px;\n overflow: hidden;\n background-color: white;\n position: fixed;\n top: 12px;\n right: 12px;\n border-radius: 6px;\n transition: all ease 0.3s;\n transform: translateY(-150px) scale(0.2);\n z-index: 1000000;\n -webkit-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n -moz-box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n box-shadow: 0px 4px 11px -4px rgba(0, 0, 0, 0.45);\n}\n\n.toast-header {\n padding: 0px 0.6em 0px 1.2em;\n display: flex;\n align-items: center;\n gap: 6px;\n overflow: hidden;\n position: relative;\n}\n\n.toast-header img {\n width: 24px;\n}\n\n.toast-header h3 {\n font-weight: bold;\n color: #334155;\n font-size: 0.8em;\n margin-right: auto;\n}\n\n.toast-label {\n margin: 1em 0em 1em 0em;\n color: #334155;\n font-size: 0.9em;\n}\n\n.toast-button-icon {\n width: 24px;\n height: 24px;\n padding: 2px;\n border-radius: 100%;\n border: 1px solid #cbd5e1;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n fill: #64748b;\n transition: all ease 0.2s;\n margin-left: auto;\n}\n\n.toast-button-icon:hover {\n background-color: #475569;\n border: 1px solid #475569;\n fill: #e2e8f0;\n}\n\n.toast-body {\n padding: 0.6em 1.2em;\n}\n\n.toast-action-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.toast-action-label {\n margin: 0.8em 0em;\n font-size: 0.8em;\n color: #64748b;\n}\n\n.toast-action-bold {\n font-weight: bold;\n color: #334155;\n}\n\n.toast-action-button {\n cursor: pointer;\n font-size: 0.8em;\n font-weight: 600;\n color: #3880ff;\n transition: all ease 0.2s;\n border-radius: 6px;\n padding: 0.4em 0.8em;\n}\n\n.toast-action-button:hover {\n background-color: #e4eeff;\n transition: all ease 0.2s;\n}\n\n@media only screen and (max-width: 800px) {\n .toast-wrapper-show {\n width: calc(100% - 24px);\n }\n\n .toast-wrapper-hide {\n width: calc(100% - 24px);\n }\n}\n",n.appendChild(r);const i=document.createElement("style");i.textContent=li,n.appendChild(i);const o=document.createElement("style");o.textContent="* { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;}",n.appendChild(o),Vo=jr((()=>kr(Fo,{get label(){return e.body},get open(){return Ho()},onClickClose:()=>{Qo()},get actions(){return e.actions},get walletInfo(){return e.walletInfo}})),n),document.body.prepend(t),setTimeout((()=>{Go(!0)}),50),clearTimeout(Yo),e.timer&&(Yo=setTimeout((()=>Qo()),e.timer))})(e)})),_o=e=>e.length>=12?`${e.substr(0,5)}...${e.substr(-5)}`:e;var $o=n(5108),es=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const ts=new it("BeaconEvents"),ns=5e3;var rs;!function(e){e.PERMISSION_REQUEST_SENT="PERMISSION_REQUEST_SENT",e.PERMISSION_REQUEST_SUCCESS="PERMISSION_REQUEST_SUCCESS",e.PERMISSION_REQUEST_ERROR="PERMISSION_REQUEST_ERROR",e.OPERATION_REQUEST_SENT="OPERATION_REQUEST_SENT",e.OPERATION_REQUEST_SUCCESS="OPERATION_REQUEST_SUCCESS",e.OPERATION_REQUEST_ERROR="OPERATION_REQUEST_ERROR",e.SIGN_REQUEST_SENT="SIGN_REQUEST_SENT",e.SIGN_REQUEST_SUCCESS="SIGN_REQUEST_SUCCESS",e.SIGN_REQUEST_ERROR="SIGN_REQUEST_ERROR",e.BROADCAST_REQUEST_SENT="BROADCAST_REQUEST_SENT",e.BROADCAST_REQUEST_SUCCESS="BROADCAST_REQUEST_SUCCESS",e.BROADCAST_REQUEST_ERROR="BROADCAST_REQUEST_ERROR",e.ACKNOWLEDGE_RECEIVED="ACKNOWLEDGE_RECEIVED",e.LOCAL_RATE_LIMIT_REACHED="LOCAL_RATE_LIMIT_REACHED",e.NO_PERMISSIONS="NO_PERMISSIONS",e.ACTIVE_ACCOUNT_SET="ACTIVE_ACCOUNT_SET",e.ACTIVE_TRANSPORT_SET="ACTIVE_TRANSPORT_SET",e.SHOW_PREPARE="SHOW_PREPARE",e.HIDE_UI="HIDE_UI",e.PAIR_INIT="PAIR_INIT",e.PAIR_SUCCESS="PAIR_SUCCESS",e.CHANNEL_CLOSED="CHANNEL_CLOSED",e.INTERNAL_ERROR="INTERNAL_ERROR",e.UNKNOWN="UNKNOWN"}(rs||(rs={}));const is=e=>es(void 0,void 0,void 0,(function*(){let t;const n=[];if(e.walletInfo.deeplink&&("web"===e.walletInfo.type||"mobile"===e.walletInfo.type&&Zi(window)||"desktop"===e.walletInfo.type&&!Zi(window))){const n=e.walletInfo.deeplink;t=()=>es(void 0,void 0,void 0,(function*(){const e=document.createElement("a");e.setAttribute("rel","noopener"),e.setAttribute("href",n),e.setAttribute("target","_blank"),e.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}))}n.push({text:"No answer from your wallet received yet. Please make sure the wallet is open.",isBold:!0}),n.push({text:"Did you make a mistake?",actionText:"Cancel Request",actionCallback:()=>es(void 0,void 0,void 0,(function*(){yield Qo()}))}),n.push({text:"Wallet not receiving request?",actionText:"Reset Connection",actionCallback:()=>es(void 0,void 0,void 0,(function*(){yield Qo();const t=e.extraInfo.resetCallback;t&&(ts.log("showSentToast","resetCallback invoked"),yield t())}))}),Xo({body:"Request sent to  {{wallet}}",walletInfo:e.walletInfo,state:"loading",actions:n,openWalletAction:t}).catch((e=>$o.error(e)))})),os=(e,t)=>es(void 0,void 0,void 0,(function*(){var n,r,i,o,s,a;const c=e.errorResponse.errorType?lt.getError(e.errorResponse.errorType,e.errorResponse.errorData):new mt,l=[{text:c.title,isBold:!0}];if(e.errorResponse.errorType===re.TRANSACTION_INVALID_ERROR&&e.errorResponse.errorData){const u=e.errorResponse.errorData,h=e.errorMessages;let d=!1;if((null===(n=u[0])||void 0===n?void 0:n.contract_handle)&&h&&(null==h?void 0:h[u[0].contract_handle])){const e=null!==(o=null===(i=null===(r=u[1])||void 0===r?void 0:r.with)||void 0===i?void 0:i.int)&&void 0!==o?o:null===(a=null===(s=u[1])||void 0===s?void 0:s.with)||void 0===a?void 0:a.string,t=null==h?void 0:h[u[0].contract_handle];e&&(null==t?void 0:t[e])&&(l.push({text:null==t?void 0:t[e],isBold:!0}),d=!0)}d||l.push({text:c.description}),l.push({text:"",actionText:"Show Details",actionCallback:()=>es(void 0,void 0,void 0,(function*(){yield Qo(),yield Ro({title:c.title,body:c.fullDescription.description,data:c.fullDescription.data,buttons:t})}))})}yield Xo({body:"{{wallet}}  has returned an error",timer:e.errorResponse.errorType===re.ABORTED_ERROR?ns:void 0,state:"finished",walletInfo:e.walletInfo,actions:l})})),ss=()=>()=>es(void 0,void 0,void 0,(function*(){})),as={[rs.PERMISSION_REQUEST_SENT]:is,[rs.PERMISSION_REQUEST_SUCCESS]:e=>es(void 0,void 0,void 0,(function*(){const{output:t}=e;yield Xo({body:"{{wallet}}  has granted permission",timer:ns,walletInfo:e.walletInfo,state:"finished",actions:[{text:"Address",actionText:_o(t.address),isBold:!0},{text:"Network",actionText:`${t.network.type}`},{text:"Permissions",actionText:t.scopes.join(", ")}]})})),[rs.PERMISSION_REQUEST_ERROR]:os,[rs.OPERATION_REQUEST_SENT]:is,[rs.OPERATION_REQUEST_SUCCESS]:e=>es(void 0,void 0,void 0,(function*(){const{account:t,output:n,blockExplorer:r}=e;yield Xo({body:"{{wallet}}  successfully submitted operation",timer:ns,state:"finished",walletInfo:e.walletInfo,actions:[{text:_o(n.transactionHash),isBold:!0,actionText:"Open Blockexplorer",actionLogo:"external",actionCallback:()=>es(void 0,void 0,void 0,(function*(){const e=yield r.getTransactionLink(n.transactionHash,t.network);window.open(e,"_blank","noopener"),yield Qo()}))}]})})),[rs.OPERATION_REQUEST_ERROR]:os,[rs.SIGN_REQUEST_SENT]:is,[rs.SIGN_REQUEST_SUCCESS]:e=>es(void 0,void 0,void 0,(function*(){const t=e.output;yield Xo({body:"{{wallet}}  successfully signed payload",timer:ns,state:"finished",walletInfo:e.walletInfo,actions:[{text:`Signature: ${_o(t.signature)}`,actionText:"Copy to clipboard",actionCallback:()=>es(void 0,void 0,void 0,(function*(){navigator.clipboard.writeText(t.signature).then((()=>{ts.log("showSignSuccessAlert","Copying to clipboard was successful!")}),(e=>{ts.error("showSignSuccessAlert","Could not copy text to clipboard: ",e)})),yield Qo()}))}]})})),[rs.SIGN_REQUEST_ERROR]:os,[rs.BROADCAST_REQUEST_SENT]:is,[rs.BROADCAST_REQUEST_SUCCESS]:e=>es(void 0,void 0,void 0,(function*(){const{network:t,output:n,blockExplorer:r}=e;yield Xo({body:"{{wallet}}  successfully injected operation",timer:ns,state:"finished",walletInfo:e.walletInfo,actions:[{text:_o(n.transactionHash),isBold:!0,actionText:"Open Blockexplorer",actionLogo:"external",actionCallback:()=>es(void 0,void 0,void 0,(function*(){const e=yield r.getTransactionLink(n.transactionHash,t);window.open(e,"_blank","noopener"),yield Qo()}))}]})})),[rs.BROADCAST_REQUEST_ERROR]:os,[rs.ACKNOWLEDGE_RECEIVED]:e=>es(void 0,void 0,void 0,(function*(){Xo({body:"Awaiting confirmation in  {{wallet}}",state:"acknowledge",walletInfo:e.walletInfo}).catch((e=>$o.error(e)))})),[rs.LOCAL_RATE_LIMIT_REACHED]:()=>es(void 0,void 0,void 0,(function*(){Ro({title:"Error",body:"Rate limit reached. Please slow down",buttons:[{text:"Done",style:"outline"}],timer:3e3}).catch((e=>$o.error(e)))})),[rs.NO_PERMISSIONS]:()=>es(void 0,void 0,void 0,(function*(){yield Ro({title:"No Permission",body:"Please allow the wallet to handle this type of request."})})),[rs.ACTIVE_ACCOUNT_SET]:ss(),[rs.ACTIVE_TRANSPORT_SET]:ss(),[rs.SHOW_PREPARE]:e=>es(void 0,void 0,void 0,(function*(){const t=e.walletInfo?"Preparing Request for  {{wallet}}...":"Preparing Request...";Xo({body:t,state:"prepare",walletInfo:e.walletInfo}).catch((e=>$o.error(e)))})),[rs.HIDE_UI]:e=>es(void 0,void 0,void 0,(function*(){e?(e.includes("alert")&&Io(),e.includes("toast")&&Qo()):Qo()})),[rs.PAIR_INIT]:e=>es(void 0,void 0,void 0,(function*(){$o.log("showPairAlert");const t={title:"Choose your preferred wallet",body:"

",pairingPayload:{p2pSyncCode:e.p2pPeerInfo,walletConnectSyncCode:e.walletConnectPeerInfo,postmessageSyncCode:e.postmessagePeerInfo,preferredNetwork:e.preferredNetwork},closeButtonCallback:e.abortedHandler,disclaimerText:e.disclaimerText,analytics:e.analytics,featuredWallets:e.featuredWallets};yield Ro(t)})),[rs.PAIR_SUCCESS]:()=>es(void 0,void 0,void 0,(function*(){yield Io()})),[rs.CHANNEL_CLOSED]:()=>es(void 0,void 0,void 0,(function*(){yield Ro({title:"Channel closed",body:"Your peer has closed the connection.",buttons:[{text:"Done",style:"outline"}],timer:1500})})),[rs.INTERNAL_ERROR]:e=>es(void 0,void 0,void 0,(function*(){var t;const n=[...null!==(t=e.buttons)&&void 0!==t?t:[]];n.push({text:"Done",style:"outline"});const r={title:"Internal Error",body:e.text,buttons:n};yield Ro(r)})),[rs.UNKNOWN]:ss()};class cs{constructor(e={},t){this.callbackMap={[rs.PERMISSION_REQUEST_SENT]:[as.PERMISSION_REQUEST_SENT],[rs.PERMISSION_REQUEST_SUCCESS]:[as.PERMISSION_REQUEST_SUCCESS],[rs.PERMISSION_REQUEST_ERROR]:[as.PERMISSION_REQUEST_ERROR],[rs.OPERATION_REQUEST_SENT]:[as.OPERATION_REQUEST_SENT],[rs.OPERATION_REQUEST_SUCCESS]:[as.OPERATION_REQUEST_SUCCESS],[rs.OPERATION_REQUEST_ERROR]:[as.OPERATION_REQUEST_ERROR],[rs.SIGN_REQUEST_SENT]:[as.SIGN_REQUEST_SENT],[rs.SIGN_REQUEST_SUCCESS]:[as.SIGN_REQUEST_SUCCESS],[rs.SIGN_REQUEST_ERROR]:[as.SIGN_REQUEST_ERROR],[rs.BROADCAST_REQUEST_SENT]:[as.BROADCAST_REQUEST_SENT],[rs.BROADCAST_REQUEST_SUCCESS]:[as.BROADCAST_REQUEST_SUCCESS],[rs.BROADCAST_REQUEST_ERROR]:[as.BROADCAST_REQUEST_ERROR],[rs.ACKNOWLEDGE_RECEIVED]:[as.ACKNOWLEDGE_RECEIVED],[rs.LOCAL_RATE_LIMIT_REACHED]:[as.LOCAL_RATE_LIMIT_REACHED],[rs.NO_PERMISSIONS]:[as.NO_PERMISSIONS],[rs.ACTIVE_ACCOUNT_SET]:[as.ACTIVE_ACCOUNT_SET],[rs.ACTIVE_TRANSPORT_SET]:[as.ACTIVE_TRANSPORT_SET],[rs.SHOW_PREPARE]:[as.SHOW_PREPARE],[rs.HIDE_UI]:[as.HIDE_UI],[rs.PAIR_INIT]:[as.PAIR_INIT],[rs.PAIR_SUCCESS]:[as.PAIR_SUCCESS],[rs.CHANNEL_CLOSED]:[as.CHANNEL_CLOSED],[rs.INTERNAL_ERROR]:[as.INTERNAL_ERROR],[rs.UNKNOWN]:[as.UNKNOWN]},t&&this.setAllHandlers(),this.overrideDefaults(e)}on(e,t){return es(this,void 0,void 0,(function*(){const n=this.callbackMap[e]||[];n.push(t),this.callbackMap[e]=n}))}emit(e,t,n){return es(this,void 0,void 0,(function*(){const r=this.callbackMap[e];r&&r.length>0&&r.forEach((r=>es(this,void 0,void 0,(function*(){try{yield r(t,n)}catch(t){ts.error(`error handling event ${e}`,t)}}))))}))}overrideDefaults(e){Object.keys(e).forEach((t=>{const n=t,r=e[n];r&&(this.callbackMap[n]=[r.handler])}))}setAllHandlers(e){Object.keys(this.callbackMap).forEach((t=>{const n=t;this.callbackMap[n]=[],e?this.callbackMap[n].push(e):this.callbackMap[n].push(((...e)=>{ts.log(t,...e)}))}))}}const ls={[X.BlockchainRequest]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.BlockchainResponse]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.PermissionRequest]:{sent:rs.PERMISSION_REQUEST_SENT,success:rs.PERMISSION_REQUEST_SUCCESS,error:rs.PERMISSION_REQUEST_ERROR},[X.PermissionResponse]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.OperationRequest]:{sent:rs.OPERATION_REQUEST_SENT,success:rs.OPERATION_REQUEST_SUCCESS,error:rs.OPERATION_REQUEST_ERROR},[X.OperationResponse]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.SignPayloadRequest]:{sent:rs.SIGN_REQUEST_SENT,success:rs.SIGN_REQUEST_SUCCESS,error:rs.SIGN_REQUEST_ERROR},[X.SignPayloadResponse]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.BroadcastRequest]:{sent:rs.BROADCAST_REQUEST_SENT,success:rs.BROADCAST_REQUEST_SUCCESS,error:rs.BROADCAST_REQUEST_ERROR},[X.BroadcastResponse]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.Acknowledge]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.Disconnect]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN},[X.Error]:{sent:rs.UNKNOWN,success:rs.UNKNOWN,error:rs.UNKNOWN}};var us=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class hs{constructor(e){this.rpcUrls=e}getLinkForNetwork(e){return us(this,void 0,void 0,(function*(){return this.rpcUrls[e.type]}))}}var ds=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class fs extends hs{constructor(e={[$.MAINNET]:"https://tzkt.io",[$.GHOSTNET]:"https://ghostnet.tzkt.io",[$.MONDAYNET]:"https://mondaynet.tzkt.io",[$.DAILYNET]:"https://dailynet.tzkt.io",[$.DELPHINET]:"https://delphinet.tzkt.io",[$.EDONET]:"https://edonet.tzkt.io",[$.FLORENCENET]:"https://florencenet.tzkt.io",[$.GRANADANET]:"https://granadanet.tzkt.io",[$.HANGZHOUNET]:"https://hangzhounet.tzkt.io",[$.ITHACANET]:"https://ithacanet.tzkt.io",[$.JAKARTANET]:"https://jakartanet.tzkt.io",[$.KATHMANDUNET]:"https://kathmandunet.tzkt.io",[$.LIMANET]:"https://limanet.tzkt.io",[$.MUMBAINET]:"https://mumbainet.tzkt.io",[$.NAIROBINET]:"https://nairobinet.tzkt.io",[$.CUSTOM]:"https://nairobinet.tzkt.io"}){super(e),this.rpcUrls=e}getAddressLink(e,t){return ds(this,void 0,void 0,(function*(){return`${yield this.getLinkForNetwork(t)}/${e}`}))}getTransactionLink(e,t){return ds(this,void 0,void 0,(function*(){return`${yield this.getLinkForNetwork(t)}/${e}`}))}}var ps=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const gs=new it("DappPostMessageTransport");class ys extends kn{constructor(e,t,n){super(e,t,n,se.TRANSPORT_POSTMESSAGE_PEERS_DAPP)}startOpenChannelListener(){return ps(this,void 0,void 0,(function*(){return this.client.listenForChannelOpening((e=>ps(this,void 0,void 0,(function*(){gs.log("connect","received PostMessagePairingResponse",e),yield this.addPeer(e),this._isConnected=ie.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}))}listenForNewPeer(e){return ps(this,void 0,void 0,(function*(){gs.log("listenForNewPeer"),this.newPeerListener=e}))}stopListeningForNewPeers(){return ps(this,void 0,void 0,(function*(){gs.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var bs=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const ms=new it("DappP2PTransport");class vs extends Sn{constructor(e,t,n,r,i,o){super(e,t,n,r,se.TRANSPORT_P2P_PEERS_DAPP,i,o)}startOpenChannelListener(){return bs(this,void 0,void 0,(function*(){return this.client.listenForChannelOpening((e=>bs(this,void 0,void 0,(function*(){ms.log("listenForNewPeer","new publicKey",e.publicKey),yield this.addPeer(e),this._isConnected=ie.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}))}listenForNewPeer(e){return bs(this,void 0,void 0,(function*(){ms.log("listenForNewPeer"),this.newPeerListener=e}))}stopListeningForNewPeers(){return bs(this,void 0,void 0,(function*(){ms.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var ws=n(7187),Es=n.n(ws),Ss=n(5150),Is=n(159),Rs=n(9107),As=n(8200);class xs extends As.q{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}}class Ms extends As.q{constructor(e,t){super(),this.core=e,this.logger=t,this.records=new Map}}class Ts{constructor(e,t){this.logger=e,this.core=t}}class Os extends As.q{constructor(e,t){super(),this.relayer=e,this.logger=t}}class Ps extends As.q{constructor(e){super()}}class Ns{constructor(e,t,n,r){this.core=e,this.logger=t,this.name=n}}class ks extends As.q{constructor(e,t){super(),this.relayer=e,this.logger=t}}class Cs extends As.q{constructor(e,t){super(),this.core=e,this.logger=t}}class Us{constructor(e,t){this.projectId=e,this.logger=t}}class Ls{constructor(e){this.opts=e,this.protocol="wc",this.version=2}}class js{constructor(e){this.client=e}}const zs=e=>JSON.stringify(e,((e,t)=>"bigint"==typeof t?t.toString()+"n":t));function Ks(e){if("string"!=typeof e)throw new Error("Cannot safe json parse value of type "+typeof e);try{return(e=>{const t=e.replace(/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,'$1"$2n"$3');return JSON.parse(t,((e,t)=>"string"==typeof t&&t.match(/^\d+n$/)?BigInt(t.substring(0,t.length-1)):t))})(e)}catch(t){return e}}function qs(e){return"string"==typeof e?e:zs(e)||""}var Ds=n(6736);const Bs=".",Ws="base64url",Fs="utf8",Vs="utf8",Hs=":",Gs="did",Js="key",Zs="base58btc",Ys="z",Qs="K36";function Xs(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function _s(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?Xs(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function $s(e,t){t||(t=e.reduce(((e,t)=>e+t.length),0));const n=_s(t);let r=0;for(const t of e)n.set(t,r),r+=t.length;return Xs(n)}var ea=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r>>0,s=new Uint8Array(o);e[t];){var u=n[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var f=o-i;f!==o&&0===s[f];)f++;for(var p=new Uint8Array(r+(o-f)),g=r;f!==o;)p[g++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var n=0,r=0,i=0,o=t.length;i!==o&&0===t[i];)i++,n++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,f=s-1;(0!==h||d>>0,l[f]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");r=d,i++}for(var p=s-r;p!==s&&0===l[p];)p++;for(var g=c.repeat(n);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")});class ra{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class ia{constructor(e,t,n){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return sa(this,e)}}class oa{constructor(e){this.decoders=e}or(e){return sa(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const sa=(e,t)=>new oa({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class aa{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new ra(e,t,n),this.decoder=new ia(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ca=({name:e,prefix:t,encode:n,decode:r})=>new aa(e,t,n,r),la=({prefix:e,name:t,alphabet:n})=>{const{encode:r,decode:i}=ta(n,t);return ca({prefix:e,name:t,encode:r,decode:e=>na(i(e))})},ua=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>ca({prefix:t,name:e,encode:e=>((e,t,n)=>{const r="="===t[t.length-1],i=(1<n;)s-=n,o+=t[i&a>>s];if(s&&(o+=t[i&a<((e,t,n,r)=>{const i={};for(let e=0;e=8&&(a-=8,s[l++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(t,r,n,e)}),ha=ca({prefix:"\0",name:"identity",encode:e=>(e=>(new TextDecoder).decode(e))(e),decode:e=>(e=>(new TextEncoder).encode(e))(e)}),da=ua({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1}),fa=ua({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3}),pa=la({prefix:"9",name:"base10",alphabet:"0123456789"}),ga=ua({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ya=ua({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4}),ba=ua({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ma=ua({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),va=ua({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),wa=ua({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ea=ua({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Sa=ua({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Ia=ua({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ra=ua({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Aa=ua({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),xa=la({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Ma=la({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"}),Ta=la({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Oa=la({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"}),Pa=ua({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Na=ua({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ka=ua({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Ca=ua({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6}),Ua=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),La=Ua.reduce(((e,t,n)=>(e[n]=t,e)),[]),ja=Ua.reduce(((e,t,n)=>(e[t.codePointAt(0)]=n,e)),[]);const za=ca({prefix:"🚀",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=La[t]),"")},decode:function(e){const t=[];for(const n of e){const e=ja[n.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}});var Ka=function e(t,n,r){n=n||[];var i=r=r||0;for(;t>=Ba;)n[r++]=255&t|qa,t/=128;for(;t&Da;)n[r++]=255&t|qa,t>>>=7;return n[r]=0|t,e.bytes=r-i+1,n},qa=128,Da=-128,Ba=Math.pow(2,31);var Wa=function e(t,n){var r,i=0,o=0,s=n=n||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");r=t[s++],i+=o<28?(r&Va)<=Fa);return e.bytes=s-n,i},Fa=128,Va=127;var Ha=Math.pow(2,7),Ga=Math.pow(2,14),Ja=Math.pow(2,21),Za=Math.pow(2,28),Ya=Math.pow(2,35),Qa=Math.pow(2,42),Xa=Math.pow(2,49),_a=Math.pow(2,56),$a=Math.pow(2,63);const ec={encode:Ka,decode:Wa,encodingLength:function(e){return e(ec.encode(e,t,n),t),nc=e=>ec.encodingLength(e),rc=(e,t)=>{const n=t.byteLength,r=nc(e),i=r+nc(n),o=new Uint8Array(i+n);return tc(e,o,0),tc(n,o,r),o.set(t,i),new ic(e,n,t,o)};class ic{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}}const oc=({name:e,code:t,encode:n})=>new sc(e,t,n);class sc{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?rc(this.code,t):t.then((e=>rc(this.code,e)))}throw Error("Unknown type, must be binary type")}}const ac=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),cc=oc({name:"sha2-256",code:18,encode:ac("SHA-256")}),lc=oc({name:"sha2-512",code:19,encode:ac("SHA-512")}),uc=na,hc={code:0,name:"identity",encode:uc,digest:e=>rc(0,uc(e))},dc="raw",fc=85,pc=e=>na(e),gc=e=>na(e),yc=new TextEncoder,bc=new TextDecoder,mc="json",vc=512,wc=e=>yc.encode(JSON.stringify(e)),Ec=e=>JSON.parse(bc.decode(e));n(5108);Symbol.toStringTag,Symbol.for("nodejs.util.inspect.custom");Symbol.for("@ipld/js-cid/CID");const Sc={...e,...t,...r,...i,...o,...s,...a,...c,...l,...u};function Ic(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}const Rc=Ic("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),Ac=Ic("ascii","a",(e=>{let t="a";for(let n=0;n{const t=_s((e=e.substring(1)).length);for(let n=0;n"u")throw new Error("Missing sender public key for type 1 envelope");const n=typeof e.senderPublicKey<"u"?Tc(e.senderPublicKey,ol):void 0,r=typeof e.iv<"u"?Tc(e.iv,ol):(0,we.randomBytes)(dl);return function(e){if(yl(e.type)===ll){if(typeof e.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return Mc($s([e.type,e.senderPublicKey,e.iv,e.sealed]),sl)}return Mc($s([e.type,e.iv,e.sealed]),sl)}({type:t,sealed:new Uc.OK(Tc(e.symKey,ol)).seal(r,Tc(e.message,al)),iv:r,senderPublicKey:n})}function ml(e){const t=Tc(e,sl),n=t.slice(ul,hl),r=hl;if(yl(n)===ll){const e=r+fl,i=e+dl,o=t.slice(r,e),s=t.slice(e,i);return{type:n,sealed:t.slice(i),iv:s,senderPublicKey:o}}const i=r+dl,o=t.slice(r,i);return{type:n,sealed:t.slice(i),iv:o}}function vl(e){const t=e?.type||cl;if(t===ll){if(typeof e?.senderPublicKey>"u")throw new Error("missing sender public key");if(typeof e?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:t,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function wl(e){return e.type===ll&&"string"==typeof e.senderPublicKey&&"string"==typeof e.receiverPublicKey}var El=Object.defineProperty,Sl=Object.getOwnPropertySymbols,Il=Object.prototype.hasOwnProperty,Rl=Object.prototype.propertyIsEnumerable,Al=(e,t,n)=>t in e?El(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xl=(e,t)=>{for(var n in t||(t={}))Il.call(t,n)&&Al(e,n,t[n]);if(Sl)for(var n of Sl(t))Rl.call(t,n)&&Al(e,n,t[n]);return e};const Ml="ReactNative",Tl={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},Ol="js";function Pl(){return typeof nl<"u"&&typeof nl.versions<"u"&&typeof nl.versions.node<"u"}function Nl(){return!(0,_c.getDocument)()&&!!(0,_c.getNavigator)()&&navigator.product===Ml}function kl(){return!Pl()&&!!(0,_c.getNavigator)()}function Cl(){return Nl()?Tl.reactNative:Pl()?Tl.node:kl()?Tl.browser:Tl.unknown}function Ul(e,t,n){const r=function(){const e=Yc();if(null===e)return"unknown";const t=e.os?e.os.replace(" ","").toLowerCase():"unknown";return"browser"===e.type?[t,e.name,e.version].join("-"):[t,e.version].join("-")}(),i=function(){var e;const t=Cl();return t===Tl.browser?[t,(null==(e=(0,_c.getLocation)())?void 0:e.host)||"unknown"].join(":"):t}();return[[e,t].join("-"),[Ol,n].join("-"),r,i].join("/")}function Ll({protocol:e,version:t,relayUrl:n,sdkVersion:r,auth:i,projectId:o,useOnCloseEvent:s}){const a=n.split("?"),c={auth:i,ua:Ul(e,t,r),projectId:o,useOnCloseEvent:s||void 0},l=function(e,t){let n=el.parse(e);return n=xl(xl({},n),t),el.stringify(n)}(a[1]||"",c);return a[0]+"?"+l}function jl(e,t){return e.filter((e=>t.includes(e))).length===e.length}function zl(e){return Object.fromEntries(e.entries())}function Kl(e){return new Map(Object.entries(e))}function ql(e=Ds.FIVE_MINUTES,t){const n=(0,Ds.toMiliseconds)(e||Ds.FIVE_MINUTES);let r,i,o;return{resolve:e=>{o&&r&&(clearTimeout(o),r(e))},reject:e=>{o&&i&&(clearTimeout(o),i(e))},done:()=>new Promise(((e,s)=>{o=setTimeout((()=>{s(new Error(t))}),n),r=e,i=s}))}}function Dl(e,t,n){return new Promise((async(r,i)=>{const o=setTimeout((()=>i(new Error(n))),t);try{r(await e)}catch(e){i(e)}clearTimeout(o)}))}function Bl(e,t){if("string"==typeof t&&t.startsWith(`${e}:`))return t;if("topic"===e.toLowerCase()){if("string"!=typeof t)throw new Error('Value must be "string" for expirer target type: topic');return`topic:${t}`}if("id"===e.toLowerCase()){if("number"!=typeof t)throw new Error('Value must be "number" for expirer target type: id');return`id:${t}`}throw new Error(`Unknown expirer target type: ${e}`)}function Wl(e){const[t,n]=e.split(":"),r={id:void 0,topic:void 0};if("topic"===t&&"string"==typeof n)r.topic=n;else{if("id"!==t||!Number.isInteger(Number(n)))throw new Error(`Invalid target, expected id:number or topic:string, got ${t}:${n}`);r.id=Number(n)}return r}function Fl(e,t){return(0,Ds.fromMiliseconds)((t||Date.now())+(0,Ds.toMiliseconds)(e))}function Vl(e){return Date.now()>=(0,Ds.toMiliseconds)(e)}function Hl(e,t){return`${e}${t?`:${t}`:""}`}function Gl(e){return e?.relay||{protocol:"irn"}}function Jl(e){const t=tl[e];if(typeof t>"u")throw new Error(`Relay Protocol not supported: ${e}`);return t}var Zl=Object.defineProperty,Yl=Object.getOwnPropertySymbols,Ql=Object.prototype.hasOwnProperty,Xl=Object.prototype.propertyIsEnumerable,_l=(e,t,n)=>t in e?Zl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;function $l(e,t="-"){const n={},r="relay"+t;return Object.keys(e).forEach((t=>{if(t.startsWith(r)){const i=t.replace(r,""),o=e[t];n[i]=o}})),n}function eu(e){return e.startsWith("//")?e.substring(2):e}function tu(e){return`${e.protocol}:${e.topic}@${e.version}?`+el.stringify(((e,t)=>{for(var n in t||(t={}))Ql.call(t,n)&&_l(e,n,t[n]);if(Yl)for(var n of Yl(t))Xl.call(t,n)&&_l(e,n,t[n]);return e})({symKey:e.symKey},function(e,t="-"){const n={};return Object.keys(e).forEach((r=>{const i="relay"+t+r;e[r]&&(n[i]=e[r])})),n}(e.relay)))}Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;function nu(e){const t=[];return e.forEach((e=>{const[n,r]=e.split(":");t.push(`${n}:${r}`)})),t}const ru={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},iu={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function ou(e,t){const{message:n,code:r}=iu[e];return{message:t?`${n} ${t}`:n,code:r}}function su(e,t){const{message:n,code:r}=ru[e];return{message:t?`${n} ${t}`:n,code:r}}function au(e,t){return!!Array.isArray(e)&&(!(typeof t<"u"&&e.length)||e.every(t))}function cu(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function lu(e){return typeof e>"u"}function uu(e,t){return!(!t||!lu(e))||"string"==typeof e&&Boolean(e.trim().length)}function hu(e,t){return!(!t||!lu(e))||"number"==typeof e&&!isNaN(e)}function du(e){return!(!uu(e,!1)||!e.includes(":"))&&2===e.split(":").length}function fu(e){let t=!0;return au(e)?e.length&&(t=e.every((e=>uu(e,!1)))):t=!1,t}function pu(e,t){let n=null;return Object.entries(e).forEach((([e,r])=>{if(n)return;const i=function(e,t,n){let r=null;return au(t)?t.forEach((t=>{r||(!du(t)||!t.includes(e))&&(r=su("UNSUPPORTED_CHAINS",`${n}, chain ${t} should be a string and conform to "namespace:chainId" format`))})):r=su("UNSUPPORTED_CHAINS",`${n}, chains ${t} should be an array of strings conforming to "namespace:chainId" format`),r}(e,rl(e,r),`${t} requiredNamespace`);i&&(n=i)})),n}function gu(e,t){let n=null;return au(e)?e.forEach((e=>{n||function(e){if(uu(e,!1)&&e.includes(":")){const t=e.split(":");if(3===t.length){const e=t[0]+":"+t[1];return!!t[2]&&du(e)}}return!1}(e)||(n=su("UNSUPPORTED_ACCOUNTS",`${t}, account ${e} should be a string and conform to "namespace:chainId:address" format`))})):n=su("UNSUPPORTED_ACCOUNTS",`${t}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function yu(e,t){let n=null;return Object.values(e).forEach((e=>{if(n)return;const r=function(e,t){let n=null;return fu(e?.methods)?fu(e?.events)||(n=su("UNSUPPORTED_EVENTS",`${t}, events should be an array of strings or empty array for no events`)):n=su("UNSUPPORTED_METHODS",`${t}, methods should be an array of strings or empty array for no methods`),n}(e,`${t}, namespace`);r&&(n=r)})),n}function bu(e,t){let n=null;if(e&&cu(e)){const r=yu(e,t);r&&(n=r);const i=function(e,t){let n=null;return Object.values(e).forEach((e=>{if(n)return;const r=gu(e?.accounts,`${t} namespace`);r&&(n=r)})),n}(e,t);i&&(n=i)}else n=ou("MISSING_OR_INVALID",`${t}, namespaces should be an object with data`);return n}function mu(e){return uu(e.protocol,!0)}function vu(e){return typeof e<"u"&&null!==typeof e}function wu(e,t){return!(!du(t)||!function(e){const t=[];return Object.values(e).forEach((e=>{t.push(...nu(e.accounts))})),t}(e).includes(t))}function Eu(e,t,n){return!!uu(n,!1)&&function(e,t){const n=[];return Object.values(e).forEach((e=>{nu(e.accounts).includes(t)&&n.push(...e.methods)})),n}(e,t).includes(n)}function Su(e,t,n){return!!uu(n,!1)&&function(e,t){const n=[];return Object.values(e).forEach((e=>{nu(e.accounts).includes(t)&&n.push(...e.events)})),n}(e,t).includes(n)}function Iu(e,t,n){let r=null;const i=function(e){const t={};return Object.keys(e).forEach((n=>{var r;n.includes(":")?t[n]=e[n]:null==(r=e[n].chains)||r.forEach((r=>{t[r]={methods:e[n].methods,events:e[n].events}}))})),t}(e),o=function(e){const t={};return Object.keys(e).forEach((n=>{if(n.includes(":"))t[n]=e[n];else{const r=nu(e[n].accounts);r?.forEach((r=>{t[r]={accounts:e[n].accounts.filter((e=>e.includes(`${r}:`))),methods:e[n].methods,events:e[n].events}}))}})),t}(t),s=Object.keys(i),a=Object.keys(o),c=Ru(Object.keys(e)),l=Ru(Object.keys(t)),u=c.filter((e=>!l.includes(e)));return u.length&&(r=ou("NON_CONFORMING_NAMESPACES",`${n} namespaces keys don't satisfy requiredNamespaces.\n Required: ${u.toString()}\n Received: ${Object.keys(t).toString()}`)),jl(s,a)||(r=ou("NON_CONFORMING_NAMESPACES",`${n} namespaces chains don't satisfy required namespaces.\n Required: ${s.toString()}\n Approved: ${a.toString()}`)),Object.keys(t).forEach((e=>{if(!e.includes(":")||r)return;const i=nu(t[e].accounts);i.includes(e)||(r=ou("NON_CONFORMING_NAMESPACES",`${n} namespaces accounts don't satisfy namespace accounts for ${e}\n Required: ${e}\n Approved: ${i.toString()}`))})),s.forEach((e=>{r||(jl(i[e].methods,o[e].methods)?jl(i[e].events,o[e].events)||(r=ou("NON_CONFORMING_NAMESPACES",`${n} namespaces events don't satisfy namespace events for ${e}`)):r=ou("NON_CONFORMING_NAMESPACES",`${n} namespaces methods don't satisfy namespace methods for ${e}`))})),r}function Ru(e){return[...new Set(e.map((e=>e.includes(":")?e.split(":")[0]:e)))]}const Au="INTERNAL_ERROR",xu="SERVER_ERROR",Mu=[-32700,-32600,-32601,-32602,-32603],Tu={PARSE_ERROR:{code:-32700,message:"Parse error"},INVALID_REQUEST:{code:-32600,message:"Invalid Request"},METHOD_NOT_FOUND:{code:-32601,message:"Method not found"},INVALID_PARAMS:{code:-32602,message:"Invalid params"},[Au]:{code:-32603,message:"Internal error"},[xu]:{code:-32e3,message:"Server error"}},Ou=xu;function Pu(e){return Mu.includes(e)}function Nu(e){return Object.keys(Tu).includes(e)?Tu[e]:Tu[Ou]}function ku(e){const t=Object.values(Tu).find((t=>t.code===e));return t||Tu[Ou]}var Cu=n(1468);function Uu(e=3){return Date.now()*Math.pow(10,e)+Math.floor(Math.random()*Math.pow(10,e))}function Lu(e=6){return BigInt(Uu(e))}function ju(e,t,n){return{id:n||Uu(),jsonrpc:"2.0",method:e,params:t}}function zu(e,t){return{id:e,jsonrpc:"2.0",result:t}}function Ku(e,t,n){return{id:e,jsonrpc:"2.0",error:qu(t,n)}}function qu(e,t){return void 0===e?Nu(Au):("string"==typeof e&&(e=Object.assign(Object.assign({},Nu(xu)),{message:e})),void 0!==t&&(e.data=t),Pu(e.code)&&(e=ku(e.code)),e)}class Du{}class Bu extends Du{constructor(){super()}}class Wu extends Bu{constructor(e){super()}}function Fu(e,t){const n=function(e){const t=e.match(new RegExp(/^\w+:/,"gi"));if(t&&t.length)return t[0]}(e);return void 0!==n&&new RegExp(t).test(n)}function Vu(e){return Fu(e,"^wss?:")}function Hu(e){return new RegExp("wss?://localhost(:d{2,5})?").test(e)}function Gu(e){return"object"==typeof e&&"id"in e&&"jsonrpc"in e&&"2.0"===e.jsonrpc}function Ju(e){return Gu(e)&&"method"in e}function Zu(e){return Gu(e)&&(Yu(e)||Qu(e))}function Yu(e){return"result"in e}function Qu(e){return"error"in e}class Xu extends Wu{constructor(e){super(e),this.events=new ws.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async request(e,t){return this.requestStrict(ju(e.method,e.params||[],e.id||Lu().toString()),t)}async requestStrict(e,t){return new Promise((async(n,r)=>{if(!this.connection.connected)try{await this.open()}catch(e){r(e)}this.events.on(`${e.id}`,(e=>{Qu(e)?r(e.error):n(e.result)}));try{await this.connection.send(e,t)}catch(e){r(e)}}))}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),Zu(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&3e3===e.code&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),"string"==typeof e&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",(e=>this.onPayload(e))),this.connection.on("close",(e=>this.onClose(e))),this.connection.on("error",(e=>this.events.emit("error",e))),this.connection.on("register_error",(e=>this.onClose())),this.hasRegisteredEventListeners=!0)}}const _u=void 0!==n.g&&void 0!==n.g.WebSocket?n.g.WebSocket:"undefined"!=typeof window&&void 0!==window.WebSocket?window.WebSocket:n(7026);const $u=class{constructor(e){if(this.url=e,this.events=new ws.EventEmitter,this.registering=!1,!Vu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return void 0!==this.socket}get connecting(){return this.registering}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async open(e=this.url){await this.register(e)}async close(){return new Promise(((e,t)=>{void 0!==this.socket?(this.socket.onclose=t=>{this.onClose(t),e()},this.socket.close()):t(new Error("Connection already closed"))}))}async send(e,t){void 0===this.socket&&(this.socket=await this.register());try{this.socket.send(qs(e))}catch(t){this.onError(e.id,t)}}register(e=this.url){if(!Vu(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const e=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=e||this.events.listenerCount("open")>=e)&&this.events.setMaxListeners(e+1),new Promise(((e,t)=>{this.events.once("register_error",(e=>{this.resetMaxListeners(),t(e)})),this.events.once("open",(()=>{if(this.resetMaxListeners(),void 0===this.socket)return t(new Error("WebSocket connection is missing or invalid"));e(this.socket)}))}))}return this.url=e,this.registering=!0,new Promise(((t,n)=>{const r=(0,Cu.isReactNative)()?void 0:{rejectUnauthorized:!Hu(e)},i=new _u(e,[],r);"undefined"!=typeof window?i.onerror=e=>{const t=e;n(this.emitError(t.error))}:i.on("error",(e=>{n(this.emitError(e))})),i.onopen=()=>{this.onOpen(i),t(i)}}))}onOpen(e){e.onmessage=e=>this.onPayload(e),e.onclose=e=>this.onClose(e),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(void 0===e.data)return;const t="string"==typeof e.data?Ks(e.data):e.data;this.events.emit("payload",t)}onError(e,t){const n=this.parseError(t),r=Ku(e,n.message||n.toString());this.events.emit("payload",r)}parseError(e,t=this.url){return function(e,t,n){return e.message.includes("getaddrinfo ENOTFOUND")||e.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${n} RPC url at ${t}`):e}(e,t,"WS")}resetMaxListeners(){this.events.getMaxListeners()>10&&this.events.setMaxListeners(10)}emitError(e){const t=this.parseError(new Error((null==e?void 0:e.message)||`WebSocket connection failed for URL: ${this.url}`));return this.events.emit("register_error",t),t}};var eh=n(2307),th=n.n(eh),nh=n(4155);var rh=function(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r>>0,s=new Uint8Array(o);e[t];){var u=n[e.charCodeAt(t)];if(255===u)return;for(var h=0,d=o-1;(0!==u||h>>0,s[d]=u%256>>>0,u=u/256>>>0;if(0!==u)throw new Error("Non-zero carry");i=h,t++}if(" "!==e[t]){for(var f=o-i;f!==o&&0===s[f];)f++;for(var p=new Uint8Array(r+(o-f)),g=r;f!==o;)p[g++]=s[f++];return p}}}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";for(var n=0,r=0,i=0,o=t.length;i!==o&&0===t[i];)i++,n++;for(var s=(o-i)*u+1>>>0,l=new Uint8Array(s);i!==o;){for(var h=t[i],d=0,f=s-1;(0!==h||d>>0,l[f]=h%a>>>0,h=h/a>>>0;if(0!==h)throw new Error("Non-zero carry");r=d,i++}for(var p=s-r;p!==s&&0===l[p];)p++;for(var g=c.repeat(n);p{if(e instanceof Uint8Array&&"Uint8Array"===e.constructor.name)return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};class sh{constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class ah{constructor(e,t,n){if(this.name=e,this.prefix=t,void 0===t.codePointAt(0))throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=n}decode(e){if("string"==typeof e){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}throw Error("Can only multibase decode strings")}or(e){return lh(this,e)}}class ch{constructor(e){this.decoders=e}or(e){return lh(this,e)}decode(e){const t=e[0],n=this.decoders[t];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const lh=(e,t)=>new ch({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}});class uh{constructor(e,t,n,r){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=r,this.encoder=new sh(e,t,n),this.decoder=new ah(e,t,r)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const hh=({name:e,prefix:t,encode:n,decode:r})=>new uh(e,t,n,r),dh=({prefix:e,name:t,alphabet:n})=>{const{encode:r,decode:i}=ih(n,t);return hh({prefix:e,name:t,encode:r,decode:e=>oh(i(e))})},fh=({name:e,prefix:t,bitsPerChar:n,alphabet:r})=>hh({prefix:t,name:e,encode:e=>((e,t,n)=>{const r="="===t[t.length-1],i=(1<n;)s-=n,o+=t[i&a>>s];if(s&&(o+=t[i&a<((e,t,n,r)=>{const i={};for(let e=0;e=8&&(a-=8,s[l++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s})(t,r,n,e)}),ph=hh({prefix:"\0",name:"identity",encode:e=>(e=>(new TextDecoder).decode(e))(e),decode:e=>(e=>(new TextEncoder).encode(e))(e)});var gh=Object.freeze({__proto__:null,identity:ph});const yh=fh({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var bh=Object.freeze({__proto__:null,base2:yh});const mh=fh({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var vh=Object.freeze({__proto__:null,base8:mh});const wh=dh({prefix:"9",name:"base10",alphabet:"0123456789"});var Eh=Object.freeze({__proto__:null,base10:wh});const Sh=fh({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ih=fh({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Rh=Object.freeze({__proto__:null,base16:Sh,base16upper:Ih});const Ah=fh({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),xh=fh({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Mh=fh({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Th=fh({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Oh=fh({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Ph=fh({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Nh=fh({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),kh=fh({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ch=fh({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Uh=Object.freeze({__proto__:null,base32:Ah,base32upper:xh,base32pad:Mh,base32padupper:Th,base32hex:Oh,base32hexupper:Ph,base32hexpad:Nh,base32hexpadupper:kh,base32z:Ch});const Lh=dh({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),jh=dh({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var zh=Object.freeze({__proto__:null,base36:Lh,base36upper:jh});const Kh=dh({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),qh=dh({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Dh=Object.freeze({__proto__:null,base58btc:Kh,base58flickr:qh});const Bh=fh({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Wh=fh({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Fh=fh({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Vh=fh({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Hh=Object.freeze({__proto__:null,base64:Bh,base64pad:Wh,base64url:Fh,base64urlpad:Vh});const Gh=Array.from("🚀🪐☄🛰🌌🌑🌒🌓🌔🌕🌖🌗🌘🌍🌏🌎🐉☀💻🖥💾💿😂❤😍🤣😊🙏💕😭😘👍😅👏😁🔥🥰💔💖💙😢🤔😆🙄💪😉☺👌🤗💜😔😎😇🌹🤦🎉💞✌✨🤷😱😌🌸🙌😋💗💚😏💛🙂💓🤩😄😀🖤😃💯🙈👇🎶😒🤭❣😜💋👀😪😑💥🙋😞😩😡🤪👊🥳😥🤤👉💃😳✋😚😝😴🌟😬🙃🍀🌷😻😓⭐✅🥺🌈😈🤘💦✔😣🏃💐☹🎊💘😠☝😕🌺🎂🌻😐🖕💝🙊😹🗣💫💀👑🎵🤞😛🔴😤🌼😫⚽🤙☕🏆🤫👈😮🙆🍻🍃🐶💁😲🌿🧡🎁⚡🌞🎈❌✊👋😰🤨😶🤝🚶💰🍓💢🤟🙁🚨💨🤬✈🎀🍺🤓😙💟🌱😖👶🥴▶➡❓💎💸⬇😨🌚🦋😷🕺⚠🙅😟😵👎🤲🤠🤧📌🔵💅🧐🐾🍒😗🤑🌊🤯🐷☎💧😯💆👆🎤🙇🍑❄🌴💣🐸💌📍🥀🤢👅💡💩👐📸👻🤐🤮🎼🥵🚩🍎🍊👼💍📣🥂"),Jh=Gh.reduce(((e,t,n)=>(e[n]=t,e)),[]),Zh=Gh.reduce(((e,t,n)=>(e[t.codePointAt(0)]=n,e)),[]);const Yh=hh({prefix:"🚀",name:"base256emoji",encode:function(e){return e.reduce(((e,t)=>e+=Jh[t]),"")},decode:function(e){const t=[];for(const n of e){const e=Zh[n.codePointAt(0)];if(void 0===e)throw new Error(`Non-base256emoji character: ${n}`);t.push(e)}return new Uint8Array(t)}});var Qh=Object.freeze({__proto__:null,base256emoji:Yh}),Xh=function e(t,n,r){n=n||[];for(var i=r=r||0;t>=ed;)n[r++]=255&t|_h,t/=128;for(;t&$h;)n[r++]=255&t|_h,t>>>=7;return n[r]=0|t,e.bytes=r-i+1,n},_h=128,$h=-128,ed=Math.pow(2,31);var td=function e(t,n){var r,i=0,o=0,s=n=n||0,a=t.length;do{if(s>=a)throw e.bytes=0,new RangeError("Could not decode varint");r=t[s++],i+=o<28?(r&rd)<=nd);return e.bytes=s-n,i},nd=128,rd=127;var id=Math.pow(2,7),od=Math.pow(2,14),sd=Math.pow(2,21),ad=Math.pow(2,28),cd=Math.pow(2,35),ld=Math.pow(2,42),ud=Math.pow(2,49),hd=Math.pow(2,56),dd=Math.pow(2,63),fd={encode:Xh,decode:td,encodingLength:function(e){return e(fd.encode(e,t,n),t),gd=e=>fd.encodingLength(e),yd=(e,t)=>{const n=t.byteLength,r=gd(e),i=r+gd(n),o=new Uint8Array(i+n);return pd(e,o,0),pd(n,o,r),o.set(t,i),new bd(e,n,t,o)};class bd{constructor(e,t,n,r){this.code=e,this.size=t,this.digest=n,this.bytes=r}}const md=({name:e,code:t,encode:n})=>new vd(e,t,n);class vd{constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){const t=this.encode(e);return t instanceof Uint8Array?yd(this.code,t):t.then((e=>yd(this.code,e)))}throw Error("Unknown type, must be binary type")}}const wd=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Ed=md({name:"sha2-256",code:18,encode:wd("SHA-256")}),Sd=md({name:"sha2-512",code:19,encode:wd("SHA-512")});Object.freeze({__proto__:null,sha256:Ed,sha512:Sd});const Id=oh,Rd={code:0,name:"identity",encode:Id,digest:e=>yd(0,Id(e))};Object.freeze({__proto__:null,identity:Rd});new TextEncoder,new TextDecoder;const Ad={...gh,...bh,...vh,...Eh,...Rh,...Uh,...zh,...Dh,...Hh,...Qh};function xd(e){return null!=globalThis.Buffer?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Md(e,t,n,r){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:n},decoder:{decode:r}}}const Td=Md("utf8","u",(e=>"u"+new TextDecoder("utf8").decode(e)),(e=>(new TextEncoder).encode(e.substring(1)))),Od=Md("ascii","a",(e=>{let t="a";for(let n=0;n{const t=function(e=0){return null!=globalThis.Buffer&&null!=globalThis.Buffer.allocUnsafe?xd(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}((e=e.substring(1)).length);for(let n=0;n{if(!this.initialized){const e=await this.getKeyChain();typeof e<"u"&&(this.keychain=e),this.initialized=!0}},this.has=e=>(this.isInitialized(),this.keychain.has(e)),this.set=async(e,t)=>{this.isInitialized(),this.keychain.set(e,t),await this.persist()},this.get=e=>{this.isInitialized();const t=this.keychain.get(e);if(typeof t>"u"){const{message:t}=ou("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t},this.del=async e=>{this.isInitialized(),this.keychain.delete(e),await this.persist()},this.core=e,this.logger=(0,Rs.generateChildLogger)(t,this.name)}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,zl(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Kl(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class yf{constructor(e,t,n){this.core=e,this.logger=t,this.name="crypto",this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=e=>(this.isInitialized(),this.keychain.has(e)),this.getClientId=async()=>{this.isInitialized();return Pc(kc(await this.getClientSeed()).publicKey)},this.generateKeyPair=()=>{this.isInitialized();const e=function(){const e=zc.generateKeyPair();return{privateKey:Mc(e.secretKey,ol),publicKey:Mc(e.publicKey,ol)}}();return this.setPrivateKey(e.publicKey,e.privateKey)},this.signJWT=async e=>{this.isInitialized();const t=kc(await this.getClientSeed()),n=pl(),r=jd;return await Cc(n,e,r,t)},this.generateSharedKey=(e,t,n)=>{this.isInitialized();const r=function(e,t){const n=zc.sharedKey(Tc(e,ol),Tc(t,ol));return Mc(new Lc.t(jc.mE,n).expand(fl),ol)}(this.getPrivateKey(e),t);return this.setSymKey(r,n)},this.setSymKey=async(e,t)=>{this.isInitialized();const n=t||function(e){return Mc((0,jc.vp)(Tc(e,ol)),ol)}(e);return await this.keychain.set(n,e),n},this.deleteKeyPair=async e=>{this.isInitialized(),await this.keychain.del(e)},this.deleteSymKey=async e=>{this.isInitialized(),await this.keychain.del(e)},this.encode=async(e,t,n)=>{this.isInitialized();const r=vl(n),i=qs(t);if(wl(r)){const t=r.senderPublicKey,n=r.receiverPublicKey;e=await this.generateSharedKey(t,n)}const o=this.getSymKey(e),{type:s,senderPublicKey:a}=r;return bl({type:s,symKey:o,message:i,senderPublicKey:a})},this.decode=async(e,t,n)=>{this.isInitialized();const r=function(e,t){const n=ml(e);return vl({type:yl(n.type),senderPublicKey:typeof n.senderPublicKey<"u"?Mc(n.senderPublicKey,ol):void 0,receiverPublicKey:t?.receiverPublicKey})}(t,n);if(wl(r)){const t=r.receiverPublicKey,n=r.senderPublicKey;e=await this.generateSharedKey(t,n)}const i=function(e){const t=new Uc.OK(Tc(e.symKey,ol)),{sealed:n,iv:r}=ml(e.encoded),i=t.open(r,n);if(null===i)throw new Error("Failed to decrypt");return Mc(i,al)}({symKey:this.getSymKey(e),encoded:t});return Ks(i)},this.getPayloadType=e=>yl(ml(e).type),this.getPayloadSenderPublicKey=e=>{const t=ml(e);return t.senderPublicKey?Mc(t.senderPublicKey,ol):void 0},this.core=e,this.logger=(0,Rs.generateChildLogger)(t,this.name),this.keychain=n||new gf(this.core,this.logger)}get context(){return(0,Rs.getLoggerContext)(this.logger)}async setPrivateKey(e,t){return await this.keychain.set(e,t),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(Ld)}catch{e=pl(),await this.keychain.set(Ld,e)}return function(e,t="utf8"){const n=Pd[t];if(!n)throw new Error(`Unsupported encoding "${t}"`);return"utf8"!==t&&"utf-8"!==t||null==globalThis.Buffer||null==globalThis.Buffer.from?n.decoder.decode(`${n.prefix}${e}`):xd(globalThis.Buffer.from(e,"utf-8"))}(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class bf extends Ts{constructor(e,t){super(e,t),this.logger=e,this.core=t,this.messages=new Map,this.name="messages",this.version="0.3",this.initialized=!1,this.storagePrefix=kd,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const e=await this.getRelayerMessages();typeof e<"u"&&(this.messages=e),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}finally{this.initialized=!0}}},this.set=async(e,t)=>{this.isInitialized();const n=gl(t);let r=this.messages.get(e);return typeof r>"u"&&(r={}),typeof r[n]<"u"||(r[n]=t,this.messages.set(e,r),await this.persist()),n},this.get=e=>{this.isInitialized();let t=this.messages.get(e);return typeof t>"u"&&(t={}),t},this.has=(e,t)=>{this.isInitialized();return typeof this.get(e)[gl(t)]<"u"},this.del=async e=>{this.isInitialized(),this.messages.delete(e),await this.persist()},this.logger=(0,Rs.generateChildLogger)(e,this.name),this.core=t}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,zl(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Kl(e):void 0}async persist(){await this.setRelayerMessages(this.messages)}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class mf extends Os{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.events=new ws.EventEmitter,this.name="publisher",this.queue=new Map,this.publishTimeout=1e4,this.publish=async(e,t,n)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:n}});try{const r=n?.ttl||zd,i=Gl(n),o=n?.prompt||!1,s=n?.tag||0,a=n?.id||Lu().toString(),c={topic:e,message:t,opts:{ttl:r,relay:i,prompt:o,tag:s,id:a}};this.queue.set(a,c);try{await await Dl(this.rpcPublish(e,t,r,i,o,s,a),this.publishTimeout),this.relayer.events.emit(Gd,c)}catch{return this.logger.debug("Publishing Payload stalled"),void this.relayer.events.emit(Vd)}this.logger.debug("Successfully Published Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:e,message:t,opts:n}})}catch(e){throw this.logger.debug("Failed to Publish Payload"),this.logger.error(e),e}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.relayer=e,this.logger=(0,Rs.generateChildLogger)(t,this.name),this.registerEventListeners()}get context(){return(0,Rs.getLoggerContext)(this.logger)}rpcPublish(e,t,n,r,i,o,s){var a,c,l,u;const h={method:Jl(r.protocol).publish,params:{topic:e,message:t,ttl:n,prompt:i,tag:o},id:s};return lu(null==(a=h.params)?void 0:a.prompt)&&(null==(c=h.params)||delete c.prompt),lu(null==(l=h.params)?void 0:l.tag)&&(null==(u=h.params)||delete u.tag),this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:h}),this.relayer.request(h)}onPublish(e){this.queue.delete(e)}checkQueue(){this.queue.forEach((async e=>{const{topic:t,message:n,opts:r}=e;await this.publish(t,n,r)}))}registerEventListeners(){this.relayer.core.heartbeat.on(Is.HEARTBEAT_EVENTS.pulse,(()=>{this.checkQueue()})),this.relayer.on(Dd,(e=>{this.onPublish(e.id.toString())}))}}class vf{constructor(){this.map=new Map,this.set=(e,t)=>{const n=this.get(e);this.exists(e,t)||this.map.set(e,[...n,t])},this.get=e=>this.map.get(e)||[],this.exists=(e,t)=>this.get(e).includes(t),this.delete=(e,t)=>{if(typeof t>"u")return void this.map.delete(e);if(!this.map.has(e))return;const n=this.get(e);if(!this.exists(e,t))return;const r=n.filter((e=>e!==t));r.length?this.map.set(e,r):this.map.delete(e)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}var wf=Object.defineProperty,Ef=Object.defineProperties,Sf=Object.getOwnPropertyDescriptors,If=Object.getOwnPropertySymbols,Rf=Object.prototype.hasOwnProperty,Af=Object.prototype.propertyIsEnumerable,xf=(e,t,n)=>t in e?wf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Mf=(e,t)=>{for(var n in t||(t={}))Rf.call(t,n)&&xf(e,n,t[n]);if(If)for(var n of If(t))Af.call(t,n)&&xf(e,n,t[n]);return e},Tf=(e,t)=>Ef(e,Sf(t));class Of extends ks{constructor(e,t){super(e,t),this.relayer=e,this.logger=t,this.subscriptions=new Map,this.topicMap=new vf,this.events=new ws.EventEmitter,this.name="subscription",this.version="0.3",this.pending=new Map,this.cached=[],this.initialized=!1,this.pendingSubscriptionWatchLabel="pending_sub_watch_label",this.pollingInterval=20,this.storagePrefix=kd,this.subscribeTimeout=1e4,this.restartInProgress=!1,this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restart(),this.registerEventListeners(),this.onEnable(),this.clientId=await this.relayer.core.crypto.getClientId())},this.subscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}});try{const n=Gl(t),r={topic:e,relay:n};this.pending.set(e,r);const i=await this.rpcSubscribe(e,n);return this.onSubscribe(i,r),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:e,opts:t}}),i}catch(e){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(e),e}},this.unsubscribe=async(e,t)=>{await this.restartToComplete(),this.isInitialized(),typeof t?.id<"u"?await this.unsubscribeById(e,t.id,t):await this.unsubscribeByTopic(e,t)},this.isSubscribed=async e=>!!this.topics.includes(e)||await new Promise(((t,n)=>{const r=new Ds.Watch;r.start(this.pendingSubscriptionWatchLabel);const i=setInterval((()=>{!this.pending.has(e)&&this.topics.includes(e)&&(clearInterval(i),r.stop(this.pendingSubscriptionWatchLabel),t(!0)),r.elapsed(this.pendingSubscriptionWatchLabel)>=nf&&(clearInterval(i),r.stop(this.pendingSubscriptionWatchLabel),n(new Error("Subscription resolution timeout")))}),this.pollingInterval)})).catch((()=>!1)),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.restart=async()=>{this.restartInProgress=!0,await this.restore(),await this.reset(),this.restartInProgress=!1},this.relayer=e,this.logger=(0,Rs.generateChildLogger)(t,this.name),this.clientId=""}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}hasSubscription(e,t){let n=!1;try{n=this.getSubscription(e).topic===t}catch{}return n}onEnable(){this.cached=[],this.initialized=!0}onDisable(){this.cached=this.values,this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,t){const n=this.topicMap.get(e);await Promise.all(n.map((async n=>await this.unsubscribeById(e,n,t))))}async unsubscribeById(e,t,n){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:n}});try{const r=Gl(n);await this.rpcUnsubscribe(e,t,r);const i=su("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,t,i),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:t,opts:n}})}catch(e){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(e),e}}async rpcSubscribe(e,t){const n={method:Jl(t.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:n});try{await await Dl(this.relayer.request(n),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(Vd)}return gl(e+this.clientId)}async rpcBatchSubscribe(e){if(!e.length)return;const t={method:Jl(e[0].relay.protocol).batchSubscribe,params:{topics:e.map((e=>e.topic))}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:t});try{return await await Dl(this.relayer.request(t),this.subscribeTimeout)}catch{this.logger.debug("Outgoing Relay Payload stalled"),this.relayer.events.emit(Vd)}}rpcUnsubscribe(e,t,n){const r={method:Jl(n.protocol).unsubscribe,params:{topic:e,id:t}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r}),this.relayer.request(r)}onSubscribe(e,t){this.setSubscription(e,Tf(Mf({},t),{id:e})),this.pending.delete(t.topic)}onBatchSubscribe(e){e.length&&e.forEach((e=>{this.setSubscription(e.id,Mf({},e)),this.pending.delete(e.topic)}))}async onUnsubscribe(e,t,n){this.events.removeAllListeners(t),this.hasSubscription(t,e)&&this.deleteSubscription(t,n),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,t){this.subscriptions.has(e)||(this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:t}),this.addSubscription(e,t))}addSubscription(e,t){this.subscriptions.set(e,Mf({},t)),this.topicMap.set(t.topic,e),this.events.emit(_d,t)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const t=this.subscriptions.get(e);if(!t){const{message:t}=ou("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}deleteSubscription(e,t){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:t});const n=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(n.topic,e),this.events.emit($d,Tf(Mf({},n),{reason:t}))}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(ef)}async reset(){if(this.cached.length){const e=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let t=0;t"u"||!e.length)return;if(this.subscriptions.size){const{message:e}=ou("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(!e.length)return;const t=await this.rpcBatchSubscribe(e);au(t)&&this.onBatchSubscribe(t.map(((t,n)=>Tf(Mf({},e[n]),{id:t}))))}async onConnect(){this.restartInProgress||(await this.restart(),this.onEnable())}onDisconnect(){this.onDisable()}async checkPending(){if(this.relayer.transportExplicitlyClosed)return;const e=[];this.pending.forEach((t=>{e.push(t)})),await this.batchSubscribe(e)}registerEventListeners(){this.relayer.core.heartbeat.on(Is.HEARTBEAT_EVENTS.pulse,(async()=>{await this.checkPending()})),this.relayer.on(Bd,(async()=>{await this.onConnect()})),this.relayer.on(Wd,(()=>{this.onDisconnect()})),this.events.on(_d,(async e=>{const t=_d;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()})),this.events.on($d,(async e=>{const t=$d;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),await this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(){this.restartInProgress&&await new Promise((e=>{const t=setInterval((()=>{this.restartInProgress||(clearInterval(t),e())}),this.pollingInterval)}))}}var Pf=Object.defineProperty,Nf=Object.getOwnPropertySymbols,kf=Object.prototype.hasOwnProperty,Cf=Object.prototype.propertyIsEnumerable,Uf=(e,t,n)=>t in e?Pf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;class Lf extends Ps{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new ws.EventEmitter,this.name="relayer",this.transportExplicitlyClosed=!1,this.initialized=!1,this.reconnecting=!1,this.connectionStatusPollingInterval=20,this.staleConnectionErrors=["socket hang up","socket stalled"],this.request=async e=>{this.logger.debug("Publishing Request Payload");try{return await this.toEstablishConnection(),await this.provider.request(e)}catch(e){throw this.logger.debug("Failed to Publish Request"),this.logger.error(e),e}},this.core=e.core,this.logger=typeof e.logger<"u"&&"string"!=typeof e.logger?(0,Rs.generateChildLogger)(e.logger,this.name):(0,Rs.pino)((0,Rs.getDefaultLoggerOptions)({level:e.logger||"error"})),this.messages=new bf(this.logger,e.core),this.subscriber=new Of(this,this.logger),this.publisher=new mf(this,this.logger),this.relayUrl=e?.relayUrl||Kd,this.projectId=e.projectId,this.provider={}}async init(){this.logger.trace("Initialized"),await this.createProvider(),await Promise.all([this.messages.init(),this.transportOpen(),this.subscriber.init()]),this.registerEventListeners(),this.initialized=!0,setTimeout((async()=>{0===this.subscriber.topics.length&&(this.logger.info("No topics subscribted to after init, closing transport"),await this.transportClose(),this.transportExplicitlyClosed=!1)}),1e4)}get context(){return(0,Rs.getLoggerContext)(this.logger)}get connected(){return this.provider.connection.connected}get connecting(){return this.provider.connection.connecting}async publish(e,t,n){this.isInitialized(),await this.publisher.publish(e,t,n),await this.recordMessageEvent({topic:e,message:t,publishedAt:Date.now()})}async subscribe(e,t){this.isInitialized();let n="";return await Promise.all([new Promise((t=>{this.subscriber.once(_d,(n=>{n.topic===e&&t()}))})),new Promise((async r=>{n=await this.subscriber.subscribe(e,t),r()}))]),n}async unsubscribe(e,t){this.isInitialized(),await this.subscriber.unsubscribe(e,t)}on(e,t){this.events.on(e,t)}once(e,t){this.events.once(e,t)}off(e,t){this.events.off(e,t)}removeListener(e,t){this.events.removeListener(e,t)}async transportClose(){this.transportExplicitlyClosed=!0,this.connected&&(await this.provider.disconnect(),this.events.emit(Hd))}async transportOpen(e){if(this.transportExplicitlyClosed=!1,!this.reconnecting){this.relayUrl=e||this.relayUrl,this.reconnecting=!0;try{await Promise.all([new Promise((e=>{this.initialized||e(),this.subscriber.once(tf,(()=>{e()}))})),await Promise.race([new Promise((async(e,t)=>{await Dl(this.provider.connect(),5e3,"socket stalled").catch((e=>t(e))).then((()=>e())).finally((()=>this.removeListener(Hd,this.rejectTransportOpen)))})),new Promise((e=>this.once(Hd,this.rejectTransportOpen)))])])}catch(e){this.logger.error(e);const t=e;if(!this.isConnectionStalled(t.message))throw e;this.events.emit(Hd)}finally{this.reconnecting=!1}}}async restartTransport(e){this.transportExplicitlyClosed||(this.relayUrl=e||this.relayUrl,this.connected&&await Promise.all([new Promise((e=>{this.provider.once(Yd,(()=>{e()}))})),this.transportClose()]),await this.createProvider(),await this.transportOpen())}isConnectionStalled(e){return this.staleConnectionErrors.some((t=>e.includes(t)))}rejectTransportOpen(){throw new Error("closeTransport called before connection was established")}async createProvider(){const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new Xu(new $u(Ll({sdkVersion:"y",protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0}))),this.registerProviderListeners()}async recordMessageEvent(e){const{topic:t,message:n}=e;await this.messages.set(t,n)}async shouldIgnoreMessageEvent(e){const{topic:t,message:n}=e;return!await this.subscriber.isSubscribed(t)||this.messages.has(t,n)}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),Ju(e)){if(!e.method.endsWith("_subscription"))return;const t=e.params,{topic:n,message:r,publishedAt:i}=t.data,o={topic:n,message:r,publishedAt:i};this.logger.debug("Emitting Relayer Payload"),this.logger.trace(((e,t)=>{for(var n in t||(t={}))kf.call(t,n)&&Uf(e,n,t[n]);if(Nf)for(var n of Nf(t))Cf.call(t,n)&&Uf(e,n,t[n]);return e})({type:"event",event:t.id},o)),this.events.emit(t.id,o),await this.acknowledgePayload(e),await this.onMessageEvent(o)}else Zu(e)&&this.events.emit(Dd,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(this.events.emit(qd,e),await this.recordMessageEvent(e))}async acknowledgePayload(e){const t=zu(e.id,!0);await this.provider.connection.send(t)}registerProviderListeners(){this.provider.on(Jd,(e=>this.onProviderPayload(e))),this.provider.on(Zd,(()=>{this.events.emit(Bd)})),this.provider.on(Yd,(()=>{this.onProviderDisconnect()})),this.provider.on(Qd,(e=>{this.logger.error(e),this.events.emit(Fd,e)}))}registerEventListeners(){this.events.on(Vd,(async()=>{await this.restartTransport()}))}onProviderDisconnect(){this.events.emit(Wd),this.attemptToReconnect()}attemptToReconnect(){this.transportExplicitlyClosed||setTimeout((async()=>{await this.restartTransport()}),(0,Ds.toMiliseconds)(Xd))}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(!this.connected){if(this.connecting)return await new Promise((e=>{const t=setInterval((()=>{this.connected&&(clearInterval(t),e())}),this.connectionStatusPollingInterval)}));await this.restartTransport()}}}var jf=Object.defineProperty,zf=Object.getOwnPropertySymbols,Kf=Object.prototype.hasOwnProperty,qf=Object.prototype.propertyIsEnumerable,Df=(e,t,n)=>t in e?jf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Bf=(e,t)=>{for(var n in t||(t={}))Kf.call(t,n)&&Df(e,n,t[n]);if(zf)for(var n of zf(t))qf.call(t,n)&&Df(e,n,t[n]);return e};class Wf extends Ns{constructor(e,t,n,r=kd,i=void 0){super(e,t,n,r),this.core=e,this.logger=t,this.name=n,this.map=new Map,this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=kd,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>{this.getKey&&null!==e&&!lu(e)?this.map.set(this.getKey(e),e):function(e){var t;return null==(t=e?.proposer)?void 0:t.publicKey}(e)?this.map.set(e.id,e):function(e){return e?.topic}(e)&&this.map.set(e.topic,e)})),this.cached=[],this.initialized=!0)},this.set=async(e,t)=>{this.isInitialized(),this.map.has(e)?await this.update(e,t):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:e,value:t}),this.map.set(e,t),await this.persist())},this.get=e=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:e}),this.getData(e)),this.getAll=e=>(this.isInitialized(),e?this.values.filter((t=>Object.keys(e).every((n=>th()(t[n],e[n]))))):this.values),this.update=async(e,t)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:e,update:t});const n=Bf(Bf({},this.getData(e)),t);this.map.set(e,n),await this.persist()},this.delete=async(e,t)=>{this.isInitialized(),this.map.has(e)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:e,reason:t}),this.map.delete(e),await this.persist())},this.logger=(0,Rs.generateChildLogger)(t,this.name),this.storagePrefix=r,this.getKey=i}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const t=this.map.get(e);if(!t){const{message:t}=ou("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:e}=ou("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Ff{constructor(e,t){this.core=e,this.logger=t,this.name="pairing",this.version="0.3",this.events=new(Es()),this.initialized=!1,this.storagePrefix=kd,this.ignoredPayloadTypes=[ll],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:e})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...e])]},this.create=async()=>{this.isInitialized();const e=pl(),t=await this.core.crypto.setSymKey(e),n=Fl(Ds.FIVE_MINUTES),r={protocol:"irn"},i={topic:t,expiry:n,relay:r,active:!1},o=tu({protocol:this.core.protocol,version:this.core.version,topic:t,symKey:e,relay:r});return await this.pairings.set(t,i),await this.core.relayer.subscribe(t),this.core.expirer.set(t,n),{topic:t,uri:o}},this.pair=async e=>{this.isInitialized(),this.isValidPair(e);const{topic:t,symKey:n,relay:r}=function(e){const t=e.indexOf(":"),n=-1!==e.indexOf("?")?e.indexOf("?"):void 0,r=e.substring(0,t),i=e.substring(t+1,n).split("@"),o=typeof n<"u"?e.substring(n):"",s=el.parse(o);return{protocol:r,topic:eu(i[0]),version:parseInt(i[1],10),symKey:s.symKey,relay:$l(s)}}(e.uri);if(this.pairings.keys.includes(t))throw new Error(`Pairing already exists: ${t}`);if(this.core.crypto.hasKeys(t))throw new Error(`Keychain already exists: ${t}`);const i=Fl(Ds.FIVE_MINUTES),o={topic:t,relay:r,expiry:i,active:!1};return await this.pairings.set(t,o),await this.core.crypto.setSymKey(n,t),await this.core.relayer.subscribe(t,{relay:r}),this.core.expirer.set(t,i),e.activatePairing&&await this.activate({topic:t}),o},this.activate=async({topic:e})=>{this.isInitialized();const t=Fl(Ds.THIRTY_DAYS);await this.pairings.update(e,{active:!0,expiry:t}),this.core.expirer.set(e,t)},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.pairings.keys.includes(t)){const e=await this.sendRequest(t,"wc_pairingPing",{}),{done:n,resolve:r,reject:i}=ql();this.events.once(Hl("pairing_ping",e),(({error:e})=>{e?i(e):r()})),await n()}},this.updateExpiry=async({topic:e,expiry:t})=>{this.isInitialized(),await this.pairings.update(e,{expiry:t})},this.updateMetadata=async({topic:e,metadata:t})=>{this.isInitialized(),await this.pairings.update(e,{peerMetadata:t})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.pairings.keys.includes(t)&&(await this.sendRequest(t,"wc_pairingDelete",su("USER_DISCONNECTED")),await this.deletePairing(t))},this.sendRequest=async(e,t,n)=>{const r=ju(t,n),i=await this.core.crypto.encode(e,r),o=rf[t].req;return this.core.history.set(e,r),this.core.relayer.publish(e,i,o),r.id},this.sendResult=async(e,t,n)=>{const r=zu(e,n),i=await this.core.crypto.encode(t,r),o=await this.core.history.get(t,e),s=rf[o.request.method].res;await this.core.relayer.publish(t,i,s),await this.core.history.resolve(r)},this.sendError=async(e,t,n)=>{const r=Ku(e,n),i=await this.core.crypto.encode(t,r),o=await this.core.history.get(t,e),s=rf[o.request.method]?rf[o.request.method].res:rf.unregistered_method.res;await this.core.relayer.publish(t,i,s),await this.core.history.resolve(r)},this.deletePairing=async(e,t)=>{await this.core.relayer.unsubscribe(e),await Promise.all([this.pairings.delete(e,su("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(e),t?Promise.resolve():this.core.expirer.del(e)])},this.cleanup=async()=>{const e=this.pairings.getAll().filter((e=>Vl(e.expiry)));await Promise.all(e.map((e=>this.deletePairing(e.topic))))},this.onRelayEventRequest=e=>{const{topic:t,payload:n}=e,r=n.method;if(this.pairings.keys.includes(t))switch(r){case"wc_pairingPing":return this.onPairingPingRequest(t,n);case"wc_pairingDelete":return this.onPairingDeleteRequest(t,n);default:return this.onUnknownRpcMethodRequest(t,n)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:n}=e,r=(await this.core.history.get(t,n.id)).request.method;if(this.pairings.keys.includes(t)){if("wc_pairingPing"===r)return this.onPairingPingResponse(t,n);return this.onUnknownRpcMethodResponse(r)}},this.onPairingPingRequest=async(e,t)=>{const{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.events.emit("pairing_ping",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onPairingPingResponse=(e,t)=>{const{id:n}=t;setTimeout((()=>{Yu(t)?this.events.emit(Hl("pairing_ping",n),{}):Qu(t)&&this.events.emit(Hl("pairing_ping",n),{error:t.error})}),500)},this.onPairingDeleteRequest=async(e,t)=>{const{id:n}=t;try{this.isValidDisconnect({topic:e}),await this.deletePairing(e),this.events.emit("pairing_delete",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onUnknownRpcMethodRequest=async(e,t)=>{const{id:n,method:r}=t;try{if(this.registeredMethods.includes(r))return;const t=su("WC_METHOD_UNSUPPORTED",r);await this.sendError(n,e,t),this.logger.error(t)}catch(t){await this.sendError(n,e,t),this.logger.error(t)}},this.onUnknownRpcMethodResponse=e=>{this.registeredMethods.includes(e)||this.logger.error(su("WC_METHOD_UNSUPPORTED",e))},this.isValidPair=e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`pair() params: ${e}`);throw new Error(t)}if(!function(e){if(uu(e,!1))try{return typeof new URL(e)<"u"}catch{return!1}return!1}(e.uri)){const{message:t}=ou("MISSING_OR_INVALID",`pair() uri: ${e.uri}`);throw new Error(t)}},this.isValidPing=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidDisconnect=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidPairingTopic(t)},this.isValidPairingTopic=async e=>{if(!uu(e,!1)){const{message:t}=ou("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.pairings.keys.includes(e)){const{message:t}=ou("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Vl(this.pairings.get(e).expiry)){await this.deletePairing(e);const{message:t}=ou("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}},this.core=e,this.logger=(0,Rs.generateChildLogger)(t,this.name),this.pairings=new Wf(this.core,this.logger,this.name,this.storagePrefix)}get context(){return(0,Rs.getLoggerContext)(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(qd,(async e=>{const{topic:t,message:n}=e;if(this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(n)))return;const r=await this.core.crypto.decode(t,n);Ju(r)?(this.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):Zu(r)&&(await this.core.history.resolve(r),this.onRelayEventResponse({topic:t,payload:r}))}))}registerExpirerEvents(){this.core.expirer.on(hf,(async e=>{const{topic:t}=Wl(e.target);t&&this.pairings.keys.includes(t)&&(await this.deletePairing(t,!0),this.events.emit("pairing_expire",{topic:t}))}))}}class Vf extends Ms{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.records=new Map,this.events=new ws.EventEmitter,this.name="history",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=kd,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.records.set(e.id,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(e,t,n)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:e,request:t,chainId:n}),this.records.has(t.id))return;const r={id:t.id,topic:e,request:{method:t.method,params:t.params||null},chainId:n};this.records.set(r.id,r),this.events.emit(of,r)},this.resolve=async e=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:e}),!this.records.has(e.id))return;const t=await this.getRecord(e.id);typeof t.response>"u"&&(t.response=Qu(e)?{error:e.error}:{result:e.result},this.records.set(t.id,t),this.events.emit(sf,t))},this.get=async(e,t)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:e,id:t}),await this.getRecord(t)),this.delete=(e,t)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:t}),this.values.forEach((n=>{if(n.topic===e){if(typeof t<"u"&&n.id!==t)return;this.records.delete(n.id),this.events.emit(af,n)}}))},this.exists=async(e,t)=>(this.isInitialized(),!!this.records.has(t)&&(await this.getRecord(t)).topic===e),this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=(0,Rs.generateChildLogger)(t,this.name)}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach((t=>{if(typeof t.response<"u")return;const n={topic:t.topic,request:ju(t.request.method,t.request.params,t.id),chainId:t.chainId};return e.push(n)})),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const t=this.records.get(e);if(!t){const{message:t}=ou("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(t)}return t}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(cf)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:e}=ou("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(of,(e=>{const t=of;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()})),this.events.on(sf,(e=>{const t=sf;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()})),this.events.on(af,(e=>{const t=af;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,record:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Hf extends Cs{constructor(e,t){super(e,t),this.core=e,this.logger=t,this.expirations=new Map,this.events=new ws.EventEmitter,this.name="expirer",this.version="0.3",this.cached=[],this.initialized=!1,this.storagePrefix=kd,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach((e=>this.expirations.set(e.target,e))),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=e=>{try{const t=this.formatTarget(e);return typeof this.getExpiration(t)<"u"}catch{return!1}},this.set=(e,t)=>{this.isInitialized();const n=this.formatTarget(e),r={target:n,expiry:t};this.expirations.set(n,r),this.checkExpiry(n,r),this.events.emit(lf,{target:n,expiration:r})},this.get=e=>{this.isInitialized();const t=this.formatTarget(e);return this.getExpiration(t)},this.del=e=>{if(this.isInitialized(),this.has(e)){const t=this.formatTarget(e),n=this.getExpiration(t);this.expirations.delete(t),this.events.emit(uf,{target:t,expiration:n})}},this.on=(e,t)=>{this.events.on(e,t)},this.once=(e,t)=>{this.events.once(e,t)},this.off=(e,t)=>{this.events.off(e,t)},this.removeListener=(e,t)=>{this.events.removeListener(e,t)},this.logger=(0,Rs.generateChildLogger)(t,this.name)}get context(){return(0,Rs.getLoggerContext)(this.logger)}get storageKey(){return this.storagePrefix+this.version+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if("string"==typeof e)return function(e){return Bl("topic",e)}(e);if("number"==typeof e)return function(e){return Bl("id",e)}(e);const{message:t}=ou("UNKNOWN_TYPE","Target type: "+typeof e);throw new Error(t)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(df)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:e}=ou("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(e),new Error(e)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const t=this.expirations.get(e);if(!t){const{message:t}=ou("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(t),new Error(t)}return t}checkExpiry(e,t){const{expiry:n}=t;(0,Ds.toMiliseconds)(n)-Date.now()<=0&&this.expire(e,t)}expire(e,t){this.expirations.delete(e),this.events.emit(hf,{target:e,expiration:t})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach(((e,t)=>this.checkExpiry(t,e)))}registerEventListeners(){this.core.heartbeat.on(Is.HEARTBEAT_EVENTS.pulse,(()=>this.checkExpirations())),this.events.on(lf,(e=>{const t=lf;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(hf,(e=>{const t=hf;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()})),this.events.on(uf,(e=>{const t=uf;this.logger.info(`Emitting ${t}`),this.logger.debug({type:"event",event:t,data:e}),this.persist()}))}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}}class Gf extends Us{constructor(e,t){super(e,t),this.projectId=e,this.logger=t,this.name=ff,this.initialized=!1,this.init=async e=>{Nl()||!kl()||(this.verifyUrl=e?.verifyUrl||pf,await this.createIframe())},this.register=async e=>{var t;this.initialized||await this.init(),this.iframe&&(null==(t=this.iframe.contentWindow)||t.postMessage(e.attestationId,this.verifyUrl),this.logger.info(`postMessage sent: ${e.attestationId} ${this.verifyUrl}`))},this.resolve=async e=>{var t;if(this.isDevEnv)return"";this.logger.info(`resolving attestation: ${e.attestationId}`);const n=this.startAbortTimer(Ds.FIVE_SECONDS),r=await fetch(`${this.verifyUrl}/attestation/${e.attestationId}`,{signal:this.abortController.signal});return clearTimeout(n),200===r.status?null==(t=await r.json())?void 0:t.origin:""},this.createIframe=async()=>{try{await Promise.race([new Promise(((e,t)=>{if(document.getElementById(ff))return e();const n=document.createElement("iframe");n.setAttribute("id",ff),n.setAttribute("src",`${this.verifyUrl}/${this.projectId}`),n.style.display="none",n.addEventListener("load",(()=>{this.initialized=!0,e()})),n.addEventListener("error",(e=>{t(e)})),document.body.append(n),this.iframe=n})),new Promise((e=>{setTimeout((()=>e("iframe load timeout")),(0,Ds.toMiliseconds)(Ds.ONE_SECOND/2))}))])}catch(e){this.logger.error(`Verify iframe failed to load: ${this.verifyUrl}`),this.logger.error(e)}},this.logger=(0,Rs.generateChildLogger)(t,this.name),this.verifyUrl=pf,this.abortController=new AbortController,this.isDevEnv=Pl()&&nh.env.IS_VITEST}get context(){return(0,Rs.getLoggerContext)(this.logger)}startAbortTimer(e){return setTimeout((()=>this.abortController.abort()),(0,Ds.toMiliseconds)(e))}}var Jf=Object.defineProperty,Zf=Object.getOwnPropertySymbols,Yf=Object.prototype.hasOwnProperty,Qf=Object.prototype.propertyIsEnumerable,Xf=(e,t,n)=>t in e?Jf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_f=(e,t)=>{for(var n in t||(t={}))Yf.call(t,n)&&Xf(e,n,t[n]);if(Zf)for(var n of Zf(t))Qf.call(t,n)&&Xf(e,n,t[n]);return e};class $f extends xs{constructor(e){super(e),this.protocol="wc",this.version=2,this.name=Nd,this.events=new ws.EventEmitter,this.initialized=!1,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Kd;const t=typeof e?.logger<"u"&&"string"!=typeof e?.logger?e.logger:(0,Rs.pino)((0,Rs.getDefaultLoggerOptions)({level:e?.logger||Cd}));this.logger=(0,Rs.generateChildLogger)(t,this.name),this.heartbeat=new Is.HeartBeat,this.crypto=new yf(this,this.logger,e?.keychain),this.history=new Vf(this,this.logger),this.expirer=new Hf(this,this.logger),this.storage=null!=e&&e.storage?e.storage:new Ss.ZP(_f(_f({},Ud),e?.storageOptions)),this.relayer=new Lf({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new Ff(this,this.logger),this.verify=new Gf(this.projectId||"",this.logger)}static async init(e){const t=new $f(e);return await t.initialize(),t}get context(){return(0,Rs.getLoggerContext)(this.logger)}async start(){this.initialized||await this.initialize()}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(`Core Initialization Failure at epoch ${Date.now()}`,e),this.logger.error(e.message),e}}}const ep=$f,tp="client",np=`wc@2:${tp}:`,rp=tp,ip="error",op=Ds.SEVEN_DAYS,sp={wc_sessionPropose:{req:{ttl:Ds.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:Ds.FIVE_MINUTES,prompt:!1,tag:1101}},wc_sessionSettle:{req:{ttl:Ds.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:Ds.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:Ds.ONE_DAY,prompt:!1,tag:1104},res:{ttl:Ds.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:Ds.ONE_DAY,prompt:!1,tag:1106},res:{ttl:Ds.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:Ds.FIVE_MINUTES,prompt:!0,tag:1108},res:{ttl:Ds.FIVE_MINUTES,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:Ds.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:Ds.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:Ds.ONE_DAY,prompt:!1,tag:1112},res:{ttl:Ds.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:Ds.THIRTY_SECONDS,prompt:!1,tag:1114},res:{ttl:Ds.THIRTY_SECONDS,prompt:!1,tag:1115}}},ap={min:Ds.FIVE_MINUTES,max:Ds.SEVEN_DAYS},cp=["wc_sessionPropose","wc_sessionRequest","wc_authRequest"];var lp=Object.defineProperty,up=Object.defineProperties,hp=Object.getOwnPropertyDescriptors,dp=Object.getOwnPropertySymbols,fp=Object.prototype.hasOwnProperty,pp=Object.prototype.propertyIsEnumerable,gp=(e,t,n)=>t in e?lp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,yp=(e,t)=>{for(var n in t||(t={}))fp.call(t,n)&&gp(e,n,t[n]);if(dp)for(var n of dp(t))pp.call(t,n)&&gp(e,n,t[n]);return e},bp=(e,t)=>up(e,hp(t));class mp extends js{constructor(e){super(e),this.name="engine",this.events=new(Es()),this.initialized=!1,this.ignoredPayloadTypes=[ll],this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.client.core.pairing.register({methods:Object.keys(sp)}),this.initialized=!0)},this.connect=async e=>{this.isInitialized();const t=bp(yp({},e),{requiredNamespaces:e.requiredNamespaces||{},optionalNamespaces:e.optionalNamespaces||{}});await this.isValidConnect(t);const{pairingTopic:n,requiredNamespaces:r,optionalNamespaces:i,sessionProperties:o,relays:s}=t;let a,c=n,l=!1;if(c&&(l=this.client.core.pairing.pairings.get(c).active),!c||!l){const{topic:e,uri:t}=await this.client.core.pairing.create();c=e,a=t}const u=await this.client.core.crypto.generateKeyPair(),h=yp({requiredNamespaces:r,optionalNamespaces:i,relays:s??[{protocol:"irn"}],proposer:{publicKey:u,metadata:this.client.metadata}},o&&{sessionProperties:o}),{reject:d,resolve:f,done:p}=ql(Ds.FIVE_MINUTES,"Proposal expired");if(this.events.once(Hl("session_connect"),(async({error:e,session:t})=>{if(e)d(e);else if(t){t.self.publicKey=u;const e=bp(yp({},t),{requiredNamespaces:t.requiredNamespaces,optionalNamespaces:t.optionalNamespaces});await this.client.session.set(t.topic,e),await this.setExpiry(t.topic,t.expiry),c&&await this.client.core.pairing.updateMetadata({topic:c,metadata:t.peer.metadata}),f(e)}})),!c){const{message:e}=ou("NO_MATCHING_KEY",`connect() pairing topic: ${c}`);throw new Error(e)}const g=await this.sendRequest(c,"wc_sessionPropose",h),y=Fl(Ds.FIVE_MINUTES);return await this.setProposal(g,yp({id:g,expiry:y},h)),{uri:a,approval:p}},this.pair=async e=>(this.isInitialized(),await this.client.core.pairing.pair(e)),this.approve=async e=>{this.isInitialized(),await this.isValidApprove(e);const{id:t,relayProtocol:n,namespaces:r,sessionProperties:i}=e,o=this.client.proposal.get(t);let{pairingTopic:s,proposer:a,requiredNamespaces:c,optionalNamespaces:l}=o;s=s||"",cu(c)||(c=function(e,t){const n=bu(e,t);if(n)throw new Error(n.message);const r={};for(const[t,n]of Object.entries(e))r[t]={methods:n.methods,events:n.events,chains:n.accounts.map((e=>`${e.split(":")[0]}:${e.split(":")[1]}`))};return r}(r,"approve()"));const u=await this.client.core.crypto.generateKeyPair(),h=a.publicKey,d=await this.client.core.crypto.generateSharedKey(u,h);s&&t&&(await this.client.core.pairing.updateMetadata({topic:s,metadata:a.metadata}),await this.sendResult(t,s,{relay:{protocol:n??"irn"},responderPublicKey:u}),await this.client.proposal.delete(t,su("USER_DISCONNECTED")),await this.client.core.pairing.activate({topic:s}));const f=yp({relay:{protocol:n??"irn"},namespaces:r,requiredNamespaces:c,optionalNamespaces:l,pairingTopic:s,controller:{publicKey:u,metadata:this.client.metadata},expiry:Fl(op)},i&&{sessionProperties:i});await this.client.core.relayer.subscribe(d),await this.sendRequest(d,"wc_sessionSettle",f);const p=bp(yp({},f),{topic:d,pairingTopic:s,acknowledged:!1,self:f.controller,peer:{publicKey:a.publicKey,metadata:a.metadata},controller:u});return await this.client.session.set(d,p),await this.setExpiry(d,Fl(op)),{topic:d,acknowledged:()=>new Promise((e=>setTimeout((()=>e(this.client.session.get(d))),500)))}},this.reject=async e=>{this.isInitialized(),await this.isValidReject(e);const{id:t,reason:n}=e,{pairingTopic:r}=this.client.proposal.get(t);r&&(await this.sendError(t,r,n),await this.client.proposal.delete(t,su("USER_DISCONNECTED")))},this.update=async e=>{this.isInitialized(),await this.isValidUpdate(e);const{topic:t,namespaces:n}=e,r=await this.sendRequest(t,"wc_sessionUpdate",{namespaces:n}),{done:i,resolve:o,reject:s}=ql();return this.events.once(Hl("session_update",r),(({error:e})=>{e?s(e):o()})),await this.client.session.update(t,{namespaces:n}),{acknowledged:i}},this.extend=async e=>{this.isInitialized(),await this.isValidExtend(e);const{topic:t}=e,n=await this.sendRequest(t,"wc_sessionExtend",{}),{done:r,resolve:i,reject:o}=ql();return this.events.once(Hl("session_extend",n),(({error:e})=>{e?o(e):i()})),await this.setExpiry(t,Fl(op)),{acknowledged:r}},this.request=async e=>{this.isInitialized(),await this.isValidRequest(e);const{chainId:t,request:n,topic:r,expiry:i}=e,o=await this.sendRequest(r,"wc_sessionRequest",{request:n,chainId:t},i),{done:s,resolve:a,reject:c}=ql(i);return this.events.once(Hl("session_request",o),(({error:e,result:t})=>{e?c(e):a(t)})),this.client.events.emit("session_request_sent",{topic:r,request:n,chainId:t,id:o}),await s()},this.respond=async e=>{this.isInitialized(),await this.isValidRespond(e);const{topic:t,response:n}=e,{id:r}=n;Yu(n)?await this.sendResult(r,t,n.result):Qu(n)&&await this.sendError(r,t,n.error),this.deletePendingSessionRequest(e.response.id,{message:"fulfilled",code:0})},this.ping=async e=>{this.isInitialized(),await this.isValidPing(e);const{topic:t}=e;if(this.client.session.keys.includes(t)){const e=await this.sendRequest(t,"wc_sessionPing",{}),{done:n,resolve:r,reject:i}=ql();this.events.once(Hl("session_ping",e),(({error:e})=>{e?i(e):r()})),await n()}else this.client.core.pairing.pairings.keys.includes(t)&&await this.client.core.pairing.ping({topic:t})},this.emit=async e=>{this.isInitialized(),await this.isValidEmit(e);const{topic:t,event:n,chainId:r}=e;await this.sendRequest(t,"wc_sessionEvent",{event:n,chainId:r})},this.disconnect=async e=>{this.isInitialized(),await this.isValidDisconnect(e);const{topic:t}=e;this.client.session.keys.includes(t)?(await this.sendRequest(t,"wc_sessionDelete",su("USER_DISCONNECTED")),await this.deleteSession(t)):await this.client.core.pairing.disconnect({topic:t})},this.find=e=>(this.isInitialized(),this.client.session.getAll().filter((t=>function(e,t){const{requiredNamespaces:n}=t,r=Object.keys(e.namespaces),i=Object.keys(n);let o=!0;return!!jl(i,r)&&(r.forEach((t=>{const{accounts:r,methods:i,events:s}=e.namespaces[t],a=nu(r),c=n[t];jl(rl(t,c),a)&&jl(c.methods,i)&&jl(c.events,s)||(o=!1)})),o)}(t,e)))),this.getPendingSessionRequests=()=>(this.isInitialized(),this.client.pendingRequest.getAll()),this.cleanupDuplicatePairings=async e=>{try{const t=this.client.core.pairing.pairings.get(e.pairingTopic),n=this.client.core.pairing.pairings.getAll().filter((n=>{var r,i;return(null==(r=n.peerMetadata)?void 0:r.url)&&(null==(i=n.peerMetadata)?void 0:i.url)===e.self.metadata.url&&n.topic!==t.topic}));if(0===n.length)return;this.client.logger.info(`Cleaning up ${n.length} duplicate pairing(s)`),await Promise.all(n.map((e=>this.client.core.pairing.disconnect({topic:e.topic})))),this.client.logger.info("Duplicate pairings clean up finished")}catch(e){this.client.logger.error(e)}},this.deleteSession=async(e,t)=>{const{self:n}=this.client.session.get(e);await this.client.core.relayer.unsubscribe(e),await Promise.all([this.client.session.delete(e,su("USER_DISCONNECTED")),this.client.core.crypto.deleteKeyPair(n.publicKey),this.client.core.crypto.deleteSymKey(e),t?Promise.resolve():this.client.core.expirer.del(e)])},this.deleteProposal=async(e,t)=>{await Promise.all([this.client.proposal.delete(e,su("USER_DISCONNECTED")),t?Promise.resolve():this.client.core.expirer.del(e)])},this.deletePendingSessionRequest=async(e,t,n=!1)=>{await Promise.all([this.client.pendingRequest.delete(e,t),n?Promise.resolve():this.client.core.expirer.del(e)])},this.setExpiry=async(e,t)=>{this.client.session.keys.includes(e)&&await this.client.session.update(e,{expiry:t}),this.client.core.expirer.set(e,t)},this.setProposal=async(e,t)=>{await this.client.proposal.set(e,t),this.client.core.expirer.set(e,t.expiry)},this.setPendingSessionRequest=async e=>{const t=sp.wc_sessionRequest.req.ttl,{id:n,topic:r,params:i}=e;await this.client.pendingRequest.set(n,{id:n,topic:r,params:i}),t&&this.client.core.expirer.set(n,Fl(t))},this.sendRequest=async(e,t,n,r)=>{const i=ju(t,n);if(kl()&&cp.includes(t)){const e=gl(JSON.stringify(i));await this.client.core.verify.register({attestationId:e})}const o=await this.client.core.crypto.encode(e,i),s=sp[t].req;return r&&(s.ttl=r),this.client.core.history.set(e,i),this.client.core.relayer.publish(e,o,s),i.id},this.sendResult=async(e,t,n)=>{const r=zu(e,n),i=await this.client.core.crypto.encode(t,r),o=await this.client.core.history.get(t,e),s=sp[o.request.method].res;this.client.core.relayer.publish(t,i,s),await this.client.core.history.resolve(r)},this.sendError=async(e,t,n)=>{const r=Ku(e,n),i=await this.client.core.crypto.encode(t,r),o=await this.client.core.history.get(t,e),s=sp[o.request.method].res;this.client.core.relayer.publish(t,i,s),await this.client.core.history.resolve(r)},this.cleanup=async()=>{const e=[],t=[];this.client.session.getAll().forEach((t=>{Vl(t.expiry)&&e.push(t.topic)})),this.client.proposal.getAll().forEach((e=>{Vl(e.expiry)&&t.push(e.id)})),await Promise.all([...e.map((e=>this.deleteSession(e))),...t.map((e=>this.deleteProposal(e)))])},this.onRelayEventRequest=e=>{const{topic:t,payload:n}=e,r=n.method;switch(r){case"wc_sessionPropose":return this.onSessionProposeRequest(t,n);case"wc_sessionSettle":return this.onSessionSettleRequest(t,n);case"wc_sessionUpdate":return this.onSessionUpdateRequest(t,n);case"wc_sessionExtend":return this.onSessionExtendRequest(t,n);case"wc_sessionPing":return this.onSessionPingRequest(t,n);case"wc_sessionDelete":return this.onSessionDeleteRequest(t,n);case"wc_sessionRequest":return this.onSessionRequest(t,n);case"wc_sessionEvent":return this.onSessionEventRequest(t,n);default:return this.client.logger.info(`Unsupported request method ${r}`)}},this.onRelayEventResponse=async e=>{const{topic:t,payload:n}=e,r=(await this.client.core.history.get(t,n.id)).request.method;switch(r){case"wc_sessionPropose":return this.onSessionProposeResponse(t,n);case"wc_sessionSettle":return this.onSessionSettleResponse(t,n);case"wc_sessionUpdate":return this.onSessionUpdateResponse(t,n);case"wc_sessionExtend":return this.onSessionExtendResponse(t,n);case"wc_sessionPing":return this.onSessionPingResponse(t,n);case"wc_sessionRequest":return this.onSessionRequestResponse(t,n);default:return this.client.logger.info(`Unsupported response method ${r}`)}},this.onSessionProposeRequest=async(e,t)=>{const{params:n,id:r}=t;try{this.isValidConnect(yp({},t.params));const i=Fl(Ds.FIVE_MINUTES),o=yp({id:r,pairingTopic:e,expiry:i},n);await this.setProposal(r,o);const s=gl(JSON.stringify(t)),a=await this.getVerifyContext(s,o.proposer.metadata);this.client.events.emit("session_proposal",{id:r,params:o,verifyContext:a})}catch(t){await this.sendError(r,e,t),this.client.logger.error(t)}},this.onSessionProposeResponse=async(e,t)=>{const{id:n}=t;if(Yu(t)){const{result:r}=t;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:r});const i=this.client.proposal.get(n);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:i});const o=i.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:o});const s=r.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:s});const a=await this.client.core.crypto.generateSharedKey(o,s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",sessionTopic:a});const c=await this.client.core.relayer.subscribe(a);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:c}),await this.client.core.pairing.activate({topic:e})}else Qu(t)&&(await this.client.proposal.delete(n,su("USER_DISCONNECTED")),this.events.emit(Hl("session_connect"),{error:t.error}))},this.onSessionSettleRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidSessionSettleRequest(r);const{relay:n,controller:i,expiry:o,namespaces:s,requiredNamespaces:a,optionalNamespaces:c,sessionProperties:l,pairingTopic:u}=t.params,h=yp({topic:e,relay:n,expiry:o,namespaces:s,acknowledged:!0,pairingTopic:u,requiredNamespaces:a,optionalNamespaces:c,controller:i.publicKey,self:{publicKey:"",metadata:this.client.metadata},peer:{publicKey:i.publicKey,metadata:i.metadata}},l&&{sessionProperties:l});await this.sendResult(t.id,e,!0),this.events.emit(Hl("session_connect"),{session:h}),this.cleanupDuplicatePairings(h)}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionSettleResponse=async(e,t)=>{const{id:n}=t;Yu(t)?(await this.client.session.update(e,{acknowledged:!0}),this.events.emit(Hl("session_approve",n),{})):Qu(t)&&(await this.client.session.delete(e,su("USER_DISCONNECTED")),this.events.emit(Hl("session_approve",n),{error:t.error}))},this.onSessionUpdateRequest=async(e,t)=>{const{params:n,id:r}=t;try{this.isValidUpdate(yp({topic:e},n)),await this.client.session.update(e,{namespaces:n.namespaces}),await this.sendResult(r,e,!0),this.client.events.emit("session_update",{id:r,topic:e,params:n})}catch(t){await this.sendError(r,e,t),this.client.logger.error(t)}},this.onSessionUpdateResponse=(e,t)=>{const{id:n}=t;Yu(t)?this.events.emit(Hl("session_update",n),{}):Qu(t)&&this.events.emit(Hl("session_update",n),{error:t.error})},this.onSessionExtendRequest=async(e,t)=>{const{id:n}=t;try{this.isValidExtend({topic:e}),await this.setExpiry(e,Fl(op)),await this.sendResult(n,e,!0),this.client.events.emit("session_extend",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionExtendResponse=(e,t)=>{const{id:n}=t;Yu(t)?this.events.emit(Hl("session_extend",n),{}):Qu(t)&&this.events.emit(Hl("session_extend",n),{error:t.error})},this.onSessionPingRequest=async(e,t)=>{const{id:n}=t;try{this.isValidPing({topic:e}),await this.sendResult(n,e,!0),this.client.events.emit("session_ping",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionPingResponse=(e,t)=>{const{id:n}=t;setTimeout((()=>{Yu(t)?this.events.emit(Hl("session_ping",n),{}):Qu(t)&&this.events.emit(Hl("session_ping",n),{error:t.error})}),500)},this.onSessionDeleteRequest=async(e,t)=>{const{id:n}=t;try{this.isValidDisconnect({topic:e,reason:t.params}),await Promise.all([new Promise((t=>{this.client.core.relayer.once(Gd,(async()=>{t(await this.deleteSession(e))}))})),this.sendResult(n,e,!0)]),this.client.events.emit("session_delete",{id:n,topic:e})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidRequest(yp({topic:e},r)),await this.setPendingSessionRequest({id:n,topic:e,params:r});const i=gl(JSON.stringify(t)),o=this.client.session.get(e),s=await this.getVerifyContext(i,o.peer.metadata);this.client.events.emit("session_request",{id:n,topic:e,params:r,verifyContext:s})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.onSessionRequestResponse=(e,t)=>{const{id:n}=t;Yu(t)?this.events.emit(Hl("session_request",n),{result:t.result}):Qu(t)&&this.events.emit(Hl("session_request",n),{error:t.error})},this.onSessionEventRequest=async(e,t)=>{const{id:n,params:r}=t;try{this.isValidEmit(yp({topic:e},r)),this.client.events.emit("session_event",{id:n,topic:e,params:r})}catch(t){await this.sendError(n,e,t),this.client.logger.error(t)}},this.isValidConnect=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(e)}`);throw new Error(t)}const{pairingTopic:t,requiredNamespaces:n,optionalNamespaces:r,sessionProperties:i,relays:o}=e;if(lu(t)||await this.isValidPairingTopic(t),!function(e,t){let n=!1;return t&&!e?n=!0:e&&au(e)&&e.length&&e.forEach((e=>{n=mu(e)})),n}(o,!0)){const{message:e}=ou("MISSING_OR_INVALID",`connect() relays: ${o}`);throw new Error(e)}!lu(n)&&0!==cu(n)&&this.validateNamespaces(n,"requiredNamespaces"),!lu(r)&&0!==cu(r)&&this.validateNamespaces(r,"optionalNamespaces"),lu(i)||this.validateSessionProps(i,"sessionProperties")},this.validateNamespaces=(e,t)=>{const n=function(e,t,n){let r=null;if(e&&cu(e)){const n=yu(e,t);n&&(r=n);const i=pu(e,t);i&&(r=i)}else r=ou("MISSING_OR_INVALID",`${t}, ${n} should be an object with data`);return r}(e,"connect()",t);if(n)throw new Error(n.message)},this.isValidApprove=async e=>{if(!vu(e))throw new Error(ou("MISSING_OR_INVALID",`approve() params: ${e}`).message);const{id:t,namespaces:n,relayProtocol:r,sessionProperties:i}=e;await this.isValidProposalId(t);const o=this.client.proposal.get(t),s=bu(n,"approve()");if(s)throw new Error(s.message);const a=Iu(o.requiredNamespaces,n,"approve()");if(a)throw new Error(a.message);if(!uu(r,!0)){const{message:e}=ou("MISSING_OR_INVALID",`approve() relayProtocol: ${r}`);throw new Error(e)}lu(i)||this.validateSessionProps(i,"sessionProperties")},this.isValidReject=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`reject() params: ${e}`);throw new Error(t)}const{id:t,reason:n}=e;if(await this.isValidProposalId(t),!function(e){return!!(e&&"object"==typeof e&&e.code&&hu(e.code,!1)&&e.message&&uu(e.message,!1))}(n)){const{message:e}=ou("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidSessionSettleRequest=e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${e}`);throw new Error(t)}const{relay:t,controller:n,namespaces:r,expiry:i}=e;if(!mu(t)){const{message:e}=ou("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(e)}const o=function(e,t){let n=null;return uu(e?.publicKey,!1)||(n=ou("MISSING_OR_INVALID",`${t} controller public key should be a string`)),n}(n,"onSessionSettleRequest()");if(o)throw new Error(o.message);const s=bu(r,"onSessionSettleRequest()");if(s)throw new Error(s.message);if(Vl(i)){const{message:e}=ou("EXPIRED","onSessionSettleRequest()");throw new Error(e)}},this.isValidUpdate=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`update() params: ${e}`);throw new Error(t)}const{topic:t,namespaces:n}=e;await this.isValidSessionTopic(t);const r=this.client.session.get(t),i=bu(n,"update()");if(i)throw new Error(i.message);const o=Iu(r.requiredNamespaces,n,"update()");if(o)throw new Error(o.message)},this.isValidExtend=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`extend() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionTopic(t)},this.isValidRequest=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`request() params: ${e}`);throw new Error(t)}const{topic:t,request:n,chainId:r,expiry:i}=e;await this.isValidSessionTopic(t);const{namespaces:o}=this.client.session.get(t);if(!wu(o,r)){const{message:e}=ou("MISSING_OR_INVALID",`request() chainId: ${r}`);throw new Error(e)}if(!function(e){return!(lu(e)||!uu(e.method,!1))}(n)){const{message:e}=ou("MISSING_OR_INVALID",`request() ${JSON.stringify(n)}`);throw new Error(e)}if(!Eu(o,r,n.method)){const{message:e}=ou("MISSING_OR_INVALID",`request() method: ${n.method}`);throw new Error(e)}if(i&&!function(e,t){return hu(e,!1)&&e<=t.max&&e>=t.min}(i,ap)){const{message:e}=ou("MISSING_OR_INVALID",`request() expiry: ${i}. Expiry must be a number (in seconds) between ${ap.min} and ${ap.max}`);throw new Error(e)}},this.isValidRespond=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`respond() params: ${e}`);throw new Error(t)}const{topic:t,response:n}=e;if(await this.isValidSessionTopic(t),!function(e){return!(lu(e)||lu(e.result)&&lu(e.error)||!hu(e.id,!1)||!uu(e.jsonrpc,!1))}(n)){const{message:e}=ou("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidPing=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`ping() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.isValidEmit=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`emit() params: ${e}`);throw new Error(t)}const{topic:t,event:n,chainId:r}=e;await this.isValidSessionTopic(t);const{namespaces:i}=this.client.session.get(t);if(!wu(i,r)){const{message:e}=ou("MISSING_OR_INVALID",`emit() chainId: ${r}`);throw new Error(e)}if(!function(e){return!(lu(e)||!uu(e.name,!1))}(n)){const{message:e}=ou("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(n)}`);throw new Error(e)}if(!Su(i,r,n.name)){const{message:e}=ou("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(n)}`);throw new Error(e)}},this.isValidDisconnect=async e=>{if(!vu(e)){const{message:t}=ou("MISSING_OR_INVALID",`disconnect() params: ${e}`);throw new Error(t)}const{topic:t}=e;await this.isValidSessionOrPairingTopic(t)},this.getVerifyContext=async(e,t)=>{const n={verified:{verifyUrl:t.verifyUrl||"",validation:"UNKNOWN",origin:t.url||""}};try{const r=await this.client.core.verify.resolve({attestationId:e,verifyUrl:t.verifyUrl});r&&(n.verified.origin=r,n.verified.validation=r===t.url?"VALID":"INVALID")}catch(e){this.client.logger.error(e)}return this.client.logger.info(`Verify context: ${JSON.stringify(n)}`),n},this.validateSessionProps=(e,t)=>{Object.values(e).forEach((e=>{if(!uu(e,!1)){const{message:n}=ou("MISSING_OR_INVALID",`${t} must be in Record format. Received: ${JSON.stringify(e)}`);throw new Error(n)}}))}}isInitialized(){if(!this.initialized){const{message:e}=ou("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.client.core.relayer.on(qd,(async e=>{const{topic:t,message:n}=e;if(this.ignoredPayloadTypes.includes(this.client.core.crypto.getPayloadType(n)))return;const r=await this.client.core.crypto.decode(t,n);Ju(r)?(this.client.core.history.set(t,r),this.onRelayEventRequest({topic:t,payload:r})):Zu(r)&&(await this.client.core.history.resolve(r),this.onRelayEventResponse({topic:t,payload:r}))}))}registerExpirerEvents(){this.client.core.expirer.on(hf,(async e=>{const{topic:t,id:n}=Wl(e.target);if(n&&this.client.pendingRequest.keys.includes(n))return await this.deletePendingSessionRequest(n,ou("EXPIRED"),!0);t?this.client.session.keys.includes(t)&&(await this.deleteSession(t,!0),this.client.events.emit("session_expire",{topic:t})):n&&(await this.deleteProposal(n,!0),this.client.events.emit("proposal_expire",{id:n}))}))}isValidPairingTopic(e){if(!uu(e,!1)){const{message:t}=ou("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(t)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:t}=ou("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(t)}if(Vl(this.client.core.pairing.pairings.get(e).expiry)){const{message:t}=ou("EXPIRED",`pairing topic: ${e}`);throw new Error(t)}}async isValidSessionTopic(e){if(!uu(e,!1)){const{message:t}=ou("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(t)}if(!this.client.session.keys.includes(e)){const{message:t}=ou("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(t)}if(Vl(this.client.session.get(e).expiry)){await this.deleteSession(e);const{message:t}=ou("EXPIRED",`session topic: ${e}`);throw new Error(t)}}async isValidSessionOrPairingTopic(e){if(this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else{if(!this.client.core.pairing.pairings.keys.includes(e)){if(uu(e,!1)){const{message:t}=ou("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(t)}{const{message:t}=ou("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(t)}}this.isValidPairingTopic(e)}}async isValidProposalId(e){if("number"!=typeof e){const{message:t}=ou("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(t)}if(!this.client.proposal.keys.includes(e)){const{message:t}=ou("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(t)}if(Vl(this.client.proposal.get(e).expiry)){await this.deleteProposal(e);const{message:t}=ou("EXPIRED",`proposal id: ${e}`);throw new Error(t)}}}class vp extends Wf{constructor(e,t){super(e,t,"proposal",np),this.core=e,this.logger=t}}class wp extends Wf{constructor(e,t){super(e,t,"session",np),this.core=e,this.logger=t}}class Ep extends Wf{constructor(e,t){super(e,t,"request",np,(e=>e.id)),this.core=e,this.logger=t}}class Sp extends Ls{constructor(e){super(e),this.protocol="wc",this.version=2,this.name=rp,this.events=new ws.EventEmitter,this.on=(e,t)=>this.events.on(e,t),this.once=(e,t)=>this.events.once(e,t),this.off=(e,t)=>this.events.off(e,t),this.removeListener=(e,t)=>this.events.removeListener(e,t),this.removeAllListeners=e=>this.events.removeAllListeners(e),this.connect=async e=>{try{return await this.engine.connect(e)}catch(e){throw this.logger.error(e.message),e}},this.pair=async e=>{try{return await this.engine.pair(e)}catch(e){throw this.logger.error(e.message),e}},this.approve=async e=>{try{return await this.engine.approve(e)}catch(e){throw this.logger.error(e.message),e}},this.reject=async e=>{try{return await this.engine.reject(e)}catch(e){throw this.logger.error(e.message),e}},this.update=async e=>{try{return await this.engine.update(e)}catch(e){throw this.logger.error(e.message),e}},this.extend=async e=>{try{return await this.engine.extend(e)}catch(e){throw this.logger.error(e.message),e}},this.request=async e=>{try{return await this.engine.request(e)}catch(e){throw this.logger.error(e.message),e}},this.respond=async e=>{try{return await this.engine.respond(e)}catch(e){throw this.logger.error(e.message),e}},this.ping=async e=>{try{return await this.engine.ping(e)}catch(e){throw this.logger.error(e.message),e}},this.emit=async e=>{try{return await this.engine.emit(e)}catch(e){throw this.logger.error(e.message),e}},this.disconnect=async e=>{try{return await this.engine.disconnect(e)}catch(e){throw this.logger.error(e.message),e}},this.find=e=>{try{return this.engine.find(e)}catch(e){throw this.logger.error(e.message),e}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(e){throw this.logger.error(e.message),e}},this.name=e?.name||rp,this.metadata=e?.metadata||(0,$c.D)()||{name:"",description:"",url:"",icons:[""]};const t=typeof e?.logger<"u"&&"string"!=typeof e?.logger?e.logger:(0,Rs.pino)((0,Rs.getDefaultLoggerOptions)({level:e?.logger||ip}));this.core=e?.core||new ep(e),this.logger=(0,Rs.generateChildLogger)(t,this.name),this.session=new wp(this.core,this.logger),this.proposal=new vp(this.core,this.logger),this.pendingRequest=new Ep(this.core,this.logger),this.engine=new mp(this)}static async init(e){const t=new Sp(e);return await t.initialize(),t}get context(){return(0,Rs.getLoggerContext)(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.engine.init(),this.core.verify.init({verifyUrl:this.metadata.verifyUrl}),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}}const Ip=Sp;class Rp extends Error{constructor(e,t,n,r){super(),this.messageWc=e,this.codeWc=t,this.data=r,this.name="InvalidReceivedSessionNamespace";const i=`${t}: ${e}.`;this.message=r?"incomplete"===n?` ${i} "${r}" is missing in the session namespace.`:` ${i} "${r}" is invalid.`:i}}class Ap extends Error{constructor(){super("Not connected, no active session"),this.name="NotConnected"}}class xp extends Error{constructor(e){super(e),this.name="InvalidSession"}}class Mp extends Error{constructor(e){super(`Required permission scope were not granted for "${e}"`),this.requiredScopes=e,this.name="MissingRequiredScope"}}class Tp extends Error{constructor(){super('Please specify the active network using the "setActiveNetwork" method.'),this.name="ActiveNetworkUnspecified"}}class Op extends Error{constructor(){super('Please specify the active account using the "setActiveAccount" method.'),this.name="ActiveAccountUnspecified"}}class Pp extends Error{constructor(e,t){super(`No permission. The combinaison "${e}" and "${t}" is not part of the active session.`),this.network=e,this.pkh=t,this.name="InvalidNetworkOrAccount"}}var Np=n(5108),kp=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Cp="tezos";var Up,Lp,jp;!function(e){e.MAINNET="mainnet",e.GHOSTNET="ghostnet",e.MONDAYNET="mondaynet",e.DAILYNET="dailynet",e.KATHMANDUNET="kathmandunet",e.LIMANET="limanet"}(Up||(Up={})),function(e){e.GET_ACCOUNTS="tezos_getAccounts",e.OPERATION_REQUEST="tezos_send",e.SIGN="tezos_sign"}(Lp||(Lp={})),function(e){e.CHAIN_CHANGED="chainChanged",e.ACCOUNTS_CHANGED="accountsChanged"}(jp||(jp={}));class zp extends Lt{constructor(e){super(),this.wcOptions=e,this.activeListeners=new Map,this.channelOpeningListeners=new Map}static getInstance(e){return zp.instance||(zp.instance=new zp(e)),zp.instance}listenForEncryptedMessage(e,t){return kp(this,void 0,void 0,(function*(){if(this.activeListeners.has(e))return;this.activeListeners.set(e,((e,n)=>kp(this,void 0,void 0,(function*(){t(e,n)}))))}))}listenForChannelOpening(e){return kp(this,void 0,void 0,(function*(){this.channelOpeningListeners.set("channelOpening",(t=>kp(this,void 0,void 0,(function*(){e(t)}))))}))}unsubscribeFromEncryptedMessages(){return kp(this,void 0,void 0,(function*(){}))}unsubscribeFromEncryptedMessage(e){return kp(this,void 0,void 0,(function*(){}))}sendMessage(e,t){return kp(this,void 0,void 0,(function*(){const t=new xt,n=yield t.deserialize(e);this.currentMessageId=n.id,(null==n?void 0:n.type)===X.PermissionRequest&&this.requestPermissions(),(null==n?void 0:n.type)===X.OperationRequest&&this.sendOperations(n),(null==n?void 0:n.type)===X.SignPayloadRequest&&this.signPayload(n)}))}requestPermissions(){var e,t,n,r;return kp(this,void 0,void 0,(function*(){Np.log("#### Requesting permissions");const i=this.getSession();if(!this.getPermittedMethods().includes(Lp.GET_ACCOUNTS))throw new Mp(Lp.GET_ACCOUNTS);const o=this.getActiveNetwork();Np.log("#### Requesting public keys");const s=yield null===(e=this.signClient)||void 0===e?void 0:e.request({topic:i.topic,chainId:`${Cp}:${o}`,request:{method:Lp.GET_ACCOUNTS,params:{}}});if(Np.log("##### GET ACCOUNTS",s),!s||s.length<1)throw new Error("No account shared by wallet");if(s.some((e=>!e.pubkey)))throw new Error("Public Key in `tezos_getAccounts` is empty!");const a=new xt,c=yield a.serialize({type:X.PermissionResponse,appMetadata:{senderId:null===(t=this.session)||void 0===t?void 0:t.peer.publicKey,name:null===(n=this.session)||void 0===n?void 0:n.peer.metadata.name},publicKey:null===(r=s[0])||void 0===r?void 0:r.pubkey,network:{type:Up.MAINNET},scopes:[_.SIGN,_.OPERATION_REQUEST],id:this.currentMessageId});this.activeListeners.forEach((e=>{e(c,{origin:te.WALLETCONNECT,id:this.currentMessageId})}))}))}signPayload(e){var t;return kp(this,void 0,void 0,(function*(){const n=this.getSession();if(!this.getPermittedMethods().includes(Lp.SIGN))throw new Mp(Lp.SIGN);const r=this.getActiveNetwork(),i=yield this.getPKH();this.validateNetworkAndAccount(r,i);const o=new xt,s=e=>kp(this,void 0,void 0,(function*(){const t=yield o.serialize(e);this.activeListeners.forEach((e=>{e(t,{origin:te.WALLETCONNECT,id:this.currentMessageId})}))}));null===(t=this.signClient)||void 0===t||t.request({topic:n.topic,chainId:`${Cp}:${r}`,request:{method:Lp.SIGN,params:{account:i,payload:e.payload}}}).then((t=>{const n={type:X.SignPayloadResponse,signingType:e.signingType,signature:null==t?void 0:t.signature,id:this.currentMessageId};s(n)})).catch((()=>kp(this,void 0,void 0,(function*(){const e={type:X.Error,id:this.currentMessageId,errorType:re.ABORTED_ERROR};s(e)}))))}))}sendOperations(e){var t;return kp(this,void 0,void 0,(function*(){const n=this.getSession();if(!this.getPermittedMethods().includes(Lp.OPERATION_REQUEST))throw new Mp(Lp.OPERATION_REQUEST);const r=this.getActiveNetwork(),i=yield this.getPKH();this.validateNetworkAndAccount(r,i);const o=new xt,s=e=>kp(this,void 0,void 0,(function*(){const t=yield o.serialize(e);this.activeListeners.forEach((e=>{e(t,{origin:te.WALLETCONNECT,id:this.currentMessageId})}))}));null===(t=this.signClient)||void 0===t||t.request({topic:n.topic,chainId:`${Cp}:${r}`,request:{method:Lp.OPERATION_REQUEST,params:{account:i,operations:e.operationDetails}}}).then((e=>{const t={type:X.OperationResponse,transactionHash:e.hash,id:this.currentMessageId};s(t)})).catch((()=>kp(this,void 0,void 0,(function*(){const e={type:X.Error,id:this.currentMessageId,errorType:re.ABORTED_ERROR};s(e)}))))}))}init(e=!1){var t;return kp(this,void 0,void 0,(function*(){const n={permissionScope:{networks:[Up.MAINNET],events:[],methods:[Lp.GET_ACCOUNTS,Lp.OPERATION_REQUEST,Lp.SIGN]},pairingTopic:void 0};this.signClient=yield Ip.init(this.wcOptions);let r=this.signClient.session.getAll();if(e){for(let e of r)yield this.signClient.disconnect({topic:e.topic,reason:{code:0,message:"Force new connection"}});this.clearState(),r=this.signClient.session.getAll()}if(r&&r.length>0)return this.session=r[0],void this.setDefaultAccountAndNetwork();const{uri:i,approval:o}=yield this.signClient.connect({requiredNamespaces:{[Cp]:{chains:n.permissionScope.networks.map((e=>`${Cp}:${e}`)),methods:n.permissionScope.methods,events:null!==(t=n.permissionScope.events)&&void 0!==t?t:[]}},pairingTopic:n.pairingTopic});return o().then((e=>kp(this,void 0,void 0,(function*(){var t;this.session=null!==(t=this.session)&&void 0!==t?t:e,this.validateReceivedNamespace(n.permissionScope,this.session.namespaces),this.setDefaultAccountAndNetwork();const r={id:this.session.peer.publicKey,type:"walletconnect-pairing-response",name:e.peer.metadata.name,publicKey:e.peer.publicKey,senderId:this.session.peer.publicKey,extensionId:this.session.peer.metadata.name,version:"3"};this.channelOpeningListeners.forEach((e=>{e(r)}))})))),i}))}getPairingRequestInfo(){return kp(this,void 0,void 0,(function*(){const e=yield this.init(!0);return{id:yield Le(),type:"walletconnect-pairing-request",name:"WalletConnect",version:"3",uri:e,senderId:yield Le(),publicKey:yield Le()}}))}validateReceivedNamespace(e,t){if(!t[Cp])throw this.clearState(),new Rp("All namespaces must be approved",su("USER_REJECTED").code,"incomplete","tezos");this.validateMethods(e.methods,t[Cp].methods),e.events&&this.validateEvents(e.events,t.tezos.events),this.validateAccounts(e.networks,t[Cp].accounts)}validateMethods(e,t){const n=[];if(e.forEach((e=>{t.includes(e)||n.push(e)})),n.length>0)throw this.clearState(),new Rp("All methods must be approved",su("USER_REJECTED_METHODS").code,"incomplete",n)}validateEvents(e,t){const n=[];if(e.forEach((e=>{t.includes(e)||n.push(e)})),n.length>0)throw this.clearState(),new Rp("All events must be approved",su("USER_REJECTED_EVENTS").code,"incomplete",n)}validateAccounts(e,t){if(0===t.length)throw this.clearState(),new Rp("Accounts must not be empty",su("USER_REJECTED_CHAINS").code,"incomplete");const n=[],r=[],i=[],o=[];if(t.forEach((e=>{const t=e.split(":");3!==t.length&&r.push(e),t[0]!==Cp&&o.push(e);const i=t[1];n.includes(i)||n.push(i)})),r.length>0)throw this.clearState(),new Rp("Accounts must be CAIP-10 compliant",su("USER_REJECTED_CHAINS").code,"invalid",r);if(o.length>0)throw this.clearState(),new Rp("Accounts must be defined in matching namespace",su("UNSUPPORTED_ACCOUNTS").code,"invalid",o);if(e.forEach((e=>{n.includes(e)||i.push(e)})),i.length>0)throw this.clearState(),new Rp("All chains must have at least one account",su("USER_REJECTED_CHAINS").code,"incomplete",i)}validateNetworkAndAccount(e,t){if(!this.getTezosNamespace().accounts.includes(`${Cp}:${e}:${t}`))throw new Pp(e,t)}getActiveNetwork(){if(!this.activeNetwork)throw this.getSession(),new Tp;return this.activeNetwork}setDefaultAccountAndNetwork(){const e=this.getAccounts();1===e.length&&(this.activeAccount=e[0]);const t=this.getNetworks();1===t.length&&(this.activeNetwork=t[0])}getAccounts(){return this.getTezosNamespace().accounts.map((e=>e.split(":")[2]))}getNetworks(){return this.getPermittedNetwork()}getTezosNamespace(){if(Cp in this.getSession().namespaces)return this.getSession().namespaces[Cp];throw new xp("Tezos not found in namespaces")}getPermittedMethods(){return this.getTezosRequiredNamespace().methods}getPermittedNetwork(){return this.getTezosRequiredNamespace().chains.map((e=>e.split(":")[1]))}getTezosRequiredNamespace(){return{chains:["tezos:mainnet"],events:[],methods:["tezos_getAccounts","tezos_send","tezos_sign"]}}currentSession(){return this.session}getSession(){if(!this.session)throw new Ap;return this.session}getPKH(){return kp(this,void 0,void 0,(function*(){if(!this.activeAccount)throw this.getSession(),new Op;return this.activeAccount}))}clearState(){this.session=void 0,this.activeAccount=void 0,this.activeNetwork=void 0}}var Kp=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};class qp extends Et{constructor(e,t,n,r,i){super(e,zp.getInstance(i),new Nt(n,r)),this.wcOptions=i}static isAvailable(){return Kp(this,void 0,void 0,(function*(){return Promise.resolve(!0)}))}connect(){const e=Object.create(null,{connect:{get:()=>super.connect}});return Kp(this,void 0,void 0,(function*(){if(this._isConnected!==ie.NOT_CONNECTED)return;this._isConnected=ie.CONNECTING,yield this.client.init();const t=yield this.getPeers();return t.length>0&&t.map((e=>Kp(this,void 0,void 0,(function*(){return this.listen(e.publicKey)})))),yield this.startOpenChannelListener(),e.connect.call(this)}))}getPeers(){return Kp(this,void 0,void 0,(function*(){const e=zp.getInstance(this.wcOptions).currentSession();return e?[{senderId:e.peer.publicKey,extensionId:e.peer.metadata.name,id:e.peer.publicKey,type:"walletconnect-pairing-response",name:"peer",publicKey:e.peer.publicKey,version:"first"}]:[]}))}disconnect(){const e=Object.create(null,{disconnect:{get:()=>super.disconnect}});return Kp(this,void 0,void 0,(function*(){return e.disconnect.call(this)}))}startOpenChannelListener(){return Kp(this,void 0,void 0,(function*(){}))}getPairingRequestInfo(){return Kp(this,void 0,void 0,(function*(){return this.client.getPairingRequestInfo()}))}listen(e){return Kp(this,void 0,void 0,(function*(){yield this.client.listenForEncryptedMessage(e,(t=>{const n={origin:te.WALLETCONNECT,id:e};this.notifyListeners(t,n).catch((e=>{throw e}))})).catch((e=>{throw e}))}))}}var Dp=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Bp=new it("DappWalletConnectTransport");class Wp extends qp{constructor(e,t,n,r){super(e,t,n,se.TRANSPORT_WALLETCONNECT_PEERS_DAPP,r),this.client.listenForChannelOpening((e=>Dp(this,void 0,void 0,(function*(){yield this.addPeer(e),this._isConnected=ie.CONNECTED,this.newPeerListener&&(this.newPeerListener(e),this.newPeerListener=void 0)}))))}listenForNewPeer(e){return Dp(this,void 0,void 0,(function*(){this.newPeerListener=e}))}stopListeningForNewPeers(){return Dp(this,void 0,void 0,(function*(){Bp.log("stopListeningForNewPeers"),this.newPeerListener=void 0}))}}var Fp=n(5108),Vp=n(8764).Buffer,Hp=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))};const Gp=new it("DAppClient");class Jp extends ct{constructor(e){var t,n,r,i,o,s,a;super(Object.assign({storage:e&&e.storage?e.storage:new It},e)),this.events=new cs,this.openRequests=new Map,this._activeAccount=new me,this._activePeer=new me,this.blockchains=new Map,this.description=e.description,this.wcProjectId=(null===(t=e.walletConnectOptions)||void 0===t?void 0:t.projectId)||"24469fd0a06df227b6e5f7dc7de0ff4f",this.wcRelayUrl=null===(n=e.walletConnectOptions)||void 0===n?void 0:n.relayUrl,this.featuredWallets=e.featuredWallets,this.events=new cs(e.eventHandlers,null!==(r=e.disableDefaultEvents)&&void 0!==r&&r),this.blockExplorer=null!==(i=e.blockExplorer)&&void 0!==i?i:new fs,this.preferredNetwork=null!==(o=e.preferredNetwork)&&void 0!==o?o:$.MAINNET,_i(null!==(s=e.colorMode)&&void 0!==s?s:le.LIGHT),this.disclaimerText=e.disclaimerText,this.errorMessages=null!==(a=e.errorMessages)&&void 0!==a?a:{},this.appMetadataManager=new Tt(this.storage),this.activeAccountLoaded=this.storage.get(se.ACTIVE_ACCOUNT).then((e=>Hp(this,void 0,void 0,(function*(){e?yield this.setActiveAccount(yield this.accountManager.getAccount(e)):yield this.setActiveAccount(void 0)})))).catch((e=>Hp(this,void 0,void 0,(function*(){yield this.setActiveAccount(void 0),Fp.error(e)})))),this.handleResponse=(e,t)=>Hp(this,void 0,void 0,(function*(){var n,r,i;const o=this.openRequests.get(e.id);if(Fp.log("### openRequest ###",o),Gp.log("handleResponse","Received message",e,t),Fp.log("### message ###",JSON.stringify(e)),Fp.log("### connectionInfo ###",t),"3"===e.version){const r=e;if(o&&r.message.type===X.Acknowledge)this.analytics.track("event","DAppClient","Acknowledge received from Wallet"),Gp.log(`acknowledge message received for ${e.id}`),Fp.timeLog(e.id,"acknowledge"),this.events.emit(rs.ACKNOWLEDGE_RECEIVED,{message:r.message,extraInfo:{},walletInfo:yield this.getWalletInfo()}).catch(Fp.error);else if(o){const n=r.message.blockchainData.appMetadata;r.message.type===X.PermissionResponse&&n&&(yield this.appMetadataManager.addAppMetadata(n)),Fp.timeLog(r.id,"response"),Fp.timeEnd(r.id),r.message.type===X.Error?o.reject(r.message):o.resolve({message:e,connectionInfo:t}),this.openRequests.delete(r.id)}else if(r.message.type===X.Disconnect){this.analytics.track("event","DAppClient","Disconnect received from Wallet");const r=t.origin===te.P2P?this.p2pTransport:null!==(n=this.postMessageTransport)&&void 0!==n?n:yield this.transport;if(r){const t=(yield r.getPeers()).find((t=>t.senderId===e.senderId));t?(yield r.removePeer(t),yield this.removeAccountsForPeers([t]),yield this.events.emit(rs.CHANNEL_CLOSED)):Gp.error("handleDisconnect","cannot find peer for sender ID",e.senderId)}}else Gp.error("handleResponse","no request found for id ",e.id,e)}else{const n=e;if(o&&n.type===X.Acknowledge)Gp.log(`acknowledge message received for ${e.id}`),this.analytics.track("event","DAppClient","Acknowledge received from Wallet"),Fp.timeLog(e.id,"acknowledge"),this.events.emit(rs.ACKNOWLEDGE_RECEIVED,{message:n,extraInfo:{},walletInfo:yield this.getWalletInfo()}).catch(Fp.error);else if(o)n.type===X.PermissionResponse&&n.appMetadata&&(yield this.appMetadataManager.addAppMetadata(n.appMetadata)),Fp.timeLog(n.id,"response"),Fp.timeEnd(n.id),n.type===X.Error||e.errorType?o.reject(n):o.resolve({message:e,connectionInfo:t}),this.openRequests.delete(n.id);else if(n.type===X.Disconnect||(null===(r=null==e?void 0:e.typedMessage)||void 0===r?void 0:r.type)===X.Disconnect){this.analytics.track("event","DAppClient","Disconnect received from Wallet");const n=t.origin===te.P2P?this.p2pTransport:null!==(i=this.postMessageTransport)&&void 0!==i?i:yield this.transport;if(n){const t=(yield n.getPeers()).find((t=>t.senderId===e.senderId));t?(yield n.removePeer(t),yield this.removeAccountsForPeers([t]),yield this.events.emit(rs.CHANNEL_CLOSED)):Gp.error("handleDisconnect","cannot find peer for sender ID",e.senderId)}}else Gp.error("handleResponse","no request found for id ",e.id,e)}}))}initInternalTransports(){var e,t;return Hp(this,void 0,void 0,(function*(){const n=yield this.keyPair;if(this.postMessageTransport||this.p2pTransport||this.walletConnectTransport)return;this.postMessageTransport=new ys(this.name,n,this.storage),yield this.addListener(this.postMessageTransport),this.p2pTransport=new vs(this.name,n,this.storage,this.matrixNodes,this.iconUrl,this.appUrl),yield this.addListener(this.p2pTransport);const r={projectId:this.wcProjectId,relayUrl:this.wcRelayUrl,metadata:{name:this.name,description:null!==(e=this.description)&&void 0!==e?e:"",url:null!==(t=this.appUrl)&&void 0!==t?t:"",icons:this.iconUrl?[this.iconUrl]:[]}};this.walletConnectTransport=new Wp(this.name,n,this.storage,r),yield this.addListener(this.walletConnectTransport)}))}init(e){const t=Object.create(null,{init:{get:()=>super.init}});return Hp(this,void 0,void 0,(function*(){if(this._initPromise)return this._initPromise;try{yield this.activeAccountLoaded}catch(e){}return this._initPromise=new Promise((n=>Hp(this,void 0,void 0,(function*(){if(e)yield this.addListener(e),n(yield t.init.call(this,e));else if(this._transport.isSettled())yield(yield this.transport).connect(),n(yield t.init.call(this,yield this.transport));else{const e=yield this.getActiveAccount(),r=()=>{this.postMessageTransport&&this.postMessageTransport.stopListeningForNewPeers().catch(Fp.error),this.p2pTransport&&this.p2pTransport.stopListeningForNewPeers().catch(Fp.error),this.walletConnectTransport&&this.walletConnectTransport.stopListeningForNewPeers().catch(Fp.error)};if(yield this.initInternalTransports(),!this.postMessageTransport||!this.p2pTransport||!this.walletConnectTransport)return;if(this.postMessageTransport.connect().then().catch(Fp.error),e&&e.origin){const r=e.origin.type;r===te.EXTENSION?n(yield t.init.call(this,this.postMessageTransport)):r===te.P2P?n(yield t.init.call(this,this.p2pTransport)):r===te.WALLETCONNECT&&n(yield t.init.call(this,this.walletConnectTransport))}else{const e=this.p2pTransport,t=this.postMessageTransport,i=this.walletConnectTransport;t.listenForNewPeer((e=>{Gp.log("init","postmessage transport peer connected",e),this.analytics.track("event","DAppClient","Extension connected",{peerName:e.name}),this.events.emit(rs.PAIR_SUCCESS,e).catch((e=>Fp.warn(e))),this.setActivePeer(e).catch(Fp.error),this.setTransport(this.postMessageTransport).catch(Fp.error),r(),n(oe.POST_MESSAGE)})).catch(Fp.error),e.listenForNewPeer((e=>{Gp.log("init","p2p transport peer connected",e),this.analytics.track("event","DAppClient","Beacon Wallet connected",{peerName:e.name}),this.events.emit(rs.PAIR_SUCCESS,e).catch((e=>Fp.warn(e))),this.setActivePeer(e).catch(Fp.error),this.setTransport(this.p2pTransport).catch(Fp.error),r(),n(oe.P2P)})).catch(Fp.error),i.listenForNewPeer((e=>{Gp.log("init","walletconnect transport peer connected",e),this.analytics.track("event","DAppClient","WalletConnect Wallet connected",{peerName:e.name}),this.events.emit(rs.PAIR_SUCCESS,e).catch((e=>Fp.warn(e))),this.setActivePeer(e).catch(Fp.error),this.setTransport(this.walletConnectTransport).catch(Fp.error),r(),n(oe.WALLETCONNECT)})).catch(Fp.error),kn.getAvailableExtensions().then((n=>Hp(this,void 0,void 0,(function*(){this.analytics.track("event","DAppClient","Extensions detected",{extensions:n}),this.events.emit(rs.PAIR_INIT,{p2pPeerInfo:()=>(e.connect().then().catch(Fp.error),e.getPairingRequestInfo()),postmessagePeerInfo:()=>t.getPairingRequestInfo(),walletConnectPeerInfo:()=>i.getPairingRequestInfo(),preferredNetwork:this.preferredNetwork,abortedHandler:()=>{Fp.log("ABORTED"),this._initPromise=void 0},disclaimerText:this.disclaimerText,analytics:this.analytics,featuredWallets:this.featuredWallets}).catch((e=>Fp.warn(e)))})))).catch((e=>{this._initPromise=void 0,Fp.error(e)}))}}})))),this._initPromise}))}getActiveAccount(){return Hp(this,void 0,void 0,(function*(){return this._activeAccount.promise}))}setActiveAccount(e){return Hp(this,void 0,void 0,(function*(){if(this._activeAccount.isSettled()?this._activeAccount=me.resolve(e):this._activeAccount.resolve(e),e){const t=e.origin.type;yield this.initInternalTransports(),t===te.EXTENSION?yield this.setTransport(this.postMessageTransport):t===te.P2P?yield this.setTransport(this.p2pTransport):t===te.WALLETCONNECT&&(yield this.setTransport(this.walletConnectTransport));const n=yield this.getPeer(e);yield this.setActivePeer(n)}else yield this.setActivePeer(void 0),yield this.setTransport(void 0);yield this.storage.set(se.ACTIVE_ACCOUNT,e?e.accountIdentifier:void 0),yield this.events.emit(rs.ACTIVE_ACCOUNT_SET,e)}))}clearActiveAccount(){return this.setActiveAccount()}setColorMode(e){return Hp(this,void 0,void 0,(function*(){return _i(e)}))}getColorMode(){return Hp(this,void 0,void 0,(function*(){return $i()}))}getAppMetadata(){return Hp(this,void 0,void 0,(function*(){return this.getOwnAppMetadata()}))}showPrepare(){return Hp(this,void 0,void 0,(function*(){const e=yield(()=>Hp(this,void 0,void 0,(function*(){try{return yield this.getWalletInfo()}catch(e){return}})))();yield this.events.emit(rs.SHOW_PREPARE,{walletInfo:e})}))}hideUI(e){return Hp(this,void 0,void 0,(function*(){yield this.events.emit(rs.HIDE_UI,e)}))}removeAccount(e){const t=Object.create(null,{removeAccount:{get:()=>super.removeAccount}});return Hp(this,void 0,void 0,(function*(){const n=t.removeAccount.call(this,e),r=yield this.getActiveAccount();return r&&r.accountIdentifier===e&&(yield this.setActiveAccount(void 0)),n}))}removeAllAccounts(){const e=Object.create(null,{removeAllAccounts:{get:()=>super.removeAllAccounts}});return Hp(this,void 0,void 0,(function*(){yield e.removeAllAccounts.call(this),yield this.setActiveAccount(void 0)}))}removePeer(e,t=!1){return Hp(this,void 0,void 0,(function*(){const n=yield this.transport,r=n.removePeer(e);return yield this.removeAccountsForPeers([e]),t&&(yield this.sendDisconnectToPeer(e,n)),r}))}removeAllPeers(e=!1){return Hp(this,void 0,void 0,(function*(){const t=yield this.transport,n=yield t.getPeers(),r=t.removeAllPeers();if(yield this.removeAccountsForPeers(n),e){const e=n.map((e=>this.sendDisconnectToPeer(e,t)));yield Promise.all(e)}return r}))}subscribeToEvent(e,t){return Hp(this,void 0,void 0,(function*(){yield this.events.on(e,t)}))}checkPermissions(e){return Hp(this,void 0,void 0,(function*(){if(e===X.PermissionRequest)return!0;const t=yield this.getActiveAccount();if(!t)throw yield this.sendInternalError("No active account set!");const n=t.scopes;switch(e){case X.OperationRequest:return n.includes(_.OPERATION_REQUEST);case X.SignPayloadRequest:return n.includes(_.SIGN);case X.BroadcastRequest:return!0;default:return!1}}))}sendNotification(e,t,n,r){var i,o,s;return Hp(this,void 0,void 0,(function*(){const a=yield this.getActiveAccount();if(!a||a&&!a.scopes.includes(_.NOTIFICATION)&&!a.notification)throw new Error("notification permissions not given");if(!(null===(i=a.notification)||void 0===i?void 0:i.token))throw new Error("No AccessToken");const c=null===(o=a.notification)||void 0===o?void 0:o.apiUrl;if(!c)throw new Error("No Push URL set");return this.sendNotificationWithAccessToken({url:c,recipient:a.address,title:e,body:t,payload:n,protocolIdentifier:r,accessToken:null===(s=a.notification)||void 0===s?void 0:s.token})}))}addBlockchain(e){this.blockchains.set(e.identifier,e),e.getWalletLists().then((e=>{var t;(e=>{Ao=e})(e.desktopList),(e=>{xo=e})(e.extensionList),(e=>{Mo=e})(e.webList),t=e.iOSList,To=t}))}removeBlockchain(e){this.blockchains.delete(e)}permissionRequest(e){return Hp(this,void 0,void 0,(function*(){Fp.log("PERMISSION REQUEST");const t=this.blockchains.get(e.blockchainIdentifier);if(!t)throw new Error(`Blockchain "${e.blockchainIdentifier}" not supported by dAppClient`);const n=Object.assign(Object.assign({},e),{type:X.PermissionRequest,blockchainData:Object.assign(Object.assign({},e.blockchainData),{appMetadata:yield this.getOwnAppMetadata()})});Fp.log("REQUESTION PERMIMISSION V3","xxx",n);const{message:r,connectionInfo:i}=yield this.makeRequestV3(n).catch((e=>Hp(this,void 0,void 0,(function*(){throw new Error("TODO")}))));Fp.log("RESPONSE V3",r,i);const o=yield t.getAccountInfosFromPermissionResponse(r.message),s={accountIdentifier:o[0].accountId,senderId:r.senderId,origin:{type:i.origin,id:i.id},address:o[0].address,publicKey:o[0].publicKey,scopes:r.message.blockchainData.scopes,connectedAt:(new Date).getTime(),chainData:r.message.blockchainData};return yield this.accountManager.addAccount(s),yield this.setActiveAccount(s),yield t.handleResponse({request:n,account:s,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),yield this.notifySuccess(n,{account:s,output:{address:o[0].address,network:{type:$.MAINNET},scopes:[_.OPERATION_REQUEST]},blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),r.message}))}request(e){return Hp(this,void 0,void 0,(function*(){Fp.log("REQUEST",e);const t=this.blockchains.get(e.blockchainIdentifier);if(!t)throw new Error(`Blockchain "${t}" not supported by dAppClient`);yield t.validateRequest(e);const n=yield this.getActiveAccount();if(!n)throw yield this.sendInternalError("No active account!");const r=Object.assign(Object.assign({},e),{type:X.BlockchainRequest,accountId:n.accountIdentifier}),{message:i,connectionInfo:o}=yield this.makeRequestV3(r).catch((e=>Hp(this,void 0,void 0,(function*(){throw Fp.error(e),new Error("TODO")}))));return yield t.handleResponse({request:r,account:n,output:i,blockExplorer:this.blockExplorer,connectionContext:o,walletInfo:yield this.getWalletInfo()}),i.message}))}requestPermissions(e){return Hp(this,void 0,void 0,(function*(){const t={appMetadata:yield this.getOwnAppMetadata(),type:X.PermissionRequest,network:e&&e.network?e.network:{type:$.MAINNET},scopes:e&&e.scopes?e.scopes:[_.OPERATION_REQUEST,_.SIGN]};this.analytics.track("event","DAppClient","Permission requested");const{message:n,connectionInfo:r}=yield this.makeRequest(t).catch((e=>Hp(this,void 0,void 0,(function*(){throw yield this.handleRequestError(t,e)})))),i=n.publicKey||n.pubkey||n.pubKey,o=yield function(e){return Re(this,void 0,void 0,(function*(){const t={edpk:{length:54,prefix:Ie.from(new Uint8Array([6,161,159]))},sppk:{length:55,prefix:Ie.from(new Uint8Array([6,161,161]))},p2pk:{length:55,prefix:Ie.from(new Uint8Array([6,161,164]))}};let n,r;if(64===e.length)n=t.edpk.prefix,r=e;else{const i=Object.entries(t);for(let t=0;t{switch(e.signingType){case ce.OPERATION:if(!n.startsWith("03"))throw new Error('When using signing type "OPERATION", the payload must start with prefix "03"');return ce.OPERATION;case ce.MICHELINE:if(!n.startsWith("05"))throw new Error('When using signing type "MICHELINE", the payload must start with prefix "05"');return ce.MICHELINE;case ce.RAW:default:return ce.RAW}})();this.analytics.track("event","DAppClient","Signature requested");const i={type:X.SignPayloadRequest,signingType:r,payload:n,sourceAddress:e.sourceAddress||t.address},{message:o,connectionInfo:s}=yield this.makeRequest(i).catch((e=>Hp(this,void 0,void 0,(function*(){throw yield this.handleRequestError(i,e)}))));return yield this.notifySuccess(i,{account:t,output:o,connectionContext:s,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Signature response"),o}))}requestOperation(e){return Hp(this,void 0,void 0,(function*(){if(!e.operationDetails)throw yield this.sendInternalError("Operation details must be provided");const t=yield this.getActiveAccount();if(!t)throw yield this.sendInternalError("No active account!");const n={type:X.OperationRequest,network:t.network||{type:$.MAINNET},operationDetails:e.operationDetails,sourceAddress:t.address||""};this.analytics.track("event","DAppClient","Operation requested");const{message:r,connectionInfo:i}=yield this.makeRequest(n).catch((e=>Hp(this,void 0,void 0,(function*(){throw yield this.handleRequestError(n,e)}))));return yield this.notifySuccess(n,{account:t,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Operation response"),r}))}requestBroadcast(e){return Hp(this,void 0,void 0,(function*(){if(!e.signedTransaction)throw yield this.sendInternalError("Signed transaction must be provided");const t=e.network||{type:$.MAINNET},n={type:X.BroadcastRequest,network:t,signedTransaction:e.signedTransaction};this.analytics.track("event","DAppClient","Broadcast requested");const{message:r,connectionInfo:i}=yield this.makeRequest(n).catch((e=>Hp(this,void 0,void 0,(function*(){throw yield this.handleRequestError(n,e)}))));return yield this.notifySuccess(n,{network:t,output:r,blockExplorer:this.blockExplorer,connectionContext:i,walletInfo:yield this.getWalletInfo()}),this.analytics.track("event","DAppClient","Broadcast response"),r}))}setActivePeer(e){return Hp(this,void 0,void 0,(function*(){this._activePeer.isSettled()?this._activePeer=me.resolve(e):this._activePeer.resolve(e),e&&(yield this.initInternalTransports(),"postmessage-pairing-response"===e.type?yield this.setTransport(this.postMessageTransport):"p2p-pairing-response"===e.type&&(yield this.setTransport(this.p2pTransport)))}))}setTransport(e){const t=Object.create(null,{setTransport:{get:()=>super.setTransport}});return Hp(this,void 0,void 0,(function*(){e||(this._initPromise=void 0);const n=t.setTransport.call(this,e);return yield this.events.emit(rs.ACTIVE_TRANSPORT_SET,e),n}))}sendInternalError(e){return Hp(this,void 0,void 0,(function*(){throw yield this.events.emit(rs.INTERNAL_ERROR,{text:e}),new Error(e)}))}removeAccountsForPeers(e){return Hp(this,void 0,void 0,(function*(){const t=yield this.accountManager.getAccounts(),n=e.map((e=>e.senderId)),r=t.filter((e=>n.includes(e.senderId))).map((e=>e.accountIdentifier));yield this.accountManager.removeAccounts(r);const i=yield this.getActiveAccount();i&&r.includes(i.accountIdentifier)&&(yield this.setActiveAccount(void 0))}))}handleRequestError(e,t){return Hp(this,void 0,void 0,(function*(){if(Gp.error("handleRequestError","error response",t),t.errorType){const n=[];if(t.errorType===re.NO_PRIVATE_KEY_FOUND_ERROR){const t=()=>Hp(this,void 0,void 0,(function*(){const t=e;let n;if(t.sourceAddress&&t.network){const e=yield Je(t.sourceAddress,t.network);n=yield this.getAccount(e),n&&(yield this.removeAccount(n.accountIdentifier))}}));n.push({text:"Remove account",actionCallback:t})}const r=yield this.getPeer(),i=yield this.getActiveAccount();throw e.type===X.PermissionRequest&&void 0===(yield this.getActiveAccount())&&(this._initPromise=void 0,this.postMessageTransport=void 0,this.p2pTransport=void 0,yield this.setTransport(),yield this.setActivePeer()),this.events.emit(ls[e.type].error,{errorResponse:t,walletInfo:yield this.getWalletInfo(r,i),errorMessages:this.errorMessages},n).catch((e=>Gp.error("handleRequestError",e))),lt.getError(t.errorType,t.errorData)}throw t}))}notifySuccess(e,t){return Hp(this,void 0,void 0,(function*(){this.events.emit(ls[e.type].success,t).catch((e=>Fp.warn(e)))}))}getWalletInfo(e,t){var n,r;return Hp(this,void 0,void 0,(function*(){const i=t||(yield this.getActiveAccount()),o=e||(yield this.getPeer(i));let s;i&&(s=yield this.appMetadataManager.getAppMetadata(i.senderId));const a=o;s||(s={name:null==a?void 0:a.name,icon:null==a?void 0:a.icon});const c=(e,t)=>!(!e||!t)&&e.toLowerCase()===t.toLowerCase();let l,u;if(ko().find((e=>c(e.name,null==s?void 0:s.name)))?(l=ko().find((e=>c(e.name,null==s?void 0:s.name))),u="mobile"):No().find((e=>c(e.name,null==s?void 0:s.name)))?(l=No().find((e=>c(e.name,null==s?void 0:s.name))),u="web"):Oo().find((e=>c(e.name,null==s?void 0:s.name)))?(l=Oo().find((e=>c(e.name,null==s?void 0:s.name))),u="desktop"):Po().find((e=>c(e.name,null==s?void 0:s.name)))&&(l=Po().find((e=>c(e.name,null==s?void 0:s.name))),u="extension"),l){let e;return l.hasOwnProperty("links")?e=l.links[null!==(n=null==i?void 0:i.network.type)&&void 0!==n?n:this.preferredNetwork]:l.hasOwnProperty("deepLink")&&(e=l.deepLink),{name:s.name,icon:null!==(r=s.icon)&&void 0!==r?r:l.logo,deeplink:e,type:u}}return s}))}getPeer(e){var t,n,r,i,o,s;return Hp(this,void 0,void 0,(function*(){let a;if(e){Gp.log("getPeer","We have an account",e);const c=[...null!==(n=yield null===(t=this.postMessageTransport)||void 0===t?void 0:t.getPeers())&&void 0!==n?n:[],...null!==(i=yield null===(r=this.p2pTransport)||void 0===r?void 0:r.getPeers())&&void 0!==i?i:[],...null!==(s=yield null===(o=this.walletConnectTransport)||void 0===o?void 0:o.getPeers())&&void 0!==s?s:[]];Gp.log("getPeer","Found peers",c,e),a=c.find((t=>t.senderId===e.senderId)),a||(a=c.find((t=>t.extensionId===e.origin.id)))}else a=yield this._activePeer.promise,Gp.log("getPeer","Active peer",a);return a}))}makeRequest(e){var t;return Hp(this,void 0,void 0,(function*(){const n=yield Le();if(Fp.time(n),Gp.log("makeRequest","starting"),yield this.init(),Fp.timeLog(n,"init done"),Gp.log("makeRequest","after init"),yield this.addRequestAndCheckIfRateLimited())throw this.events.emit(rs.LOCAL_RATE_LIMIT_REACHED).catch((e=>Fp.warn(e))),new Error("rate limit reached");if(!(yield this.checkPermissions(e.type)))throw this.events.emit(rs.NO_PERMISSIONS).catch((e=>Fp.warn(e))),new Error("No permissions to send this request to wallet!");if(!this.beaconId)throw yield this.sendInternalError("BeaconID not defined");const r=Object.assign({id:n,version:"2",senderId:yield et(yield this.beaconId)},e),i=new me;this.addOpenRequest(r.id,i);const o=yield(new xt).serialize(r),s=yield this.getActiveAccount(),a=yield this.getPeer(s),c=yield this.getWalletInfo(a,s);Gp.log("makeRequest","sending message",r),Fp.timeLog(n,"sending");try{yield(yield this.transport).send(o,a)}catch(e){throw this.events.emit(rs.INTERNAL_ERROR,{text:"Unable to send message. If this problem persists, please reset the connection and pair your wallet again.",buttons:[{text:"Reset Connection",actionCallback:()=>Hp(this,void 0,void 0,(function*(){yield Qo(),this.disconnect()}))}]}),Fp.timeLog(n,"send error"),e}return Fp.timeLog(n,"sent"),this.events.emit(ls[e.type].sent,{walletInfo:Object.assign(Object.assign({},c),{name:null!==(t=c.name)&&void 0!==t?t:"Wallet"}),extraInfo:{resetCallback:()=>Hp(this,void 0,void 0,(function*(){this.disconnect()}))}}).catch((e=>Fp.warn(e))),i.promise}))}makeRequestV3(e){var t;return Hp(this,void 0,void 0,(function*(){const n=yield Le();if(Fp.time(n),Gp.log("makeRequest","starting"),yield this.init(),Fp.timeLog(n,"init done"),Gp.log("makeRequest","after init"),yield this.addRequestAndCheckIfRateLimited())throw this.events.emit(rs.LOCAL_RATE_LIMIT_REACHED).catch((e=>Fp.warn(e))),new Error("rate limit reached");if(!this.beaconId)throw yield this.sendInternalError("BeaconID not defined");const r={id:n,version:"3",senderId:yield et(yield this.beaconId),message:e},i=new me;this.addOpenRequest(r.id,i);const o=yield(new xt).serialize(r),s=yield this.getActiveAccount(),a=yield this.getPeer(s),c=yield this.getWalletInfo(a,s);Gp.log("makeRequest","sending message",r),Fp.timeLog(n,"sending");try{yield(yield this.transport).send(o,a)}catch(e){throw this.events.emit(rs.INTERNAL_ERROR,{text:"Unable to send message. If this problem persists, please reset the connection and pair your wallet again.",buttons:[{text:"Reset Connection",actionCallback:()=>Hp(this,void 0,void 0,(function*(){yield Qo(),this.disconnect()}))}]}),Fp.timeLog(n,"send error"),e}Fp.timeLog(n,"sent");const l=e.type;return this.events.emit(ls[l].sent,{walletInfo:Object.assign(Object.assign({},c),{name:null!==(t=c.name)&&void 0!==t?t:"Wallet"}),extraInfo:{resetCallback:()=>Hp(this,void 0,void 0,(function*(){this.disconnect()}))}}).catch((e=>Fp.warn(e))),i.promise}))}disconnect(){return Hp(this,void 0,void 0,(function*(){this.postMessageTransport=void 0,this.p2pTransport=void 0,this.walletConnectTransport=void 0,yield Promise.all([this.clearActiveAccount(),(yield this.transport).disconnect()])}))}addOpenRequest(e,t){Gp.log("addOpenRequest",this.name,`adding request ${e} and waiting for answer`),this.openRequests.set(e,t)}sendNotificationWithAccessToken(e){return Hp(this,void 0,void 0,(function*(){const{url:t,recipient:n,title:r,body:i,payload:o,protocolIdentifier:s,accessToken:a}=e,c=(new Date).toISOString(),l=yield this.keyPair,u=l.publicKey,h=Vp.from(new Uint8Array([13,15,37,217])),d=P.encode(Vp.concat([h,Vp.from(u)])),f=Ae(["Tezos Signed Message: ",n,r,i,c,o].join(" ")),p="0501"+f.length.toString(16).padStart(8,"0")+f,g=yield ke(p,{secretKey:Vp.from(l.secretKey)});return(yield Ft().post(`${t}/send`,{recipient:n,title:r,body:i,timestamp:c,payload:o,accessToken:a,protocolIdentifier:s,sender:{name:this.name,publicKey:d,signature:g}})).data}))}}n(5108);new it("IncomingRequestInterceptor");n(5108);new it("OutgoingResponseInterceptor");n(5108);new it("WalletClient");var Zp=n(5108),Yp=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Qp=function(e,t,n,r){return new(n||(n=Promise))((function(i,o){function s(e){try{c(r.next(e))}catch(e){o(e)}}function a(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}c((r=r.apply(e,t||[])).next())}))},Xp=function(e,t){var n,r,i,o,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o&&(o=0,a[0]&&(s=0)),s;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,r=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]0&&i[i.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1] { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + + reader.onloadend = () => { + if (typeof reader.result === "string") { + resolve(reader.result); + } else { + reject(new Error("Failed to convert image to base64.")); + } + }; + + reader.onerror = (error) => { + reject(error); + }; + + reader.readAsDataURL(file); + }); + } +} + +export default Base64Uploader; diff --git a/WebGLFrontend/src/FileUploaders/Base64Uploader.ts.meta b/WebGLFrontend/src/FileUploaders/Base64Uploader.ts.meta new file mode 100644 index 00000000..c34a2e6a --- /dev/null +++ b/WebGLFrontend/src/FileUploaders/Base64Uploader.ts.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4c56d68d26358d6439fd5abed7dd12c1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts b/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts new file mode 100644 index 00000000..7073f5a4 --- /dev/null +++ b/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts @@ -0,0 +1,53 @@ +import { BaseFileUploaderType, BaseUploaderConfig } from "./Types"; + +abstract class BaseFileUploader implements BaseFileUploaderType { + FileUploaderDomElement: HTMLInputElement; + Config: BaseUploaderConfig; + + Init(config: BaseUploaderConfig) { + this.Config = config; + + this.FileUploaderDomElement = document.getElementById( + "fileuploader" + ) as HTMLInputElement; + + if (!this.FileUploaderDomElement) { + this.FileUploaderDomElement = document.createElement("input"); + this.FileUploaderDomElement.setAttribute("style", "display:none;"); + this.FileUploaderDomElement.setAttribute("type", "file"); + this.FileUploaderDomElement.setAttribute("id", "fileuploader"); + this.FileUploaderDomElement.setAttribute("class", "nonfocused"); + document + .getElementsByTagName("body")[0] + .appendChild(this.FileUploaderDomElement); + + this.FileUploaderDomElement.onchange = (event: Event) => { + const { files }: HTMLInputElement = event.target as HTMLInputElement; + + if (files.length === 0) { + this.ResetFileUploader(); + } else { + this.FileReceived(files[0]); + } + }; + } + } + + abstract FileReceived(file: File): void; + + ResetFileUploader() { + this.FileUploaderDomElement?.setAttribute("class", "nonfocused"); + } + + RequestUserFile(fileExtensions: string) { + if (this.FileUploaderDomElement === null) this.Init(this.Config); + + if (fileExtensions !== null || fileExtensions.match(/^ *$/) === null) + this.FileUploaderDomElement.setAttribute("accept", fileExtensions); + + this.FileUploaderDomElement.setAttribute("class", "focused"); + this.FileUploaderDomElement.click(); + } +} + +export default BaseFileUploader; diff --git a/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts.meta b/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts.meta new file mode 100644 index 00000000..6086bf5c --- /dev/null +++ b/WebGLFrontend/src/FileUploaders/BaseFileUploader.ts.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 850d105075412f5478b42ea3496fd4ef +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/WebGLFrontend/src/FileUploaders/IpfsUploader.ts b/WebGLFrontend/src/FileUploaders/IpfsUploader.ts new file mode 100644 index 00000000..7d9239ee --- /dev/null +++ b/WebGLFrontend/src/FileUploaders/IpfsUploader.ts @@ -0,0 +1,44 @@ +import { IpfsUploaderConfig, IpfsUploaderType } from "./Types"; + +import BaseFileUploader from "./BaseFileUploader"; + +class IpfsUploader extends BaseFileUploader implements IpfsUploaderType { + Config: IpfsUploaderConfig; + + Init(config: IpfsUploaderConfig) { + super.Init(config); + this.Config = config; + } + + async FileReceived(file: File) { + const formData = new FormData(); + formData.append("file", file, file.name); + const options = { + method: "POST", + body: formData, + + headers: { + Authorization: `Bearer ${this.Config.ApiKey}`, + }, + }; + + try { + const request = await fetch(this.Config.ApiUrl, options); + const data: string = await request.text(); + + window.unityInstance.SendMessage( + this.Config.CallbackObjectName, + this.Config.CallbackMethodName, + data + ); + } catch (error) { + console.error( + `Error during uploading file to ${this.Config.ApiUrl}\n${error}` + ); + } + + this.ResetFileUploader(); + } +} + +export default IpfsUploader; diff --git a/WebGLFrontend/src/IpfsUploader/IpfsUploader.ts.meta b/WebGLFrontend/src/FileUploaders/IpfsUploader.ts.meta similarity index 74% rename from WebGLFrontend/src/IpfsUploader/IpfsUploader.ts.meta rename to WebGLFrontend/src/FileUploaders/IpfsUploader.ts.meta index 3cc17766..41a18869 100644 --- a/WebGLFrontend/src/IpfsUploader/IpfsUploader.ts.meta +++ b/WebGLFrontend/src/FileUploaders/IpfsUploader.ts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 8757e25cc6cd84ad2b60694a6d8c1dad +guid: 86f2bfff85edf494dac6d2acb13e19ec DefaultImporter: externalObjects: {} userData: diff --git a/WebGLFrontend/src/FileUploaders/Types.ts b/WebGLFrontend/src/FileUploaders/Types.ts new file mode 100644 index 00000000..ccac4a55 --- /dev/null +++ b/WebGLFrontend/src/FileUploaders/Types.ts @@ -0,0 +1,37 @@ +interface IpfsUploaderType extends BaseFileUploaderType { + Config: IpfsUploaderConfig; + Init(config: IpfsUploaderConfig): void; +} + +interface IpfsUploaderConfig extends BaseUploaderConfig { + ApiUrl: string; + ApiKey: string; +} + +interface IpfsResponse { + IpfsHash: string; + PinSize: number; + Timestamp: Date; + isDuplicate: boolean; +} + +interface BaseFileUploaderType { + FileUploaderDomElement: HTMLInputElement; + Config: BaseUploaderConfig; + Init(config: BaseUploaderConfig): void; + RequestUserFile(fileExtensions: string): void; + ResetFileUploader(): void; +} + +interface BaseUploaderConfig { + CallbackObjectName: string; + CallbackMethodName: string; +} + +export { + BaseFileUploaderType, + BaseUploaderConfig, + IpfsResponse, + IpfsUploaderConfig, + IpfsUploaderType, +}; diff --git a/WebGLFrontend/src/IpfsUploader/Types.ts.meta b/WebGLFrontend/src/FileUploaders/Types.ts.meta similarity index 74% rename from WebGLFrontend/src/IpfsUploader/Types.ts.meta rename to WebGLFrontend/src/FileUploaders/Types.ts.meta index a993fd37..6bed6f15 100644 --- a/WebGLFrontend/src/IpfsUploader/Types.ts.meta +++ b/WebGLFrontend/src/FileUploaders/Types.ts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 219e7abef58e9b6af978b3d586a92785 +guid: d9a0695f6fca608428eb77d589b519c6 DefaultImporter: externalObjects: {} userData: diff --git a/WebGLFrontend/src/IpfsUploader/IpfsUploader.ts b/WebGLFrontend/src/IpfsUploader/IpfsUploader.ts deleted file mode 100644 index dc193fd5..00000000 --- a/WebGLFrontend/src/IpfsUploader/IpfsUploader.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { FileUploader, FileUploaderConfig } from "./Types"; - -class IpfsUploader implements FileUploader { - Config: FileUploaderConfig; - FileUploaderDomElement: HTMLInputElement | null; - - InitFileUploader(config: FileUploaderConfig) { - this.Config = config; - this.FileUploaderDomElement = document.getElementById( - "fileuploader" - ) as HTMLInputElement; - - if (!this.FileUploaderDomElement) { - this.FileUploaderDomElement = document.createElement("input"); - this.FileUploaderDomElement.setAttribute("style", "display:none;"); - this.FileUploaderDomElement.setAttribute("type", "file"); - this.FileUploaderDomElement.setAttribute("id", "fileuploader"); - this.FileUploaderDomElement.setAttribute("class", "nonfocused"); - document - .getElementsByTagName("body")[0] - .appendChild(this.FileUploaderDomElement); - - this.FileUploaderDomElement.onchange = this.OnChange.bind(this); - } - } - - RequestUserFile(fileExtensions: string) { - if (this.FileUploaderDomElement === null) - this.InitFileUploader(this.Config); - - if (fileExtensions !== null || fileExtensions.match(/^ *$/) === null) - this.FileUploaderDomElement.setAttribute("accept", fileExtensions); - - this.FileUploaderDomElement.setAttribute("class", "focused"); - this.FileUploaderDomElement.click(); - } - - ResetFileUploader() { - this.FileUploaderDomElement?.setAttribute("class", "nonfocused"); - } - - async OnChange(event: Event) { - const { files }: HTMLInputElement = event.target as HTMLInputElement; - - if (files.length === 0) { - this.ResetFileUploader(); - return; - } - - const formData = new FormData(); - formData.append("file", files[0], files[0].name); - const options = { - method: "POST", - body: formData, - - headers: { - Authorization: `Bearer ${this.Config.ApiKey}`, - }, - }; - - try { - const request = await fetch(this.Config.ApiUrl, options); - const data: string = await request.text(); - - window.unityInstance.SendMessage( - this.Config.CallbackObjectName, - this.Config.CallbackMethodName, - data - ); - } catch (error) { - console.error( - `Error during uploading file to ${this.Config.ApiUrl}\n${error}` - ); - } - - this.ResetFileUploader(); - } -} - -export default IpfsUploader; diff --git a/WebGLFrontend/src/IpfsUploader/Types.ts b/WebGLFrontend/src/IpfsUploader/Types.ts deleted file mode 100644 index fb94c4f2..00000000 --- a/WebGLFrontend/src/IpfsUploader/Types.ts +++ /dev/null @@ -1,23 +0,0 @@ -interface FileUploader { - Config: FileUploaderConfig; - FileUploaderDomElement: HTMLInputElement; - InitFileUploader(config: FileUploaderConfig): void; - RequestUserFile(fileExtensions: string): void; - ResetFileUploader(): void; -} - -interface FileUploaderConfig { - CallbackObjectName: string; - CallbackMethodName: string; - ApiUrl: string; - ApiKey: string; -} - -interface IpfsResponse { - IpfsHash: string; - PinSize: number; - Timestamp: Date; - isDuplicate: boolean; -} - -export { FileUploader, FileUploaderConfig, IpfsResponse }; diff --git a/WebGLFrontend/src/index.ts b/WebGLFrontend/src/index.ts index ab112f24..1bd25c6b 100644 --- a/WebGLFrontend/src/index.ts +++ b/WebGLFrontend/src/index.ts @@ -1,8 +1,15 @@ -import BeaconWallet from './WalletProviders/Beacon'; -import IpfsUploader from './IpfsUploader/IpfsUploader'; -import KukaiWallet from './WalletProviders/Kukai'; -import { FileUploader, FileUploaderConfig } from './IpfsUploader/Types'; -import { Wallet, WalletType } from './WalletProviders/Types'; +import { + BaseFileUploaderType, + BaseUploaderConfig, + IpfsUploaderConfig, + IpfsUploaderType, +} from "./FileUploaders/Types"; +import { Wallet, WalletType } from "./WalletProviders/Types"; + +import Base64Uploader from "./FileUploaders/Base64Uploader"; +import IpfsUploader from "./FileUploaders/IpfsUploader"; +import BeaconWallet from "./WalletProviders/Beacon"; +import KukaiWallet from "./WalletProviders/Kukai"; let cachedKukaiWallet: KukaiWallet; let cachedBeqaconWallet: BeaconWallet; @@ -25,16 +32,23 @@ function InitWalletProvider( window.WalletProvider.SetNetwork(networkName, rpcUrl); } -function InitFileUploader(config: FileUploaderConfig) { - if (window.FileUploader) return; - const ipfsUploader: FileUploader = new IpfsUploader(); - ipfsUploader.InitFileUploader(config); +function InitIpfsUploader(config: IpfsUploaderConfig) { + if (window.FileUploader instanceof IpfsUploader) return; + + const uploader: IpfsUploaderType = new IpfsUploader(); + uploader.Init(config); + window.FileUploader = uploader; +} - window.FileUploader = ipfsUploader; +function InitBase64Uploader(config: BaseUploaderConfig) { + const uploader = new Base64Uploader(); + uploader.Init(config); + window.FileUploader = uploader; } window.InitWalletProvider = InitWalletProvider; -window.InitFileUploader = InitFileUploader; +window.InitIpfsUploader = InitIpfsUploader; +window.InitBase64Uploader = InitBase64Uploader; declare global { interface Window { @@ -45,7 +59,8 @@ declare global { rpcUrl: string, walletType: WalletType ): void; - InitFileUploader(config: FileUploaderConfig): void; - FileUploader: FileUploader | null; + InitIpfsUploader(config: IpfsUploaderConfig): void; + InitBase64Uploader(config: BaseUploaderConfig): void; + FileUploader: BaseFileUploaderType | null; } }