diff --git a/client/cli/cmd/deploy.go b/client/cli/cmd/deploy.go index 5bc9707..f59d173 100644 --- a/client/cli/cmd/deploy.go +++ b/client/cli/cmd/deploy.go @@ -13,7 +13,7 @@ import ( var deployContractCmd = &cobra.Command{ Use: "deploy", Aliases: []string{"deploy-contract"}, - Short: "Deploy the AlgoDID storage smart contract", + Short: "Deploy the DIDAlgoStorage smart contract", Example: "algoid deploy [wallet-name] [network]", RunE: runDeployContractCmd, } diff --git a/client/cli/cmd/utils.go b/client/cli/cmd/utils.go index 3be8e69..18e4319 100644 --- a/client/cli/cmd/utils.go +++ b/client/cli/cmd/utils.go @@ -36,7 +36,7 @@ func getStorageAppID(network string) (uint, error) { } // Get network client instance. -func getAlgoClient() (*internal.AlgoDIDClient, error) { +func getAlgoClient() (*internal.DIDAlgoStorageClient, error) { conf := new(internal.ClientSettings) if err := viper.UnmarshalKey("network", &conf); err != nil { return nil, err diff --git a/client/internal/contracts.go b/client/internal/contracts.go index 934e73b..3a1db8d 100644 --- a/client/internal/contracts.go +++ b/client/internal/contracts.go @@ -13,7 +13,7 @@ import ( // https://developer.algorand.org/docs/get-details/encoding/ // StorageContracts contains the pre-compiled smart contracts to -// support AlgoDID's on-chain storage. +// support DIDAlgoStorage's on-chain storage. var StorageContracts fs.FS //go:embed contracts @@ -28,7 +28,7 @@ func init() { StorageContracts, _ = fs.Sub(dist, "contracts") // load approval program - approvalFile, err := StorageContracts.Open("AlgoDID.approval.teal") + approvalFile, err := StorageContracts.Open("DIDAlgoStorage.approval.teal") if err != nil { panic(err) } @@ -39,7 +39,7 @@ func init() { _ = approvalFile.Close() // load clear program - clearFile, err := StorageContracts.Open("AlgoDID.clear.teal") + clearFile, err := StorageContracts.Open("DIDAlgoStorage.clear.teal") if err != nil { panic(err) } @@ -50,9 +50,9 @@ func init() { _ = clearFile.Close() } -// LoadContract loads the AlgoDID smart contract ABI from JSON file. +// LoadContract loads the DIDAlgoStorage smart contract ABI from JSON file. func LoadContract() *abi.Contract { - abiFile, _ := StorageContracts.Open("AlgoDID.abi.json") + abiFile, _ := StorageContracts.Open("DIDAlgoStorage.arc4.json") abiContents, _ := io.ReadAll(abiFile) contract := &abi.Contract{} _ = json.Unmarshal(abiContents, contract) diff --git a/client/internal/contracts/AlgoDID.clear.teal b/client/internal/contracts/AlgoDID.clear.teal deleted file mode 100644 index 6bbec50..0000000 --- a/client/internal/contracts/AlgoDID.clear.teal +++ /dev/null @@ -1,2 +0,0 @@ -#pragma version 9 -int 1 \ No newline at end of file diff --git a/client/internal/contracts/AlgoDID.json b/client/internal/contracts/AlgoDID.json deleted file mode 100644 index 2f2a1be..0000000 --- a/client/internal/contracts/AlgoDID.json +++ /dev/null @@ -1,223 +0,0 @@ -{ - "hints": { - "startUpload(address,uint64,uint64,pay)void": { - "call_config": { - "no_op": "CALL" - } - }, - "upload(address,uint64,uint64,byte[])void": { - "call_config": { - "no_op": "CALL" - } - }, - "finishUpload(address)void": { - "call_config": { - "no_op": "CALL" - } - }, - "startDelete(address)void": { - "call_config": { - "no_op": "CALL" - } - }, - "deleteData(address,uint64)void": { - "call_config": { - "no_op": "CALL" - } - }, - "updateApplication()void": { - "call_config": { - "update_application": "CALL" - } - }, - "dummy()void": { - "call_config": { - "no_op": "CALL" - } - }, - "createApplication()void": { - "call_config": { - "no_op": "CREATE" - } - } - }, - "bare_call_config": { - "no_op": "NEVER", - "opt_in": "NEVER", - "close_out": "NEVER", - "update_application": "NEVER", - "delete_application": "NEVER" - }, - "schema": { - "local": { - "declared": {}, - "reserved": {} - }, - "global": { - "declared": { - "currentIndex": { - "type": "uint64", - "key": "currentIndex" - } - }, - "reserved": {} - } - }, - "state": { - "global": { - "num_byte_slices": 0, - "num_uints": 1 - }, - "local": { - "num_byte_slices": 0, - "num_uints": 0 - } - }, - "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNTEuMQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmQtZGV2cmVsL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfVXBkYXRlQXBwbGljYXRpb24KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhcnRVcGxvYWQocGF5LHVpbnQ2NCx1aW50NjQsYWRkcmVzcyl2b2lkCi8vCi8vIAovLyBBbGxvY2F0ZSBib3hlcyB0byBiZWdpbiBkYXRhIHVwbG9hZCBwcm9jZXNzCi8vIAovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgphYmlfcm91dGVfc3RhcnRVcGxvYWQ6CglieXRlIDB4OyBkdXBuIDMgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gbWJyUGF5bWVudDogcGF5Cgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBwYXkKCT09Cglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFydFVwbG9hZChwYXksdWludDY0LHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgc3RhcnRVcGxvYWQKCWludCAxCglyZXR1cm4KCnN0YXJ0VXBsb2FkOgoJcHJvdG8gOCAwCgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6NjQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czo2NgoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgLTUgLy8gc3RhcnRCb3g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjY3CgkvLyBlbmRCb3ggPSBzdGFydEJveCArIG51bUJveGVzIC0gMQoJZnJhbWVfZGlnIC01IC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAtNiAvLyBlbmRCb3g6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjY5CgkvLyBtZXRhZGF0YTogTWV0YWRhdGEgPSB7CgkvLyAgICAgICBzdGFydDogc3RhcnRCb3gsCgkvLyAgICAgICBlbmQ6IGVuZEJveCwKCS8vICAgICAgIHN0YXR1czogVVBMT0FESU5HLAoJLy8gICAgICAgZW5kU2l6ZTogZW5kQm94U2l6ZSwKCS8vICAgICAgIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAtNSAvLyBzdGFydEJveDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTYgLy8gZW5kQm94OiB1aW50NjQKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDAwCglieXRlIDB4MDAKCWJpdGxlbgoJaW50IDgKCTw9Cglhc3NlcnQKCWJ5dGUgMHhGRgoJYiYKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIGVuZEJveFNpemU6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglmcmFtZV9idXJ5IC03IC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjc3CgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEocHViS2V5KS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBhZGRyZXNzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjc5CgkvLyB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUgPSBtZXRhZGF0YQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogYWRkcmVzcwoJZnJhbWVfZGlnIC03IC8vIG1ldGFkYXRhOiBNZXRhZGF0YQoJYm94X3B1dAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjgxCgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAtNiAvLyBlbmRCb3g6IHVpbnQ2NAoJaW50IDEKCSsKCWFwcF9nbG9iYWxfcHV0CgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6ODMKCS8vIHRvdGFsQ29zdCA9IG51bUJveGVzICogQ09TVF9QRVJfQk9YICsgLy8gY29zdCBvZiBkYXRhIGJveGVzCgkvLyAgICAgICAobnVtQm94ZXMgLSAxKSAqIE1BWF9CT1hfU0laRSAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICAgIG51bUJveGVzICogOCAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGRhdGEga2V5cwoJLy8gICAgICAgZW5kQm94U2l6ZSAqIENPU1RfUEVSX0JZVEUgKyAvLyBjb3N0IG9mIGxhc3QgZGF0YSBib3gKCS8vICAgICAgIENPU1RfUEVSX0JPWCArCgkvLyAgICAgICAoOCArIDggKyAxICsgOCArIDMyICsgOCkgKiBDT1NUX1BFUl9CWVRFCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDI1MDAKCSoKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CglpbnQgMQoJLQoJaW50IDMyNzY4CgkqCglpbnQgNDAwCgkqCgkrCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDgKCSoKCWludCA0MDAKCSoKCSsKCWZyYW1lX2RpZyAtMyAvLyBlbmRCb3hTaXplOiB1aW50NjQKCWludCA0MDAKCSoKCSsKCWludCAyNTAwCgkrCglpbnQgMjYwMDAKCSsKCWZyYW1lX2J1cnkgLTggLy8gdG90YWxDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czo5MAoJLy8gYXNzZXJ0KG1iclBheW1lbnQuYW1vdW50ID09PSB0b3RhbENvc3QpCglmcmFtZV9kaWcgLTQgLy8gbWJyUGF5bWVudDogcGF5CglndHhucyBBbW91bnQKCWZyYW1lX2RpZyAtOCAvLyB0b3RhbENvc3Q6IHVpbnQ2NAoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjkxCgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBwYXkKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYnl0ZXMsdWludDY0LHVpbnQ2NCxhZGRyZXNzKXZvaWQKLy8KLy8gCi8vIFVwbG9hZCBkYXRhIHRvIGEgc3BlY2lmaWMgb2Zmc2V0IGluIGEgYm94Ci8vIAovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gdXBsb2FkIHRoZSBnaXZlbiBjaHVuayBvZiBkYXRhIHRvCi8vIEBwYXJhbSBvZmZzZXQgVGhlIG9mZnNldCB3aXRoaW4gdGhlIGJveCB0byBzdGFydCB3cml0aW5nIHRoZSBkYXRhCi8vIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHdyaXRlCmFiaV9yb3V0ZV91cGxvYWQ6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGRhdGE6IGJ5dGVbXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAoJZXh0cmFjdCAyIDAKCgkvLyBvZmZzZXQ6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoKCS8vIGJveEluZGV4OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHVwbG9hZChieXRlcyx1aW50NjQsdWludDY0LGFkZHJlc3Mpdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCnVwbG9hZDoKCXByb3RvIDUgMAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjEwNAoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjEwNgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IGFkZHJlc3MKCWZyYW1lX2J1cnkgLTUgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTA3CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhdHVzID09PSBVUExPQURJTkcpCglmcmFtZV9kaWcgLTUgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgMTYgMQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAKCWI9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTA4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC01IC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDAgOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6IHNraXBfYW5kMAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCA4IDgKCWJ0b2kKCTw9CgkmJgoKc2tpcF9hbmQwOgoJYXNzZXJ0CgoJLy8gaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTEwCgkvLyBvZmZzZXQgPT09IDAKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJaW50IDAKCT09CglieiBpZjBfZW5kCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjExMQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZSgKCS8vICAgICAgICAgYm94SW5kZXggPT09IG1ldGFkYXRhLmVuZCA/IG1ldGFkYXRhLmVuZFNpemUgOiBNQVhfQk9YX1NJWkUsCgkvLyAgICAgICApCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaXRvYgoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtNSAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCA4IDgKCWJ0b2kKCT09CglieiB0ZXJuYXJ5MF9mYWxzZQoJZnJhbWVfZGlnIC01IC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDE3IDgKCWJ0b2kKCWIgdGVybmFyeTBfZW5kCgp0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKdGVybmFyeTBfZW5kOgoJYm94X2NyZWF0ZQoKaWYwX2VuZDoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjExNgoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCi8vCi8vIAovLyBNYXJrIHVwbG9hZGluZyBhcyBmYWxzZQovLyAKLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmFiaV9yb3V0ZV9maW5pc2hVcGxvYWQ6CgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIGZpbmlzaFVwbG9hZChhZGRyZXNzKXZvaWQKCWNhbGxzdWIgZmluaXNoVXBsb2FkCglpbnQgMQoJcmV0dXJuCgpmaW5pc2hVcGxvYWQ6Cglwcm90byAxIDAKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxMjYKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxMjgKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZS5zdGF0dXMgPSBSRUFEWQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogYWRkcmVzcwoJaW50IDE2CglieXRlIDB4MDEKCWJveF9yZXBsYWNlCglyZXRzdWIKCi8vIHN0YXJ0RGVsZXRlKGFkZHJlc3Mpdm9pZAovLwovLyBTdGFydHMgdGhlIGRlbGV0aW9uIHByb2Nlc3MgZm9yIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIERJRAovLyAKLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmFiaV9yb3V0ZV9zdGFydERlbGV0ZToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBzdGFydERlbGV0ZShhZGRyZXNzKXZvaWQKCWNhbGxzdWIgc3RhcnREZWxldGUKCWludCAxCglyZXR1cm4KCnN0YXJ0RGVsZXRlOgoJcHJvdG8gMiAwCgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTM3CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTM5CgkvLyBtZXRhZGF0YSA9IHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogYWRkcmVzcwoJZnJhbWVfYnVyeSAtMiAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxNDAKCS8vIGFzc2VydChtZXRhZGF0YS5zdGF0dXMgPT09IFJFQURZKQoJZnJhbWVfZGlnIC0yIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDE2IDEKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgliPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE0MgoJLy8gbWV0YWRhdGEuc3RhdHVzID0gREVMRVRJTkcKCWZyYW1lX2RpZyAtMiAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWJveF9nZXQKCWFzc2VydAoJYnl0ZSAweDAyCglyZXBsYWNlMiAxNgoJZnJhbWVfZGlnIC0yIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJc3dhcAoJYm94X3B1dAoJcmV0c3ViCgovLyBkZWxldGVEYXRhKHVpbnQ2NCxhZGRyZXNzKXZvaWQKLy8KLy8gRGVsZXRlcyBhIGJveCBvZiBkYXRhCi8vIAovLyBAcGFyYW0gcHViS2V5IFRoZSBhZGRyZXNzIG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIGRlbGV0ZQphYmlfcm91dGVfZGVsZXRlRGF0YToKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBib3hJbmRleDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBkZWxldGVEYXRhKHVpbnQ2NCxhZGRyZXNzKXZvaWQKCWNhbGxzdWIgZGVsZXRlRGF0YQoJaW50IDEKCXJldHVybgoKZGVsZXRlRGF0YToKCXByb3RvIDQgMAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE1MgoJLy8gYXNzZXJ0KHRoaXMudHhuLnNlbmRlciA9PT0gZ2xvYmFscy5jcmVhdG9yQWRkcmVzcykKCXR4biBTZW5kZXIKCWdsb2JhbCBDcmVhdG9yQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE1NAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IGFkZHJlc3MKCWZyYW1lX2J1cnkgLTMgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTU1CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhdHVzID09PSBERUxFVElORykKCWZyYW1lX2RpZyAtMyAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCAxNiAxCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMgoJYj09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxNTYKCS8vIGFzc2VydChtZXRhZGF0YS5zdGFydCA8PSBib3hJbmRleCAmJiBib3hJbmRleCA8PSBtZXRhZGF0YS5lbmQpCglmcmFtZV9kaWcgLTMgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgMCA4CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJPD0KCWR1cAoJYnogc2tpcF9hbmQxCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDggOAoJYnRvaQoJPD0KCSYmCgpza2lwX2FuZDE6Cglhc3NlcnQKCgkvLyBpZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxNTgKCS8vIGJveEluZGV4ICE9PSBtZXRhZGF0YS5zdGFydAoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCAwIDgKCWJ0b2kKCSE9CglieiBpZjFfZW5kCgoJLy8gaWYxX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE1OQoJLy8gYXNzZXJ0KG1ldGFkYXRhLmxhc3REZWxldGVkID09PSBib3hJbmRleCAtIDEpCglmcmFtZV9kaWcgLTMgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgMjUgOAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWludCAxCgktCgk9PQoJYXNzZXJ0CgppZjFfZW5kOgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTYyCgkvLyBwcmVNQlIgPSBnbG9iYWxzLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MubWluQmFsYW5jZQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9idXJ5IC00IC8vIHByZU1CUjogdWludDY0CgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTY0CgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglib3hfZGVsCgoJLy8gaWYyX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTY2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0zIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDggOAoJYnRvaQoJPT0KCWJ6IGlmMl9lbHNlCgoJLy8gaWYyX2NvbnNlcXVlbnQKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE2NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBhZGRyZXNzCglib3hfZGVsCgliIGlmMl9lbmQKCmlmMl9lbHNlOgoJLy8gY29udHJhY3RzL2FsZ28tZGlkLmFsZ28udHM6MTY3CgkvLyBtZXRhZGF0YS5sYXN0RGVsZXRlZCA9IGJveEluZGV4CglmcmFtZV9kaWcgLTMgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglib3hfZ2V0Cglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglyZXBsYWNlMiAyNQoJZnJhbWVfZGlnIC0zIC8vIHN0b3JhZ2Uga2V5Ly9tZXRhZGF0YQoJc3dhcAoJYm94X3B1dAoKaWYyX2VuZDoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE2OQoJLy8gc2VuZFBheW1lbnQoewoJLy8gICAgICAgYW1vdW50OiBwcmVNQlIgLSBnbG9iYWxzLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MubWluQmFsYW5jZSwKCS8vICAgICAgIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxNzAKCS8vIGFtb3VudDogcHJlTUJSIC0gZ2xvYmFscy5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLm1pbkJhbGFuY2UKCWZyYW1lX2RpZyAtNCAvLyBwcmVNQlI6IHVpbnQ2NAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJYXNzZXJ0CgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9hbGdvLWRpZC5hbGdvLnRzOjE3MQoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKXZvaWQKLy8KLy8gQWxsb3cgdGhlIGNvbnRyYWN0IHRvIGJlIHVwZGF0ZWQgYnkgdGhlIGNyZWF0b3IKYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKdXBkYXRlQXBwbGljYXRpb246Cglwcm90byAwIDAKCgkvLyBjb250cmFjdHMvYWxnby1kaWQuYWxnby50czoxNzkKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZHVtbXkoKXZvaWQKLy8KLy8gRHVtbXkgZnVuY3Rpb24gdG8gYWRkIGV4dHJhIGJveCByZWZlcmVuY2VzIGZvciBkZWxldGVEYXRhLgovLyBCb3hlcyBhcmUgMzJrLCBidXQgYSBzaW5nbGUgYXBwIGNhbGwgY2FuIG9ubHkgaW5jbHVkZSBlbm91Z2ggcmVmZXJlbmNlcyB0byByZWFkL3dyaXRlIDhrCi8vIGF0IGEgdGltZS4gVGh1cyB3aGVuIGEgYm94IGlzIGRlbGV0ZWQsIHdlIG5lZWQgdG8gYWRkIGFkZGl0aW9uYWwgZHVtbXkgY2FsbHMgd2l0aCBib3gKLy8gcmVmZXJlbmNlcyB0byBpbmNyZWFzZSB0aGUgdG90YWwgcmVhZC93cml0ZSBidWRnZXQgdG8gMzJrLgphYmlfcm91dGVfZHVtbXk6CgkvLyBleGVjdXRlIGR1bW15KCl2b2lkCgljYWxsc3ViIGR1bW15CglpbnQgMQoJcmV0dXJuCgpkdW1teToKCXByb3RvIDAgMAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQiCgltZXRob2QgInVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQsYnl0ZVtdKXZvaWQiCgltZXRob2QgImZpbmlzaFVwbG9hZChhZGRyZXNzKXZvaWQiCgltZXRob2QgInN0YXJ0RGVsZXRlKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAiZGVsZXRlRGF0YShhZGRyZXNzLHVpbnQ2NCl2b2lkIgoJbWV0aG9kICJkdW1teSgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGFydFVwbG9hZCBhYmlfcm91dGVfdXBsb2FkIGFiaV9yb3V0ZV9maW5pc2hVcGxvYWQgYWJpX3JvdXRlX3N0YXJ0RGVsZXRlIGFiaV9yb3V0ZV9kZWxldGVEYXRhIGFiaV9yb3V0ZV9kdW1teQoJZXJyCgpjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uOgoJbWV0aG9kICJ1cGRhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV91cGRhdGVBcHBsaWNhdGlvbgoJZXJy", - "clear": "I3ByYWdtYSB2ZXJzaW9uIDkKaW50IDE=" - }, - "contract": { - "name": "AlgoDID", - "desc": "", - "methods": [ - { - "name": "startUpload", - "args": [ - { - "name": "pubKey", - "type": "address", - "desc": "The pubkey of the DID" - }, - { - "name": "numBoxes", - "type": "uint64", - "desc": "The number of boxes that the data will take up" - }, - { - "name": "endBoxSize", - "type": "uint64", - "desc": "The size of the last box" - }, - { - "name": "mbrPayment", - "type": "pay", - "desc": "Payment from the uploader to cover the box MBR" - } - ], - "desc": "Allocate boxes to begin data upload process", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "upload", - "args": [ - { - "name": "pubKey", - "type": "address", - "desc": "The pubkey of the DID" - }, - { - "name": "boxIndex", - "type": "uint64", - "desc": "The index of the box to upload the given chunk of data to" - }, - { - "name": "offset", - "type": "uint64", - "desc": "The offset within the box to start writing the data" - }, - { - "name": "data", - "type": "byte[]", - "desc": "The data to write" - } - ], - "desc": "Upload data to a specific offset in a box", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "finishUpload", - "args": [ - { - "name": "pubKey", - "type": "address", - "desc": "The address of the DID" - } - ], - "desc": "Mark uploading as false", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "startDelete", - "args": [ - { - "name": "pubKey", - "type": "address", - "desc": "The address of the DID" - } - ], - "desc": "Starts the deletion process for the data associated with a DID", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "deleteData", - "args": [ - { - "name": "pubKey", - "type": "address", - "desc": "The address of the DID" - }, - { - "name": "boxIndex", - "type": "uint64", - "desc": "The index of the box to delete" - } - ], - "desc": "Deletes a box of data", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "updateApplication", - "args": [], - "desc": "Allow the contract to be updated by the creator", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "dummy", - "args": [], - "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only include enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", - "returns": { - "type": "void", - "desc": "" - } - }, - { - "name": "createApplication", - "desc": "", - "returns": { - "type": "void", - "desc": "" - }, - "args": [] - } - ] - } -} \ No newline at end of file diff --git a/client/internal/contracts/AlgoDID.src_map.json b/client/internal/contracts/AlgoDID.src_map.json deleted file mode 100644 index f5badef..0000000 --- a/client/internal/contracts/AlgoDID.src_map.json +++ /dev/null @@ -1,5784 +0,0 @@ -[ - { - "teal": 1, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 2, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 5, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 7, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 13, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 14, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 15, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 16, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 17, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 18, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 19, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 20, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 22, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 23, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 34, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 35, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 38, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 39, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 40, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 41, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 42, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 43, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 44, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 45, - "source": { - "start": { - "line": 62, - "col": 4 - }, - "end": { - "line": 62, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 48, - "source": { - "start": { - "line": 61, - "col": 4 - }, - "end": { - "line": 61, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 49, - "source": { - "start": { - "line": 61, - "col": 4 - }, - "end": { - "line": 61, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 52, - "source": { - "start": { - "line": 60, - "col": 4 - }, - "end": { - "line": 60, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 53, - "source": { - "start": { - "line": 60, - "col": 4 - }, - "end": { - "line": 60, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 56, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 57, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 58, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 59, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 60, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 61, - "source": { - "start": { - "line": 59, - "col": 4 - }, - "end": { - "line": 59, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 64, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 65, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 66, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 68, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 69, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 73, - "source": { - "start": { - "line": 64, - "col": 11 - }, - "end": { - "line": 64, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 74, - "source": { - "start": { - "line": 64, - "col": 31 - }, - "end": { - "line": 64, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 75, - "source": { - "start": { - "line": 64, - "col": 27 - }, - "end": { - "line": 64, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 76, - "source": { - "start": { - "line": 64, - "col": 11 - }, - "end": { - "line": 64, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 80, - "source": { - "start": { - "line": 66, - "col": 21 - }, - "end": { - "line": 66, - "col": 38 - } - }, - "pc": 0 - }, - { - "teal": 81, - "source": { - "start": { - "line": 66, - "col": 21 - }, - "end": { - "line": 66, - "col": 38 - } - }, - "pc": 0 - }, - { - "teal": 82, - "source": { - "start": { - "line": 66, - "col": 10 - }, - "end": { - "line": 66, - "col": 44 - } - }, - "pc": 0 - }, - { - "teal": 86, - "source": { - "start": { - "line": 67, - "col": 28 - }, - "end": { - "line": 67, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 87, - "source": { - "start": { - "line": 67, - "col": 41 - }, - "end": { - "line": 67, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 88, - "source": { - "start": { - "line": 67, - "col": 39 - }, - "end": { - "line": 67, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 89, - "source": { - "start": { - "line": 67, - "col": 41 - }, - "end": { - "line": 67, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 90, - "source": { - "start": { - "line": 67, - "col": 39 - }, - "end": { - "line": 67, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 91, - "source": { - "start": { - "line": 67, - "col": 10 - }, - "end": { - "line": 67, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 101, - "source": { - "start": { - "line": 70, - "col": 13 - }, - "end": { - "line": 70, - "col": 21 - } - }, - "pc": 0 - }, - { - "teal": 102, - "source": { - "start": { - "line": 70, - "col": 13 - }, - "end": { - "line": 70, - "col": 21 - } - }, - "pc": 0 - }, - { - "teal": 103, - "source": { - "start": { - "line": 71, - "col": 11 - }, - "end": { - "line": 71, - "col": 17 - } - }, - "pc": 0 - }, - { - "teal": 104, - "source": { - "start": { - "line": 71, - "col": 11 - }, - "end": { - "line": 71, - "col": 17 - } - }, - "pc": 0 - }, - { - "teal": 105, - "source": { - "start": { - "line": 69, - "col": 31 - }, - "end": { - "line": 75, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 106, - "source": { - "start": { - "line": 26, - "col": 27 - }, - "end": { - "line": 26, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 107, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 108, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 109, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 110, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 111, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 112, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 113, - "source": { - "start": { - "line": 72, - "col": 14 - }, - "end": { - "line": 72, - "col": 23 - } - }, - "pc": 0 - }, - { - "teal": 114, - "source": { - "start": { - "line": 69, - "col": 31 - }, - "end": { - "line": 75, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 115, - "source": { - "start": { - "line": 73, - "col": 15 - }, - "end": { - "line": 73, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 116, - "source": { - "start": { - "line": 73, - "col": 15 - }, - "end": { - "line": 73, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 117, - "source": { - "start": { - "line": 69, - "col": 31 - }, - "end": { - "line": 75, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 118, - "source": { - "start": { - "line": 74, - "col": 19 - }, - "end": { - "line": 74, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 119, - "source": { - "start": { - "line": 74, - "col": 19 - }, - "end": { - "line": 74, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 120, - "source": { - "start": { - "line": 69, - "col": 31 - }, - "end": { - "line": 75, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 124, - "source": { - "start": { - "line": 77, - "col": 4 - }, - "end": { - "line": 77, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 125, - "source": { - "start": { - "line": 77, - "col": 26 - }, - "end": { - "line": 77, - "col": 32 - } - }, - "pc": 0 - }, - { - "teal": 126, - "source": { - "start": { - "line": 77, - "col": 12 - }, - "end": { - "line": 77, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 127, - "source": { - "start": { - "line": 77, - "col": 12 - }, - "end": { - "line": 77, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 128, - "source": { - "start": { - "line": 77, - "col": 12 - }, - "end": { - "line": 77, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 129, - "source": { - "start": { - "line": 77, - "col": 12 - }, - "end": { - "line": 77, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 133, - "source": { - "start": { - "line": 79, - "col": 4 - }, - "end": { - "line": 79, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 134, - "source": { - "start": { - "line": 79, - "col": 18 - }, - "end": { - "line": 79, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 135, - "source": { - "start": { - "line": 79, - "col": 4 - }, - "end": { - "line": 79, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 139, - "source": { - "start": { - "line": 81, - "col": 4 - }, - "end": { - "line": 81, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 140, - "source": { - "start": { - "line": 81, - "col": 4 - }, - "end": { - "line": 81, - "col": 21 - } - }, - "pc": 0 - }, - { - "teal": 141, - "source": { - "start": { - "line": 81, - "col": 4 - }, - "end": { - "line": 81, - "col": 21 - } - }, - "pc": 0 - }, - { - "teal": 142, - "source": { - "start": { - "line": 81, - "col": 39 - }, - "end": { - "line": 81, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 143, - "source": { - "start": { - "line": 81, - "col": 37 - }, - "end": { - "line": 81, - "col": 38 - } - }, - "pc": 0 - }, - { - "teal": 152, - "source": { - "start": { - "line": 36, - "col": 21 - }, - "end": { - "line": 36, - "col": 26 - } - }, - "pc": 0 - }, - { - "teal": 153, - "source": { - "start": { - "line": 84, - "col": 21 - }, - "end": { - "line": 84, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 154, - "source": { - "start": { - "line": 34, - "col": 22 - }, - "end": { - "line": 34, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 155, - "source": { - "start": { - "line": 84, - "col": 36 - }, - "end": { - "line": 84, - "col": 37 - } - }, - "pc": 0 - }, - { - "teal": 156, - "source": { - "start": { - "line": 83, - "col": 46 - }, - "end": { - "line": 83, - "col": 47 - } - }, - "pc": 0 - }, - { - "teal": 157, - "source": { - "start": { - "line": 85, - "col": 6 - }, - "end": { - "line": 85, - "col": 14 - } - }, - "pc": 0 - }, - { - "teal": 158, - "source": { - "start": { - "line": 85, - "col": 17 - }, - "end": { - "line": 85, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 159, - "source": { - "start": { - "line": 85, - "col": 15 - }, - "end": { - "line": 85, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 160, - "source": { - "start": { - "line": 34, - "col": 22 - }, - "end": { - "line": 34, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 161, - "source": { - "start": { - "line": 85, - "col": 19 - }, - "end": { - "line": 85, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 162, - "source": { - "start": { - "line": 84, - "col": 52 - }, - "end": { - "line": 84, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 163, - "source": { - "start": { - "line": 86, - "col": 6 - }, - "end": { - "line": 86, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 164, - "source": { - "start": { - "line": 34, - "col": 22 - }, - "end": { - "line": 34, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 165, - "source": { - "start": { - "line": 86, - "col": 17 - }, - "end": { - "line": 86, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 166, - "source": { - "start": { - "line": 85, - "col": 35 - }, - "end": { - "line": 85, - "col": 36 - } - }, - "pc": 0 - }, - { - "teal": 167, - "source": { - "start": { - "line": 35, - "col": 21 - }, - "end": { - "line": 35, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 168, - "source": { - "start": { - "line": 86, - "col": 33 - }, - "end": { - "line": 86, - "col": 34 - } - }, - "pc": 0 - }, - { - "teal": 169, - "source": { - "start": { - "line": 88, - "col": 7 - }, - "end": { - "line": 88, - "col": 8 - } - }, - "pc": 0 - }, - { - "teal": 170, - "source": { - "start": { - "line": 88, - "col": 11 - }, - "end": { - "line": 88, - "col": 12 - } - }, - "pc": 0 - }, - { - "teal": 171, - "source": { - "start": { - "line": 88, - "col": 9 - }, - "end": { - "line": 88, - "col": 10 - } - }, - "pc": 0 - }, - { - "teal": 172, - "source": { - "start": { - "line": 88, - "col": 15 - }, - "end": { - "line": 88, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 173, - "source": { - "start": { - "line": 88, - "col": 13 - }, - "end": { - "line": 88, - "col": 14 - } - }, - "pc": 0 - }, - { - "teal": 174, - "source": { - "start": { - "line": 88, - "col": 19 - }, - "end": { - "line": 88, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 175, - "source": { - "start": { - "line": 88, - "col": 17 - }, - "end": { - "line": 88, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 176, - "source": { - "start": { - "line": 88, - "col": 23 - }, - "end": { - "line": 88, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 177, - "source": { - "start": { - "line": 88, - "col": 21 - }, - "end": { - "line": 88, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 181, - "source": { - "start": { - "line": 34, - "col": 22 - }, - "end": { - "line": 34, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 182, - "source": { - "start": { - "line": 88, - "col": 31 - }, - "end": { - "line": 88, - "col": 32 - } - }, - "pc": 0 - }, - { - "teal": 183, - "source": { - "start": { - "line": 87, - "col": 19 - }, - "end": { - "line": 87, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 184, - "source": { - "start": { - "line": 88, - "col": 23 - }, - "end": { - "line": 88, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 185, - "source": { - "start": { - "line": 88, - "col": 21 - }, - "end": { - "line": 88, - "col": 22 - } - }, - "pc": 0 - }, - { - "teal": 189, - "source": { - "start": { - "line": 34, - "col": 22 - }, - "end": { - "line": 34, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 190, - "source": { - "start": { - "line": 88, - "col": 31 - }, - "end": { - "line": 88, - "col": 32 - } - }, - "pc": 0 - }, - { - "teal": 191, - "source": { - "start": { - "line": 87, - "col": 19 - }, - "end": { - "line": 87, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 192, - "source": { - "start": { - "line": 83, - "col": 10 - }, - "end": { - "line": 88, - "col": 46 - } - }, - "pc": 0 - }, - { - "teal": 193, - "source": { - "start": { - "line": 90, - "col": 4 - }, - "end": { - "line": 90, - "col": 43 - } - }, - "pc": 0 - }, - { - "teal": 194, - "source": { - "start": { - "line": 90, - "col": 4 - }, - "end": { - "line": 90, - "col": 43 - } - }, - "pc": 0 - }, - { - "teal": 205, - "source": { - "start": { - "line": 91, - "col": 35 - }, - "end": { - "line": 91, - "col": 51 - } - }, - "pc": 0 - }, - { - "teal": 206, - "source": { - "start": { - "line": 91, - "col": 31 - }, - "end": { - "line": 91, - "col": 34 - } - }, - "pc": 0 - }, - { - "teal": 209, - "source": { - "start": { - "line": 58, - "col": 2 - }, - "end": { - "line": 92, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 210, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 213, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 214, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 217, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 218, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 221, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 222, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 223, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 224, - "source": { - "start": { - "line": 103, - "col": 60 - }, - "end": { - "line": 103, - "col": 71 - } - }, - "pc": 0 - }, - { - "teal": 225, - "source": { - "start": { - "line": 103, - "col": 60 - }, - "end": { - "line": 103, - "col": 71 - } - }, - "pc": 0 - }, - { - "teal": 226, - "source": { - "start": { - "line": 103, - "col": 60 - }, - "end": { - "line": 103, - "col": 71 - } - }, - "pc": 0 - }, - { - "teal": 229, - "source": { - "start": { - "line": 103, - "col": 44 - }, - "end": { - "line": 103, - "col": 58 - } - }, - "pc": 0 - }, - { - "teal": 230, - "source": { - "start": { - "line": 103, - "col": 44 - }, - "end": { - "line": 103, - "col": 58 - } - }, - "pc": 0 - }, - { - "teal": 231, - "source": { - "start": { - "line": 103, - "col": 26 - }, - "end": { - "line": 103, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 233, - "source": { - "start": { - "line": 103, - "col": 26 - }, - "end": { - "line": 103, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 234, - "source": { - "start": { - "line": 103, - "col": 26 - }, - "end": { - "line": 103, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 238, - "source": { - "start": { - "line": 103, - "col": 9 - }, - "end": { - "line": 103, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 239, - "source": { - "start": { - "line": 103, - "col": 9 - }, - "end": { - "line": 103, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 240, - "source": { - "start": { - "line": 103, - "col": 9 - }, - "end": { - "line": 103, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 241, - "source": { - "start": { - "line": 103, - "col": 9 - }, - "end": { - "line": 103, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 245, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 246, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 250, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 251, - "source": { - "start": { - "line": 104, - "col": 4 - }, - "end": { - "line": 104, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 252, - "source": { - "start": { - "line": 104, - "col": 4 - }, - "end": { - "line": 104, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 253, - "source": { - "start": { - "line": 104, - "col": 11 - }, - "end": { - "line": 104, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 254, - "source": { - "start": { - "line": 104, - "col": 31 - }, - "end": { - "line": 104, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 255, - "source": { - "start": { - "line": 104, - "col": 27 - }, - "end": { - "line": 104, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 256, - "source": { - "start": { - "line": 104, - "col": 11 - }, - "end": { - "line": 104, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 260, - "source": { - "start": { - "line": 106, - "col": 35 - }, - "end": { - "line": 106, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 261, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 262, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 263, - "source": { - "start": { - "line": 107, - "col": 4 - }, - "end": { - "line": 107, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 264, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 265, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 266, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 267, - "source": { - "start": { - "line": 107, - "col": 11 - }, - "end": { - "line": 107, - "col": 26 - } - }, - "pc": 0 - }, - { - "teal": 268, - "source": { - "start": { - "line": 26, - "col": 27 - }, - "end": { - "line": 26, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 269, - "source": { - "start": { - "line": 26, - "col": 27 - }, - "end": { - "line": 26, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 270, - "source": { - "start": { - "line": 107, - "col": 27 - }, - "end": { - "line": 107, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 271, - "source": { - "start": { - "line": 107, - "col": 11 - }, - "end": { - "line": 107, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 272, - "source": { - "start": { - "line": 108, - "col": 4 - }, - "end": { - "line": 108, - "col": 66 - } - }, - "pc": 0 - }, - { - "teal": 273, - "source": { - "start": { - "line": 108, - "col": 4 - }, - "end": { - "line": 108, - "col": 66 - } - }, - "pc": 0 - }, - { - "teal": 274, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 275, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 276, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 278, - "source": { - "start": { - "line": 108, - "col": 11 - }, - "end": { - "line": 108, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 279, - "source": { - "start": { - "line": 108, - "col": 11 - }, - "end": { - "line": 108, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 284, - "source": { - "start": { - "line": 108, - "col": 38 - }, - "end": { - "line": 108, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 285, - "source": { - "start": { - "line": 108, - "col": 41 - }, - "end": { - "line": 108, - "col": 49 - } - }, - "pc": 0 - }, - { - "teal": 286, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 287, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 294, - "source": { - "start": { - "line": 108, - "col": 38 - }, - "end": { - "line": 108, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 295, - "source": { - "start": { - "line": 108, - "col": 11 - }, - "end": { - "line": 108, - "col": 65 - } - }, - "pc": 0 - }, - { - "teal": 296, - "source": { - "start": { - "line": 110, - "col": 4 - }, - "end": { - "line": 114, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 297, - "source": { - "start": { - "line": 110, - "col": 8 - }, - "end": { - "line": 110, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 298, - "source": { - "start": { - "line": 110, - "col": 8 - }, - "end": { - "line": 110, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 299, - "source": { - "start": { - "line": 110, - "col": 8 - }, - "end": { - "line": 110, - "col": 14 - } - }, - "pc": 0 - }, - { - "teal": 300, - "source": { - "start": { - "line": 110, - "col": 19 - }, - "end": { - "line": 110, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 301, - "source": { - "start": { - "line": 110, - "col": 15 - }, - "end": { - "line": 110, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 302, - "source": { - "start": { - "line": 110, - "col": 4 - }, - "end": { - "line": 114, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 303, - "source": { - "start": { - "line": 110, - "col": 4 - }, - "end": { - "line": 114, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 304, - "source": { - "start": { - "line": 111, - "col": 6 - }, - "end": { - "line": 113, - "col": 7 - } - }, - "pc": 0 - }, - { - "teal": 305, - "source": { - "start": { - "line": 111, - "col": 6 - }, - "end": { - "line": 113, - "col": 7 - } - }, - "pc": 0 - }, - { - "teal": 306, - "source": { - "start": { - "line": 111, - "col": 6 - }, - "end": { - "line": 113, - "col": 7 - } - }, - "pc": 0 - }, - { - "teal": 307, - "source": { - "start": { - "line": 111, - "col": 6 - }, - "end": { - "line": 113, - "col": 7 - } - }, - "pc": 0 - }, - { - "teal": 308, - "source": { - "start": { - "line": 111, - "col": 21 - }, - "end": { - "line": 111, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 309, - "source": { - "start": { - "line": 111, - "col": 21 - }, - "end": { - "line": 111, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 311, - "source": { - "start": { - "line": 112, - "col": 8 - }, - "end": { - "line": 112, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 312, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 314, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 315, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 317, - "source": { - "start": { - "line": 112, - "col": 21 - }, - "end": { - "line": 112, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 320, - "source": { - "start": { - "line": 112, - "col": 8 - }, - "end": { - "line": 112, - "col": 67 - } - }, - "pc": 0 - }, - { - "teal": 321, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 322, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 323, - "source": { - "start": { - "line": 106, - "col": 21 - }, - "end": { - "line": 106, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 324, - "source": { - "start": { - "line": 112, - "col": 36 - }, - "end": { - "line": 112, - "col": 52 - } - }, - "pc": 0 - }, - { - "teal": 325, - "source": { - "start": { - "line": 112, - "col": 36 - }, - "end": { - "line": 112, - "col": 52 - } - }, - "pc": 0 - }, - { - "teal": 333, - "source": { - "start": { - "line": 116, - "col": 4 - }, - "end": { - "line": 116, - "col": 50 - } - }, - "pc": 0 - }, - { - "teal": 335, - "source": { - "start": { - "line": 116, - "col": 19 - }, - "end": { - "line": 116, - "col": 27 - } - }, - "pc": 0 - }, - { - "teal": 336, - "source": { - "start": { - "line": 116, - "col": 37 - }, - "end": { - "line": 116, - "col": 43 - } - }, - "pc": 0 - }, - { - "teal": 337, - "source": { - "start": { - "line": 116, - "col": 45 - }, - "end": { - "line": 116, - "col": 49 - } - }, - "pc": 0 - }, - { - "teal": 338, - "source": { - "start": { - "line": 116, - "col": 4 - }, - "end": { - "line": 116, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 339, - "source": { - "start": { - "line": 103, - "col": 2 - }, - "end": { - "line": 117, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 340, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 343, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 344, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 345, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 347, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 348, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 352, - "source": { - "start": { - "line": 125, - "col": 15 - }, - "end": { - "line": 125, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 353, - "source": { - "start": { - "line": 125, - "col": 15 - }, - "end": { - "line": 125, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 354, - "source": { - "start": { - "line": 125, - "col": 15 - }, - "end": { - "line": 125, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 355, - "source": { - "start": { - "line": 125, - "col": 15 - }, - "end": { - "line": 125, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 359, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 360, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 361, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 362, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 363, - "source": { - "start": { - "line": 125, - "col": 2 - }, - "end": { - "line": 129, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 370, - "source": { - "start": { - "line": 126, - "col": 27 - }, - "end": { - "line": 126, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 371, - "source": { - "start": { - "line": 126, - "col": 11 - }, - "end": { - "line": 126, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 374, - "source": { - "start": { - "line": 128, - "col": 4 - }, - "end": { - "line": 128, - "col": 46 - } - }, - "pc": 0 - }, - { - "teal": 375, - "source": { - "start": { - "line": 128, - "col": 18 - }, - "end": { - "line": 128, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 376, - "source": { - "start": { - "line": 128, - "col": 4 - }, - "end": { - "line": 128, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 377, - "source": { - "start": { - "line": 128, - "col": 4 - }, - "end": { - "line": 128, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 378, - "source": { - "start": { - "line": 128, - "col": 4 - }, - "end": { - "line": 128, - "col": 38 - } - }, - "pc": 0 - }, - { - "teal": 379, - "source": { - "start": { - "line": 128, - "col": 4 - }, - "end": { - "line": 128, - "col": 25 - } - }, - "pc": 0 - }, - { - "teal": 382, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 383, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 384, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 386, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 387, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 391, - "source": { - "start": { - "line": 136, - "col": 14 - }, - "end": { - "line": 136, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 392, - "source": { - "start": { - "line": 136, - "col": 14 - }, - "end": { - "line": 136, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 393, - "source": { - "start": { - "line": 136, - "col": 14 - }, - "end": { - "line": 136, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 394, - "source": { - "start": { - "line": 136, - "col": 14 - }, - "end": { - "line": 136, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 398, - "source": { - "start": { - "line": 136, - "col": 14 - }, - "end": { - "line": 136, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 399, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 403, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 404, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 405, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 406, - "source": { - "start": { - "line": 137, - "col": 4 - }, - "end": { - "line": 137, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 407, - "source": { - "start": { - "line": 137, - "col": 4 - }, - "end": { - "line": 137, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 408, - "source": { - "start": { - "line": 137, - "col": 11 - }, - "end": { - "line": 137, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 409, - "source": { - "start": { - "line": 137, - "col": 31 - }, - "end": { - "line": 137, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 413, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 48 - } - }, - "pc": 0 - }, - { - "teal": 414, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 48 - } - }, - "pc": 0 - }, - { - "teal": 415, - "source": { - "start": { - "line": 139, - "col": 35 - }, - "end": { - "line": 139, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 416, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 417, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 418, - "source": { - "start": { - "line": 140, - "col": 4 - }, - "end": { - "line": 140, - "col": 37 - } - }, - "pc": 0 - }, - { - "teal": 419, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 420, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 421, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 429, - "source": { - "start": { - "line": 142, - "col": 4 - }, - "end": { - "line": 142, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 430, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 433, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 434, - "source": { - "start": { - "line": 142, - "col": 4 - }, - "end": { - "line": 142, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 437, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 438, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 439, - "source": { - "start": { - "line": 139, - "col": 21 - }, - "end": { - "line": 139, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 440, - "source": { - "start": { - "line": 136, - "col": 2 - }, - "end": { - "line": 143, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 441, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 442, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 445, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 446, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 447, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 449, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 450, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 454, - "source": { - "start": { - "line": 151, - "col": 30 - }, - "end": { - "line": 151, - "col": 46 - } - }, - "pc": 0 - }, - { - "teal": 455, - "source": { - "start": { - "line": 151, - "col": 13 - }, - "end": { - "line": 151, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 456, - "source": { - "start": { - "line": 151, - "col": 13 - }, - "end": { - "line": 151, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 457, - "source": { - "start": { - "line": 151, - "col": 13 - }, - "end": { - "line": 151, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 461, - "source": { - "start": { - "line": 151, - "col": 13 - }, - "end": { - "line": 151, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 462, - "source": { - "start": { - "line": 151, - "col": 13 - }, - "end": { - "line": 151, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 466, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 467, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 468, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 469, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 470, - "source": { - "start": { - "line": 152, - "col": 4 - }, - "end": { - "line": 152, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 471, - "source": { - "start": { - "line": 152, - "col": 4 - }, - "end": { - "line": 152, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 472, - "source": { - "start": { - "line": 152, - "col": 11 - }, - "end": { - "line": 152, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 476, - "source": { - "start": { - "line": 152, - "col": 11 - }, - "end": { - "line": 152, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 477, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 48 - } - }, - "pc": 0 - }, - { - "teal": 478, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 48 - } - }, - "pc": 0 - }, - { - "teal": 479, - "source": { - "start": { - "line": 154, - "col": 35 - }, - "end": { - "line": 154, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 480, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 481, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 482, - "source": { - "start": { - "line": 155, - "col": 4 - }, - "end": { - "line": 155, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 483, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 484, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 485, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 486, - "source": { - "start": { - "line": 155, - "col": 11 - }, - "end": { - "line": 155, - "col": 26 - } - }, - "pc": 0 - }, - { - "teal": 487, - "source": { - "start": { - "line": 32, - "col": 26 - }, - "end": { - "line": 32, - "col": 27 - } - }, - "pc": 0 - }, - { - "teal": 488, - "source": { - "start": { - "line": 32, - "col": 26 - }, - "end": { - "line": 32, - "col": 27 - } - }, - "pc": 0 - }, - { - "teal": 489, - "source": { - "start": { - "line": 155, - "col": 27 - }, - "end": { - "line": 155, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 490, - "source": { - "start": { - "line": 155, - "col": 11 - }, - "end": { - "line": 155, - "col": 39 - } - }, - "pc": 0 - }, - { - "teal": 491, - "source": { - "start": { - "line": 156, - "col": 4 - }, - "end": { - "line": 156, - "col": 66 - } - }, - "pc": 0 - }, - { - "teal": 492, - "source": { - "start": { - "line": 156, - "col": 4 - }, - "end": { - "line": 156, - "col": 66 - } - }, - "pc": 0 - }, - { - "teal": 494, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 495, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 500, - "source": { - "start": { - "line": 156, - "col": 29 - }, - "end": { - "line": 156, - "col": 37 - } - }, - "pc": 0 - }, - { - "teal": 501, - "source": { - "start": { - "line": 156, - "col": 26 - }, - "end": { - "line": 156, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 502, - "source": { - "start": { - "line": 156, - "col": 38 - }, - "end": { - "line": 156, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 503, - "source": { - "start": { - "line": 156, - "col": 38 - }, - "end": { - "line": 156, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 504, - "source": { - "start": { - "line": 156, - "col": 41 - }, - "end": { - "line": 156, - "col": 49 - } - }, - "pc": 0 - }, - { - "teal": 505, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 506, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 507, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 512, - "source": { - "start": { - "line": 156, - "col": 38 - }, - "end": { - "line": 156, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 513, - "source": { - "start": { - "line": 156, - "col": 38 - }, - "end": { - "line": 156, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 514, - "source": { - "start": { - "line": 156, - "col": 11 - }, - "end": { - "line": 156, - "col": 65 - } - }, - "pc": 0 - }, - { - "teal": 515, - "source": { - "start": { - "line": 158, - "col": 4 - }, - "end": { - "line": 160, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 516, - "source": { - "start": { - "line": 158, - "col": 8 - }, - "end": { - "line": 158, - "col": 35 - } - }, - "pc": 0 - }, - { - "teal": 517, - "source": { - "start": { - "line": 158, - "col": 8 - }, - "end": { - "line": 158, - "col": 35 - } - }, - "pc": 0 - }, - { - "teal": 518, - "source": { - "start": { - "line": 158, - "col": 8 - }, - "end": { - "line": 158, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 519, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 520, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 521, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 523, - "source": { - "start": { - "line": 158, - "col": 21 - }, - "end": { - "line": 158, - "col": 35 - } - }, - "pc": 0 - }, - { - "teal": 526, - "source": { - "start": { - "line": 158, - "col": 4 - }, - "end": { - "line": 160, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 527, - "source": { - "start": { - "line": 158, - "col": 4 - }, - "end": { - "line": 160, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 528, - "source": { - "start": { - "line": 159, - "col": 6 - }, - "end": { - "line": 159, - "col": 51 - } - }, - "pc": 0 - }, - { - "teal": 529, - "source": { - "start": { - "line": 159, - "col": 6 - }, - "end": { - "line": 159, - "col": 51 - } - }, - "pc": 0 - }, - { - "teal": 533, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 534, - "source": { - "start": { - "line": 159, - "col": 13 - }, - "end": { - "line": 159, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 535, - "source": { - "start": { - "line": 159, - "col": 13 - }, - "end": { - "line": 159, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 540, - "source": { - "start": { - "line": 159, - "col": 34 - }, - "end": { - "line": 159, - "col": 37 - } - }, - "pc": 0 - }, - { - "teal": 541, - "source": { - "start": { - "line": 159, - "col": 13 - }, - "end": { - "line": 159, - "col": 50 - } - }, - "pc": 0 - }, - { - "teal": 542, - "source": { - "start": { - "line": 158, - "col": 4 - }, - "end": { - "line": 160, - "col": 5 - } - }, - "pc": 0 - }, - { - "teal": 543, - "source": { - "start": { - "line": 162, - "col": 19 - }, - "end": { - "line": 162, - "col": 63 - } - }, - "pc": 0 - }, - { - "teal": 544, - "source": { - "start": { - "line": 162, - "col": 19 - }, - "end": { - "line": 162, - "col": 63 - } - }, - "pc": 0 - }, - { - "teal": 545, - "source": { - "start": { - "line": 162, - "col": 19 - }, - "end": { - "line": 162, - "col": 52 - } - }, - "pc": 0 - }, - { - "teal": 546, - "source": { - "start": { - "line": 162, - "col": 19 - }, - "end": { - "line": 162, - "col": 63 - } - }, - "pc": 0 - }, - { - "teal": 547, - "source": { - "start": { - "line": 162, - "col": 19 - }, - "end": { - "line": 162, - "col": 63 - } - }, - "pc": 0 - }, - { - "teal": 552, - "source": { - "start": { - "line": 164, - "col": 19 - }, - "end": { - "line": 164, - "col": 27 - } - }, - "pc": 0 - }, - { - "teal": 553, - "source": { - "start": { - "line": 164, - "col": 19 - }, - "end": { - "line": 164, - "col": 27 - } - }, - "pc": 0 - }, - { - "teal": 554, - "source": { - "start": { - "line": 164, - "col": 4 - }, - "end": { - "line": 164, - "col": 28 - } - }, - "pc": 0 - }, - { - "teal": 556, - "source": { - "start": { - "line": 166, - "col": 4 - }, - "end": { - "line": 167, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 559, - "source": { - "start": { - "line": 166, - "col": 8 - }, - "end": { - "line": 166, - "col": 16 - } - }, - "pc": 0 - }, - { - "teal": 560, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 561, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 562, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 563, - "source": { - "start": { - "line": 166, - "col": 21 - }, - "end": { - "line": 166, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 564, - "source": { - "start": { - "line": 166, - "col": 21 - }, - "end": { - "line": 166, - "col": 33 - } - }, - "pc": 0 - }, - { - "teal": 565, - "source": { - "start": { - "line": 166, - "col": 17 - }, - "end": { - "line": 166, - "col": 20 - } - }, - "pc": 0 - }, - { - "teal": 566, - "source": { - "start": { - "line": 166, - "col": 4 - }, - "end": { - "line": 167, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 567, - "source": { - "start": { - "line": 166, - "col": 4 - }, - "end": { - "line": 167, - "col": 41 - } - }, - "pc": 0 - }, - { - "teal": 569, - "source": { - "start": { - "line": 166, - "col": 35 - }, - "end": { - "line": 166, - "col": 65 - } - }, - "pc": 0 - }, - { - "teal": 575, - "source": { - "start": { - "line": 167, - "col": 9 - }, - "end": { - "line": 167, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 576, - "source": { - "start": { - "line": 167, - "col": 9 - }, - "end": { - "line": 167, - "col": 40 - } - }, - "pc": 0 - }, - { - "teal": 577, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 581, - "source": { - "start": { - "line": 167, - "col": 9 - }, - "end": { - "line": 167, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 582, - "source": { - "start": { - "line": 167, - "col": 9 - }, - "end": { - "line": 167, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 583, - "source": { - "start": { - "line": 167, - "col": 9 - }, - "end": { - "line": 167, - "col": 29 - } - }, - "pc": 0 - }, - { - "teal": 584, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 585, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 586, - "source": { - "start": { - "line": 154, - "col": 21 - }, - "end": { - "line": 154, - "col": 42 - } - }, - "pc": 0 - }, - { - "teal": 590, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 591, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 594, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 595, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 598, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 599, - "source": { - "start": { - "line": 170, - "col": 6 - }, - "end": { - "line": 170, - "col": 67 - } - }, - "pc": 0 - }, - { - "teal": 604, - "source": { - "start": { - "line": 170, - "col": 23 - }, - "end": { - "line": 170, - "col": 67 - } - }, - "pc": 0 - }, - { - "teal": 606, - "source": { - "start": { - "line": 170, - "col": 6 - }, - "end": { - "line": 170, - "col": 67 - } - }, - "pc": 0 - }, - { - "teal": 607, - "source": { - "start": { - "line": 171, - "col": 6 - }, - "end": { - "line": 171, - "col": 31 - } - }, - "pc": 0 - }, - { - "teal": 608, - "source": { - "start": { - "line": 171, - "col": 6 - }, - "end": { - "line": 171, - "col": 31 - } - }, - "pc": 0 - }, - { - "teal": 610, - "source": { - "start": { - "line": 171, - "col": 16 - }, - "end": { - "line": 171, - "col": 24 - } - }, - "pc": 0 - }, - { - "teal": 611, - "source": { - "start": { - "line": 171, - "col": 6 - }, - "end": { - "line": 171, - "col": 31 - } - }, - "pc": 0 - }, - { - "teal": 615, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 616, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 617, - "source": { - "start": { - "line": 169, - "col": 4 - }, - "end": { - "line": 172, - "col": 6 - } - }, - "pc": 0 - }, - { - "teal": 618, - "source": { - "start": { - "line": 151, - "col": 2 - }, - "end": { - "line": 173, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 619, - "source": { - "start": { - "line": 178, - "col": 2 - }, - "end": { - "line": 180, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 627, - "source": { - "start": { - "line": 178, - "col": 2 - }, - "end": { - "line": 180, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 629, - "source": { - "start": { - "line": 178, - "col": 2 - }, - "end": { - "line": 180, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 630, - "source": { - "start": { - "line": 179, - "col": 4 - }, - "end": { - "line": 179, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 631, - "source": { - "start": { - "line": 179, - "col": 4 - }, - "end": { - "line": 179, - "col": 54 - } - }, - "pc": 0 - }, - { - "teal": 633, - "source": { - "start": { - "line": 179, - "col": 11 - }, - "end": { - "line": 179, - "col": 19 - } - }, - "pc": 0 - }, - { - "teal": 634, - "source": { - "start": { - "line": 179, - "col": 31 - }, - "end": { - "line": 179, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 635, - "source": { - "start": { - "line": 179, - "col": 27 - }, - "end": { - "line": 179, - "col": 30 - } - }, - "pc": 0 - }, - { - "teal": 637, - "source": { - "start": { - "line": 179, - "col": 11 - }, - "end": { - "line": 179, - "col": 53 - } - }, - "pc": 0 - }, - { - "teal": 638, - "source": { - "start": { - "line": 178, - "col": 2 - }, - "end": { - "line": 180, - "col": 3 - } - }, - "pc": 0 - }, - { - "teal": 639, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 641, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 642, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 643, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 644, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 645, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 647, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 648, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 649, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 650, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 651, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 652, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 653, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 654, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 655, - "source": { - "start": { - "line": 188, - "col": 2 - }, - "end": { - "line": 188, - "col": 18 - } - }, - "pc": 0 - }, - { - "teal": 656, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 658, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 659, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 660, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 661, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 662, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - }, - { - "teal": 1, - "source": { - "start": { - "line": 39, - "col": 0 - }, - "end": { - "line": 189, - "col": 1 - } - }, - "pc": 0 - } -] \ No newline at end of file diff --git a/client/internal/contracts/AlgoDID.approval.teal b/client/internal/contracts/DIDAlgoStorage.approval.teal similarity index 51% rename from client/internal/contracts/AlgoDID.approval.teal rename to client/internal/contracts/DIDAlgoStorage.approval.teal index 3af3889..186e5cc 100644 --- a/client/internal/contracts/AlgoDID.approval.teal +++ b/client/internal/contracts/DIDAlgoStorage.approval.teal @@ -1,7 +1,7 @@ -#pragma version 9 +#pragma version 10 -// This TEAL was generated by TEALScript v0.51.1 -// https://github.com/algorand-devrel/TEALScript +// This TEAL was generated by TEALScript v0.96.0 +// https://github.com/algorandfoundation/TEALScript // This contract is compliant with and/or implements the following ARCs: [ ARC4 ] @@ -9,31 +9,21 @@ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed // Here, action refers to the OnComplete in combination with whether the app is being created or called // Every possible action for this contract is represented in the switch statement -// If the action is not implmented in the contract, its repsective branch will be "NOT_IMPLMENTED" which just contains "err" +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" txn ApplicationID -int 0 -> +! int 6 * txn OnCompletion + -switch create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED call_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED call_UpdateApplication +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *call_UpdateApplication *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED -NOT_IMPLEMENTED: +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? err -// startUpload(pay,uint64,uint64,address)void -// -// -// Allocate boxes to begin data upload process -// -// @param pubKey The pubkey of the DID -// @param numBoxes The number of boxes that the data will take up -// @param endBoxSize The size of the last box -// @param mbrPayment Payment from the uploader to cover the box MBR -abi_route_startUpload: - byte 0x; dupn 3 // push empty bytes to fill the stack frame for this subroutine's local variables - +// startUpload(address,uint64,uint64,pay)void +*abi_route_startUpload: // mbrPayment: pay txn GroupIndex int 1 @@ -42,6 +32,8 @@ abi_route_startUpload: gtxns TypeEnum int pay == + + // argument 0 (mbrPayment) for startUpload must be a pay transaction assert // endBoxSize: uint64 @@ -58,97 +50,100 @@ abi_route_startUpload: len int 32 == + + // argument 3 (pubKey) for startUpload must be a address assert - // execute startUpload(pay,uint64,uint64,address)void + // execute startUpload(address,uint64,uint64,pay)void callsub startUpload int 1 return +// startUpload(pubKey: Address, numBoxes: uint64, endBoxSize: uint64, mbrPayment: PayTxn): void +// +// +// Allocate boxes to begin data upload process +// +// @param pubKey The pubkey of the DID +// @param numBoxes The number of boxes that the data will take up +// @param endBoxSize The size of the last box +// @param mbrPayment Payment from the uploader to cover the box MBR startUpload: - proto 8 0 + proto 4 0 - // contracts/algo-did.algo.ts:64 + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + dupn 3 + + // contracts/did-algo-storage.algo.ts:63 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress == assert - // contracts/algo-did.algo.ts:66 + // contracts/did-algo-storage.algo.ts:65 // startBox = this.currentIndex.value byte 0x63757272656e74496e646578 // "currentIndex" app_global_get - frame_bury -5 // startBox: uint64 + frame_bury 0 // startBox: uint64 - // contracts/algo-did.algo.ts:67 + // contracts/did-algo-storage.algo.ts:66 // endBox = startBox + numBoxes - 1 - frame_dig -5 // startBox: uint64 + frame_dig 0 // startBox: uint64 frame_dig -2 // numBoxes: uint64 + int 1 - - frame_bury -6 // endBox: uint64 + frame_bury 1 // endBox: uint64 - // contracts/algo-did.algo.ts:69 + // contracts/did-algo-storage.algo.ts:68 // metadata: Metadata = { - // start: startBox, - // end: endBox, - // status: UPLOADING, - // endSize: endBoxSize, - // lastDeleted: 0, + // start: startBox, end: endBox, status: UPLOADING, endSize: endBoxSize, lastDeleted: 0, // } - frame_dig -5 // startBox: uint64 + frame_dig 0 // startBox: uint64 itob - frame_dig -6 // endBox: uint64 + frame_dig 1 // endBox: uint64 itob concat byte 0x00 - byte 0x00 - bitlen - int 8 - <= - assert - byte 0xFF - b& concat frame_dig -3 // endBoxSize: uint64 itob concat byte 0x0000000000000000 concat - frame_bury -7 // metadata: Metadata + frame_bury 2 // metadata: Metadata - // contracts/algo-did.algo.ts:77 + // contracts/did-algo-storage.algo.ts:72 // assert(!this.metadata(pubKey).exists) - frame_dig -1 // pubKey: address + frame_dig -1 // pubKey: Address box_len swap pop ! assert - // contracts/algo-did.algo.ts:79 + // contracts/did-algo-storage.algo.ts:74 // this.metadata(pubKey).value = metadata - frame_dig -1 // pubKey: address - frame_dig -7 // metadata: Metadata + frame_dig -1 // pubKey: Address + frame_dig 2 // metadata: Metadata box_put - // contracts/algo-did.algo.ts:81 + // contracts/did-algo-storage.algo.ts:76 // this.currentIndex.value = endBox + 1 byte 0x63757272656e74496e646578 // "currentIndex" - frame_dig -6 // endBox: uint64 + frame_dig 1 // endBox: uint64 int 1 + app_global_put - // contracts/algo-did.algo.ts:83 - // totalCost = numBoxes * COST_PER_BOX + // cost of data boxes - // (numBoxes - 1) * MAX_BOX_SIZE * COST_PER_BYTE + // cost of data - // numBoxes * 8 * COST_PER_BYTE + // cost of data keys - // endBoxSize * COST_PER_BYTE + // cost of last data box - // COST_PER_BOX + - // (8 + 8 + 1 + 8 + 32 + 8) * COST_PER_BYTE + // contracts/did-algo-storage.algo.ts:78 + // totalCost = numBoxes * COST_PER_BOX // cost of data boxes + // + (numBoxes - 1) * MAX_BOX_SIZE * COST_PER_BYTE // cost of data + // + numBoxes * 8 * COST_PER_BYTE // cost of data keys + // + endBoxSize * COST_PER_BYTE // cost of last data box + // + COST_PER_BOX + (8 + 8 + 1 + 8 + 32 + 8) * COST_PER_BYTE frame_dig -2 // numBoxes: uint64 int 2500 * @@ -174,37 +169,27 @@ startUpload: + int 26000 + - frame_bury -8 // totalCost: uint64 + frame_bury 3 // totalCost: uint64 - // contracts/algo-did.algo.ts:90 + // contracts/did-algo-storage.algo.ts:84 // assert(mbrPayment.amount === totalCost) - frame_dig -4 // mbrPayment: pay + frame_dig -4 // mbrPayment: PayTxn gtxns Amount - frame_dig -8 // totalCost: uint64 + frame_dig 3 // totalCost: uint64 == assert - // contracts/algo-did.algo.ts:91 + // contracts/did-algo-storage.algo.ts:85 // assert(mbrPayment.receiver === this.app.address) - frame_dig -4 // mbrPayment: pay + frame_dig -4 // mbrPayment: PayTxn gtxns Receiver global CurrentApplicationAddress == assert retsub -// upload(bytes,uint64,uint64,address)void -// -// -// Upload data to a specific offset in a box -// -// @param pubKey The pubkey of the DID -// @param boxIndex The index of the box to upload the given chunk of data to -// @param offset The offset within the box to start writing the data -// @param data The data to write -abi_route_upload: - byte 0x // push empty bytes to fill the stack frame for this subroutine's local variables - +// upload(address,uint64,uint64,byte[])void +*abi_route_upload: // data: byte[] txna ApplicationArgs 4 extract 2 0 @@ -223,99 +208,113 @@ abi_route_upload: len int 32 == + + // argument 3 (pubKey) for upload must be a address assert - // execute upload(bytes,uint64,uint64,address)void + // execute upload(address,uint64,uint64,byte[])void callsub upload int 1 return +// upload(pubKey: Address, boxIndex: uint64, offset: uint64, data: bytes): void +// +// +// Upload data to a specific offset in a box +// +// @param pubKey The pubkey of the DID +// @param boxIndex The index of the box to upload the given chunk of data to +// @param offset The offset within the box to start writing the data +// @param data The data to write upload: - proto 5 0 + proto 4 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x - // contracts/algo-did.algo.ts:104 + // contracts/did-algo-storage.algo.ts:98 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress == assert - // contracts/algo-did.algo.ts:106 + // contracts/did-algo-storage.algo.ts:100 // metadata = this.metadata(pubKey).value - frame_dig -1 // pubKey: address - frame_bury -5 // storage key//metadata + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata - // contracts/algo-did.algo.ts:107 + // contracts/did-algo-storage.algo.ts:101 // assert(metadata.status === UPLOADING) - frame_dig -5 // storage key//metadata - box_get - assert - extract 16 1 - byte 0x0000000000000000 - b== + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 0 + == assert - // contracts/algo-did.algo.ts:108 + // contracts/did-algo-storage.algo.ts:102 // assert(metadata.start <= boxIndex && boxIndex <= metadata.end) - frame_dig -5 // storage key//metadata - box_get - assert - extract 0 8 + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract btoi frame_dig -2 // boxIndex: uint64 <= dup - bz skip_and0 + bz *skip_and0 frame_dig -2 // boxIndex: uint64 - frame_dig -5 // storage key//metadata - box_get - assert - extract 8 8 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract btoi <= && -skip_and0: +*skip_and0: assert - // if0_condition - // contracts/algo-did.algo.ts:110 + // *if0_condition + // contracts/did-algo-storage.algo.ts:104 // offset === 0 frame_dig -3 // offset: uint64 int 0 == - bz if0_end + bz *if0_end - // if0_consequent - // contracts/algo-did.algo.ts:111 - // this.dataBoxes(boxIndex).create( - // boxIndex === metadata.end ? metadata.endSize : MAX_BOX_SIZE, - // ) + // *if0_consequent + // contracts/did-algo-storage.algo.ts:105 + // this.dataBoxes(boxIndex).create(boxIndex === metadata.end ? metadata.endSize : MAX_BOX_SIZE) frame_dig -2 // boxIndex: uint64 itob frame_dig -2 // boxIndex: uint64 - frame_dig -5 // storage key//metadata - box_get - assert - extract 8 8 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract btoi == - bz ternary0_false - frame_dig -5 // storage key//metadata - box_get - assert - extract 17 8 + bz *ternary0_false + frame_dig -1 // pubKey: Address + int 17 // headOffset + int 8 + box_extract btoi - b ternary0_end + b *ternary0_end -ternary0_false: +*ternary0_false: int 32768 -ternary0_end: +*ternary0_end: box_create + pop -if0_end: - // contracts/algo-did.algo.ts:116 +*if0_end: + // contracts/did-algo-storage.algo.ts:108 // this.dataBoxes(boxIndex).replace(offset, data) frame_dig -2 // boxIndex: uint64 itob @@ -325,18 +324,15 @@ if0_end: retsub // finishUpload(address)void -// -// -// Mark uploading as false -// -// @param pubKey The address of the DID -abi_route_finishUpload: +*abi_route_finishUpload: // pubKey: address txna ApplicationArgs 1 dup len int 32 == + + // argument 0 (pubKey) for finishUpload must be a address assert // execute finishUpload(address)void @@ -344,38 +340,40 @@ abi_route_finishUpload: int 1 return +// finishUpload(pubKey: Address): void +// +// +// Mark uploading as false +// +// @param pubKey The address of the DID finishUpload: proto 1 0 - // contracts/algo-did.algo.ts:126 + // contracts/did-algo-storage.algo.ts:118 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress == assert - // contracts/algo-did.algo.ts:128 + // contracts/did-algo-storage.algo.ts:120 // this.metadata(pubKey).value.status = READY - frame_dig -1 // pubKey: address - int 16 + frame_dig -1 // pubKey: Address + int 16 // headOffset byte 0x01 box_replace retsub // startDelete(address)void -// -// Starts the deletion process for the data associated with a DID -// -// @param pubKey The address of the DID -abi_route_startDelete: - byte 0x // push empty bytes to fill the stack frame for this subroutine's local variables - +*abi_route_startDelete: // pubKey: address txna ApplicationArgs 1 dup len int 32 == + + // argument 0 (pubKey) for startDelete must be a address assert // execute startDelete(address)void @@ -383,52 +381,50 @@ abi_route_startDelete: int 1 return +// startDelete(pubKey: Address): void +// +// Starts the deletion process for the data associated with a DID +// +// @param pubKey The address of the DID startDelete: - proto 2 0 + proto 1 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x - // contracts/algo-did.algo.ts:137 + // contracts/did-algo-storage.algo.ts:129 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress == assert - // contracts/algo-did.algo.ts:139 + // contracts/did-algo-storage.algo.ts:131 // metadata = this.metadata(pubKey).value - frame_dig -1 // pubKey: address - frame_bury -2 // storage key//metadata + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata - // contracts/algo-did.algo.ts:140 + // contracts/did-algo-storage.algo.ts:132 // assert(metadata.status === READY) - frame_dig -2 // storage key//metadata - box_get - assert - extract 16 1 - byte 0x0000000000000001 - b== + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 1 + == assert - // contracts/algo-did.algo.ts:142 + // contracts/did-algo-storage.algo.ts:134 // metadata.status = DELETING - frame_dig -2 // storage key//metadata - box_get - assert + frame_dig 0 // storage key//metadata + int 16 // headOffset byte 0x02 - replace2 16 - frame_dig -2 // storage key//metadata - swap - box_put + box_replace retsub -// deleteData(uint64,address)void -// -// Deletes a box of data -// -// @param pubKey The address of the DID -// @param boxIndex The index of the box to delete -abi_route_deleteData: - byte 0x; dup // push empty bytes to fill the stack frame for this subroutine's local variables - +// deleteData(address,uint64)void +*abi_route_deleteData: // boxIndex: uint64 txna ApplicationArgs 2 btoi @@ -439,80 +435,93 @@ abi_route_deleteData: len int 32 == + + // argument 1 (pubKey) for deleteData must be a address assert - // execute deleteData(uint64,address)void + // execute deleteData(address,uint64)void callsub deleteData int 1 return +// deleteData(pubKey: Address, boxIndex: uint64): void +// +// Deletes a box of data +// +// @param pubKey The address of the DID +// @param boxIndex The index of the box to delete deleteData: - proto 4 0 + proto 2 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + dup - // contracts/algo-did.algo.ts:152 + // contracts/did-algo-storage.algo.ts:144 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress == assert - // contracts/algo-did.algo.ts:154 + // contracts/did-algo-storage.algo.ts:146 // metadata = this.metadata(pubKey).value - frame_dig -1 // pubKey: address - frame_bury -3 // storage key//metadata + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata - // contracts/algo-did.algo.ts:155 + // contracts/did-algo-storage.algo.ts:147 // assert(metadata.status === DELETING) - frame_dig -3 // storage key//metadata - box_get - assert - extract 16 1 - byte 0x0000000000000002 - b== + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 2 + == assert - // contracts/algo-did.algo.ts:156 + // contracts/did-algo-storage.algo.ts:148 // assert(metadata.start <= boxIndex && boxIndex <= metadata.end) - frame_dig -3 // storage key//metadata - box_get - assert - extract 0 8 + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract btoi frame_dig -2 // boxIndex: uint64 <= dup - bz skip_and1 + bz *skip_and1 frame_dig -2 // boxIndex: uint64 - frame_dig -3 // storage key//metadata - box_get - assert - extract 8 8 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract btoi <= && -skip_and1: +*skip_and1: assert - // if1_condition - // contracts/algo-did.algo.ts:158 + // *if1_condition + // contracts/did-algo-storage.algo.ts:150 // boxIndex !== metadata.start frame_dig -2 // boxIndex: uint64 - frame_dig -3 // storage key//metadata - box_get - assert - extract 0 8 + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract btoi != - bz if1_end + bz *if1_end - // if1_consequent - // contracts/algo-did.algo.ts:159 + // *if1_consequent + // contracts/did-algo-storage.algo.ts:150 // assert(metadata.lastDeleted === boxIndex - 1) - frame_dig -3 // storage key//metadata - box_get - assert - extract 25 8 + frame_dig -1 // pubKey: Address + int 25 // headOffset + int 8 + box_extract btoi frame_dig -2 // boxIndex: uint64 int 1 @@ -520,54 +529,51 @@ skip_and1: == assert -if1_end: - // contracts/algo-did.algo.ts:162 +*if1_end: + // contracts/did-algo-storage.algo.ts:152 // preMBR = globals.currentApplicationAddress.minBalance global CurrentApplicationAddress acct_params_get AcctMinBalance - assert - frame_bury -4 // preMBR: uint64 + pop + frame_bury 1 // preMBR: uint64 - // contracts/algo-did.algo.ts:164 + // contracts/did-algo-storage.algo.ts:154 // this.dataBoxes(boxIndex).delete() frame_dig -2 // boxIndex: uint64 itob box_del - // if2_condition - // contracts/algo-did.algo.ts:166 + // *if2_condition + // contracts/did-algo-storage.algo.ts:156 // boxIndex === metadata.end frame_dig -2 // boxIndex: uint64 - frame_dig -3 // storage key//metadata - box_get - assert - extract 8 8 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract btoi == - bz if2_else + bz *if2_else - // if2_consequent - // contracts/algo-did.algo.ts:166 + // *if2_consequent + // contracts/did-algo-storage.algo.ts:156 // this.metadata(pubKey).delete() - frame_dig -1 // pubKey: address + frame_dig -1 // pubKey: Address box_del - b if2_end + b *if2_end -if2_else: - // contracts/algo-did.algo.ts:167 +*if2_else: + // contracts/did-algo-storage.algo.ts:157 // metadata.lastDeleted = boxIndex - frame_dig -3 // storage key//metadata - box_get - assert + int 25 // headOffset frame_dig -2 // boxIndex: uint64 itob - replace2 25 - frame_dig -3 // storage key//metadata - swap - box_put + frame_dig 0 // storage key//metadata + cover 2 + box_replace -if2_end: - // contracts/algo-did.algo.ts:169 +*if2_end: + // contracts/did-algo-storage.algo.ts:159 // sendPayment({ // amount: preMBR - globals.currentApplicationAddress.minBalance, // receiver: this.txn.sender, @@ -576,16 +582,16 @@ if2_end: int pay itxn_field TypeEnum - // contracts/algo-did.algo.ts:170 + // contracts/did-algo-storage.algo.ts:160 // amount: preMBR - globals.currentApplicationAddress.minBalance - frame_dig -4 // preMBR: uint64 + frame_dig 1 // preMBR: uint64 global CurrentApplicationAddress acct_params_get AcctMinBalance - assert + pop - itxn_field Amount - // contracts/algo-did.algo.ts:171 + // contracts/did-algo-storage.algo.ts:161 // receiver: this.txn.sender txn Sender itxn_field Receiver @@ -599,18 +605,19 @@ if2_end: retsub // updateApplication()void -// -// Allow the contract to be updated by the creator -abi_route_updateApplication: +*abi_route_updateApplication: // execute updateApplication()void callsub updateApplication int 1 return +// updateApplication(): void +// +// Allow the contract to be updated by the creator updateApplication: proto 0 0 - // contracts/algo-did.algo.ts:179 + // contracts/did-algo-storage.algo.ts:169 // assert(this.txn.sender === globals.creatorAddress) txn Sender global CreatorAddress @@ -619,32 +626,35 @@ updateApplication: retsub // dummy()void -// -// Dummy function to add extra box references for deleteData. -// Boxes are 32k, but a single app call can only include enough references to read/write 8k -// at a time. Thus when a box is deleted, we need to add additional dummy calls with box -// references to increase the total read/write budget to 32k. -abi_route_dummy: +*abi_route_dummy: // execute dummy()void callsub dummy int 1 return +// dummy(): void +// +// Dummy function to add extra box references for deleteData. +// Boxes are 32k, but a single app call can only inlcude enough references to read/write 8k +// at a time. Thus when a box is deleted, we need to add additional dummy calls with box +// references to increase the total read/write budget to 32k. dummy: proto 0 0 retsub -abi_route_createApplication: +*abi_route_createApplication: int 1 return -create_NoOp: +*create_NoOp: method "createApplication()void" txna ApplicationArgs 0 - match abi_route_createApplication + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp err -call_NoOp: +*call_NoOp: method "startUpload(address,uint64,uint64,pay)void" method "upload(address,uint64,uint64,byte[])void" method "finishUpload(address)void" @@ -652,11 +662,15 @@ call_NoOp: method "deleteData(address,uint64)void" method "dummy()void" txna ApplicationArgs 0 - match abi_route_startUpload abi_route_upload abi_route_finishUpload abi_route_startDelete abi_route_deleteData abi_route_dummy + match *abi_route_startUpload *abi_route_upload *abi_route_finishUpload *abi_route_startDelete *abi_route_deleteData *abi_route_dummy + + // this contract does not implement the given ABI method for call NoOp err -call_UpdateApplication: +*call_UpdateApplication: method "updateApplication()void" txna ApplicationArgs 0 - match abi_route_updateApplication + match *abi_route_updateApplication + + // this contract does not implement the given ABI method for call UpdateApplication err \ No newline at end of file diff --git a/client/internal/contracts/DIDAlgoStorage.arc32.json b/client/internal/contracts/DIDAlgoStorage.arc32.json new file mode 100644 index 0000000..c72c61e --- /dev/null +++ b/client/internal/contracts/DIDAlgoStorage.arc32.json @@ -0,0 +1,214 @@ +{ + "hints": { + "startUpload(address,uint64,uint64,pay)void": { + "call_config": { + "no_op": "CALL" + } + }, + "upload(address,uint64,uint64,byte[])void": { + "call_config": { + "no_op": "CALL" + } + }, + "finishUpload(address)void": { + "call_config": { + "no_op": "CALL" + } + }, + "startDelete(address)void": { + "call_config": { + "no_op": "CALL" + } + }, + "deleteData(address,uint64)void": { + "call_config": { + "no_op": "CALL" + } + }, + "updateApplication()void": { + "call_config": { + "update_application": "CALL" + } + }, + "dummy()void": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "currentIndex": { + "type": "uint64", + "key": "currentIndex" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 0, + "num_uints": 1 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjk2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9zdGFydFVwbG9hZDoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBzdGFydFVwbG9hZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1YktleSkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQocHViS2V5OiBBZGRyZXNzLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NQoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2OAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LCBlbmQ6IGVuZEJveCwgc3RhdHVzOiBVUExPQURJTkcsIGVuZFNpemU6IGVuZEJveFNpemUsIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEocHViS2V5KS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6NzQKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc4CgkvLyB0b3RhbENvc3QgPSBudW1Cb3hlcyAqIENPU1RfUEVSX0JPWCAvLyBjb3N0IG9mIGRhdGEgYm94ZXMKCS8vICAgICArIChudW1Cb3hlcyAtIDEpICogTUFYX0JPWF9TSVpFICogQ09TVF9QRVJfQllURSAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICArIG51bUJveGVzICogOCAqIENPU1RfUEVSX0JZVEUgLy8gY29zdCBvZiBkYXRhIGtleXMKCS8vICAgICArIGVuZEJveFNpemUgKiBDT1NUX1BFUl9CWVRFIC8vIGNvc3Qgb2YgbGFzdCBkYXRhIGJveAoJLy8gICAgICsgQ09TVF9QRVJfQk9YICsgKDggKyA4ICsgMSArIDggKyAzMiArIDgpICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA4CgkqCglpbnQgNDAwCgkqCgkrCglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpbnQgNDAwCgkqCgkrCglpbnQgMjUwMAoJKwoJaW50IDI2MDAwCgkrCglmcmFtZV9idXJ5IDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQobWJyUGF5bWVudC5hbW91bnQgPT09IHRvdGFsQ29zdCkKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYWRkcmVzcyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChwdWJLZXkpIGZvciB1cGxvYWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgcHVia2V5IG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6OTgKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMQoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gVVBMT0FESU5HKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWludCAxCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMDQKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwNQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZmluaXNoVXBsb2FkOgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHB1YktleSkgZm9yIGZpbmlzaFVwbG9hZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGZpbmlzaFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gZmluaXNoVXBsb2FkKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8KLy8gTWFyayB1cGxvYWRpbmcgYXMgZmFsc2UKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmZpbmlzaFVwbG9hZDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZS5zdGF0dXMgPSBSRUFEWQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWJ5dGUgMHgwMQoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc3RhcnREZWxldGU6CgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocHViS2V5KSBmb3Igc3RhcnREZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHN0YXJ0RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydERlbGV0ZShwdWJLZXk6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIFN0YXJ0cyB0aGUgZGVsZXRpb24gcHJvY2VzcyBmb3IgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgRElECi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRApzdGFydERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjkKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMQoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gUkVBRFkpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTM0CgkvLyBtZXRhZGF0YS5zdGF0dXMgPSBERUxFVElORwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJYnl0ZSAweDAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVEYXRhOgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChwdWJLZXkpIGZvciBkZWxldGVEYXRhIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRlbGV0ZURhdGEoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiBkZWxldGVEYXRhCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVEYXRhKHB1YktleTogQWRkcmVzcywgYm94SW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGJveCBvZiBkYXRhCi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRAovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gZGVsZXRlCmRlbGV0ZURhdGE6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNDQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gREVMRVRJTkcpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMToKCWFzc2VydAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYm94SW5kZXggIT09IG1ldGFkYXRhLnN0YXJ0CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYXNzZXJ0KG1ldGFkYXRhLmxhc3REZWxldGVkID09PSBib3hJbmRleCAtIDEpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMjUgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaW50IDEKCS0KCT09Cglhc3NlcnQKCippZjFfZW5kOgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNTIKCS8vIHByZU1CUiA9IGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMSAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU0CgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglib3hfZGVsCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKmlmMl9lbHNlCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfZGVsCgliICppZjJfZW5kCgoqaWYyX2Vsc2U6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NwoJLy8gbWV0YWRhdGEubGFzdERlbGV0ZWQgPSBib3hJbmRleAoJaW50IDI1IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyX2VuZDoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBwcmVNQlI6IHVpbnQ2NAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYxCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKTogdm9pZAovLwovLyBBbGxvdyB0aGUgY29udHJhY3QgdG8gYmUgdXBkYXRlZCBieSB0aGUgY3JlYXRvcgp1cGRhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGR1bW15KCl2b2lkCiphYmlfcm91dGVfZHVtbXk6CgkvLyBleGVjdXRlIGR1bW15KCl2b2lkCgljYWxsc3ViIGR1bW15CglpbnQgMQoJcmV0dXJuCgovLyBkdW1teSgpOiB2b2lkCi8vCi8vIER1bW15IGZ1bmN0aW9uIHRvIGFkZCBleHRyYSBib3ggcmVmZXJlbmNlcyBmb3IgZGVsZXRlRGF0YS4KLy8gQm94ZXMgYXJlIDMyaywgYnV0IGEgc2luZ2xlIGFwcCBjYWxsIGNhbiBvbmx5IGlubGN1ZGUgZW5vdWdoIHJlZmVyZW5jZXMgdG8gcmVhZC93cml0ZSA4awovLyBhdCBhIHRpbWUuIFRodXMgd2hlbiBhIGJveCBpcyBkZWxldGVkLCB3ZSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIGR1bW15IGNhbGxzIHdpdGggYm94Ci8vIHJlZmVyZW5jZXMgdG8gaW5jcmVhc2UgdGhlIHRvdGFsIHJlYWQvd3JpdGUgYnVkZ2V0IHRvIDMyay4KZHVtbXk6Cglwcm90byAwIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluaXNoVXBsb2FkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAic3RhcnREZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQiCgltZXRob2QgImR1bW15KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGFydFVwbG9hZCAqYWJpX3JvdXRlX3VwbG9hZCAqYWJpX3JvdXRlX2ZpbmlzaFVwbG9hZCAqYWJpX3JvdXRlX3N0YXJ0RGVsZXRlICphYmlfcm91dGVfZGVsZXRlRGF0YSAqYWJpX3JvdXRlX2R1bW15CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "DIDAlgoStorage", + "desc": "", + "methods": [ + { + "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "numBoxes", + "type": "uint64", + "desc": "The number of boxes that the data will take up" + }, + { + "name": "endBoxSize", + "type": "uint64", + "desc": "The size of the last box" + }, + { + "name": "mbrPayment", + "type": "pay", + "desc": "Payment from the uploader to cover the box MBR" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "upload", + "desc": "Upload data to a specific offset in a box", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to upload the given chunk of data to" + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset within the box to start writing the data" + }, + { + "name": "data", + "type": "byte[]", + "desc": "The data to write" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "finishUpload", + "desc": "Mark uploading as false", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "deleteData", + "desc": "Deletes a box of data", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to delete" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "updateApplication", + "desc": "Allow the contract to be updated by the creator", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/client/internal/contracts/AlgoDID.abi.json b/client/internal/contracts/DIDAlgoStorage.arc4.json similarity index 85% rename from client/internal/contracts/AlgoDID.abi.json rename to client/internal/contracts/DIDAlgoStorage.arc4.json index 0b24dea..9fc6009 100644 --- a/client/internal/contracts/AlgoDID.abi.json +++ b/client/internal/contracts/DIDAlgoStorage.arc4.json @@ -1,9 +1,10 @@ { - "name": "AlgoDID", + "name": "DIDAlgoStorage", "desc": "", "methods": [ { "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", "args": [ { "name": "pubKey", @@ -26,14 +27,13 @@ "desc": "Payment from the uploader to cover the box MBR" } ], - "desc": "Allocate boxes to begin data upload process", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "upload", + "desc": "Upload data to a specific offset in a box", "args": [ { "name": "pubKey", @@ -56,14 +56,13 @@ "desc": "The data to write" } ], - "desc": "Upload data to a specific offset in a box", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "finishUpload", + "desc": "Mark uploading as false", "args": [ { "name": "pubKey", @@ -71,14 +70,13 @@ "desc": "The address of the DID" } ], - "desc": "Mark uploading as false", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", "args": [ { "name": "pubKey", @@ -86,14 +84,13 @@ "desc": "The address of the DID" } ], - "desc": "Starts the deletion process for the data associated with a DID", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "deleteData", + "desc": "Deletes a box of data", "args": [ { "name": "pubKey", @@ -106,38 +103,32 @@ "desc": "The index of the box to delete" } ], - "desc": "Deletes a box of data", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "updateApplication", - "args": [], "desc": "Allow the contract to be updated by the creator", + "args": [], "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", "args": [], - "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only include enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", "returns": { - "type": "void", - "desc": "" + "type": "void" } }, { "name": "createApplication", - "desc": "", + "args": [], "returns": { - "type": "void", - "desc": "" - }, - "args": [] + "type": "void" + } } ] } \ No newline at end of file diff --git a/client/internal/contracts/DIDAlgoStorage.arc56_draft.json b/client/internal/contracts/DIDAlgoStorage.arc56_draft.json new file mode 100644 index 0000000..3f017ac --- /dev/null +++ b/client/internal/contracts/DIDAlgoStorage.arc56_draft.json @@ -0,0 +1,3189 @@ +{ + "name": "DIDAlgoStorage", + "desc": "", + "methods": [ + { + "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "numBoxes", + "type": "uint64", + "desc": "The number of boxes that the data will take up" + }, + { + "name": "endBoxSize", + "type": "uint64", + "desc": "The size of the last box" + }, + { + "name": "mbrPayment", + "type": "pay", + "desc": "Payment from the uploader to cover the box MBR" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "upload", + "desc": "Upload data to a specific offset in a box", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to upload the given chunk of data to" + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset within the box to start writing the data" + }, + { + "name": "data", + "type": "byte[]", + "desc": "The data to write" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "finishUpload", + "desc": "Mark uploading as false", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "deleteData", + "desc": "Deletes a box of data", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to delete" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateApplication", + "desc": "Allow the contract to be updated by the creator", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "UpdateApplication" + ] + } + }, + { + "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "Metadata": { + "start": "uint64", + "end": "uint64", + "status": "uint8", + "endSize": "uint64", + "lastDeleted": "uint64" + } + }, + "state": { + "schema": { + "global": { + "bytes": 0, + "ints": 1 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "currentIndex": { + "key": "Y3VycmVudEluZGV4", + "keyType": "bytes", + "valueType": "uint64" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": { + "dataBoxes": { + "keyType": "uint64", + "valueType": "bytes" + }, + "metadata": { + "keyType": "address", + "valueType": "Metadata" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": [ + { + "teal": 1, + "source": 38, + "pc": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + }, + { + "teal": 13, + "source": 38, + "pc": [ + 32, + 33 + ] + }, + { + "teal": 14, + "source": 38, + "pc": [ + 34 + ] + }, + { + "teal": 15, + "source": 38, + "pc": [ + 35, + 36 + ] + }, + { + "teal": 16, + "source": 38, + "pc": [ + 37 + ] + }, + { + "teal": 17, + "source": 38, + "pc": [ + 38, + 39 + ] + }, + { + "teal": 18, + "source": 38, + "pc": [ + 40 + ] + }, + { + "teal": 19, + "source": 38, + "pc": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ] + }, + { + "teal": 23, + "source": 38, + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 67 + ] + }, + { + "teal": 28, + "source": 61, + "pc": [ + 68, + 69 + ] + }, + { + "teal": 29, + "source": 61, + "pc": [ + 70 + ] + }, + { + "teal": 30, + "source": 61, + "pc": [ + 71 + ] + }, + { + "teal": 31, + "source": 61, + "pc": [ + 72 + ] + }, + { + "teal": 32, + "source": 61, + "pc": [ + 73, + 74 + ] + }, + { + "teal": 33, + "source": 61, + "pc": [ + 75 + ] + }, + { + "teal": 34, + "source": 61, + "pc": [ + 76 + ] + }, + { + "teal": 37, + "source": 61, + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", + "pc": [ + 77 + ] + }, + { + "teal": 40, + "source": 60, + "pc": [ + 78, + 79, + 80 + ] + }, + { + "teal": 41, + "source": 60, + "pc": [ + 81 + ] + }, + { + "teal": 44, + "source": 59, + "pc": [ + 82, + 83, + 84 + ] + }, + { + "teal": 45, + "source": 59, + "pc": [ + 85 + ] + }, + { + "teal": 48, + "source": 58, + "pc": [ + 86, + 87, + 88 + ] + }, + { + "teal": 49, + "source": 58, + "pc": [ + 89 + ] + }, + { + "teal": 50, + "source": 58, + "pc": [ + 90 + ] + }, + { + "teal": 51, + "source": 58, + "pc": [ + 91 + ] + }, + { + "teal": 52, + "source": 58, + "pc": [ + 92 + ] + }, + { + "teal": 55, + "source": 58, + "errorMessage": "argument 3 (pubKey) for startUpload must be a address", + "pc": [ + 93 + ] + }, + { + "teal": 58, + "source": 57, + "pc": [ + 94, + 95, + 96 + ] + }, + { + "teal": 59, + "source": 57, + "pc": [ + 97 + ] + }, + { + "teal": 60, + "source": 57, + "pc": [ + 98 + ] + }, + { + "teal": 72, + "source": 57, + "pc": [ + 99, + 100, + 101 + ] + }, + { + "teal": 75, + "source": 57, + "pc": [ + 102 + ] + }, + { + "teal": 76, + "source": 57, + "pc": [ + 103, + 104 + ] + }, + { + "teal": 80, + "source": 63, + "pc": [ + 105, + 106 + ] + }, + { + "teal": 81, + "source": 63, + "pc": [ + 107, + 108 + ] + }, + { + "teal": 82, + "source": 63, + "pc": [ + 109 + ] + }, + { + "teal": 83, + "source": 63, + "pc": [ + 110 + ] + }, + { + "teal": 87, + "source": 65, + "pc": [ + 111 + ] + }, + { + "teal": 88, + "source": 65, + "pc": [ + 112 + ] + }, + { + "teal": 89, + "source": 65, + "pc": [ + 113, + 114 + ] + }, + { + "teal": 93, + "source": 66, + "pc": [ + 115, + 116 + ] + }, + { + "teal": 94, + "source": 66, + "pc": [ + 117, + 118 + ] + }, + { + "teal": 95, + "source": 66, + "pc": [ + 119 + ] + }, + { + "teal": 96, + "source": 66, + "pc": [ + 120 + ] + }, + { + "teal": 97, + "source": 66, + "pc": [ + 121 + ] + }, + { + "teal": 98, + "source": 66, + "pc": [ + 122, + 123 + ] + }, + { + "teal": 104, + "source": 69, + "pc": [ + 124, + 125 + ] + }, + { + "teal": 105, + "source": 69, + "pc": [ + 126 + ] + }, + { + "teal": 106, + "source": 69, + "pc": [ + 127, + 128 + ] + }, + { + "teal": 107, + "source": 69, + "pc": [ + 129 + ] + }, + { + "teal": 108, + "source": 69, + "pc": [ + 130 + ] + }, + { + "teal": 109, + "source": 69, + "pc": [ + 131, + 132, + 133 + ] + }, + { + "teal": 110, + "source": 69, + "pc": [ + 134 + ] + }, + { + "teal": 111, + "source": 69, + "pc": [ + 135, + 136 + ] + }, + { + "teal": 112, + "source": 69, + "pc": [ + 137 + ] + }, + { + "teal": 113, + "source": 69, + "pc": [ + 138 + ] + }, + { + "teal": 114, + "source": 69, + "pc": [ + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148 + ] + }, + { + "teal": 115, + "source": 69, + "pc": [ + 149 + ] + }, + { + "teal": 116, + "source": 68, + "pc": [ + 150, + 151 + ] + }, + { + "teal": 120, + "source": 72, + "pc": [ + 152, + 153 + ] + }, + { + "teal": 121, + "source": 72, + "pc": [ + 154 + ] + }, + { + "teal": 122, + "source": 72, + "pc": [ + 155 + ] + }, + { + "teal": 123, + "source": 72, + "pc": [ + 156 + ] + }, + { + "teal": 124, + "source": 72, + "pc": [ + 157 + ] + }, + { + "teal": 125, + "source": 72, + "pc": [ + 158 + ] + }, + { + "teal": 129, + "source": 74, + "pc": [ + 159, + 160 + ] + }, + { + "teal": 130, + "source": 74, + "pc": [ + 161, + 162 + ] + }, + { + "teal": 131, + "source": 74, + "pc": [ + 163 + ] + }, + { + "teal": 135, + "source": 76, + "pc": [ + 164 + ] + }, + { + "teal": 136, + "source": 76, + "pc": [ + 165, + 166 + ] + }, + { + "teal": 137, + "source": 76, + "pc": [ + 167 + ] + }, + { + "teal": 138, + "source": 76, + "pc": [ + 168 + ] + }, + { + "teal": 139, + "source": 76, + "pc": [ + 169 + ] + }, + { + "teal": 147, + "source": 78, + "pc": [ + 170, + 171 + ] + }, + { + "teal": 148, + "source": 78, + "pc": [ + 172, + 173 + ] + }, + { + "teal": 149, + "source": 78, + "pc": [ + 174 + ] + }, + { + "teal": 150, + "source": 79, + "pc": [ + 175, + 176 + ] + }, + { + "teal": 151, + "source": 79, + "pc": [ + 177 + ] + }, + { + "teal": 152, + "source": 79, + "pc": [ + 178 + ] + }, + { + "teal": 153, + "source": 79, + "pc": [ + 179, + 180 + ] + }, + { + "teal": 154, + "source": 79, + "pc": [ + 181 + ] + }, + { + "teal": 155, + "source": 79, + "pc": [ + 182, + 183 + ] + }, + { + "teal": 156, + "source": 79, + "pc": [ + 184 + ] + }, + { + "teal": 157, + "source": 79, + "pc": [ + 185 + ] + }, + { + "teal": 158, + "source": 80, + "pc": [ + 186, + 187 + ] + }, + { + "teal": 159, + "source": 80, + "pc": [ + 188 + ] + }, + { + "teal": 160, + "source": 80, + "pc": [ + 189 + ] + }, + { + "teal": 161, + "source": 80, + "pc": [ + 190, + 191 + ] + }, + { + "teal": 162, + "source": 80, + "pc": [ + 192 + ] + }, + { + "teal": 163, + "source": 80, + "pc": [ + 193 + ] + }, + { + "teal": 164, + "source": 81, + "pc": [ + 194, + 195 + ] + }, + { + "teal": 165, + "source": 81, + "pc": [ + 196, + 197 + ] + }, + { + "teal": 166, + "source": 81, + "pc": [ + 198 + ] + }, + { + "teal": 167, + "source": 81, + "pc": [ + 199 + ] + }, + { + "teal": 168, + "source": 82, + "pc": [ + 200, + 201 + ] + }, + { + "teal": 169, + "source": 82, + "pc": [ + 202 + ] + }, + { + "teal": 170, + "source": 82, + "pc": [ + 203, + 204, + 205, + 206 + ] + }, + { + "teal": 171, + "source": 82, + "pc": [ + 207 + ] + }, + { + "teal": 172, + "source": 78, + "pc": [ + 208, + 209 + ] + }, + { + "teal": 176, + "source": 84, + "pc": [ + 210, + 211 + ] + }, + { + "teal": 177, + "source": 84, + "pc": [ + 212, + 213 + ] + }, + { + "teal": 178, + "source": 84, + "pc": [ + 214, + 215 + ] + }, + { + "teal": 179, + "source": 84, + "pc": [ + 216 + ] + }, + { + "teal": 180, + "source": 84, + "pc": [ + 217 + ] + }, + { + "teal": 184, + "source": 85, + "pc": [ + 218, + 219 + ] + }, + { + "teal": 185, + "source": 85, + "pc": [ + 220, + 221 + ] + }, + { + "teal": 186, + "source": 85, + "pc": [ + 222, + 223 + ] + }, + { + "teal": 187, + "source": 85, + "pc": [ + 224 + ] + }, + { + "teal": 188, + "source": 85, + "pc": [ + 225 + ] + }, + { + "teal": 189, + "source": 57, + "pc": [ + 226 + ] + }, + { + "teal": 194, + "source": 97, + "pc": [ + 227, + 228, + 229 + ] + }, + { + "teal": 195, + "source": 97, + "pc": [ + 230, + 231, + 232 + ] + }, + { + "teal": 198, + "source": 97, + "pc": [ + 233, + 234, + 235 + ] + }, + { + "teal": 199, + "source": 97, + "pc": [ + 236 + ] + }, + { + "teal": 202, + "source": 97, + "pc": [ + 237, + 238, + 239 + ] + }, + { + "teal": 203, + "source": 97, + "pc": [ + 240 + ] + }, + { + "teal": 206, + "source": 97, + "pc": [ + 241, + 242, + 243 + ] + }, + { + "teal": 207, + "source": 97, + "pc": [ + 244 + ] + }, + { + "teal": 208, + "source": 97, + "pc": [ + 245 + ] + }, + { + "teal": 209, + "source": 97, + "pc": [ + 246 + ] + }, + { + "teal": 210, + "source": 97, + "pc": [ + 247 + ] + }, + { + "teal": 213, + "source": 97, + "errorMessage": "argument 3 (pubKey) for upload must be a address", + "pc": [ + 248 + ] + }, + { + "teal": 216, + "source": 97, + "pc": [ + 249, + 250, + 251 + ] + }, + { + "teal": 217, + "source": 97, + "pc": [ + 252 + ] + }, + { + "teal": 218, + "source": 97, + "pc": [ + 253 + ] + }, + { + "teal": 230, + "source": 97, + "pc": [ + 254, + 255, + 256 + ] + }, + { + "teal": 233, + "source": 97, + "pc": [ + 257 + ] + }, + { + "teal": 237, + "source": 98, + "pc": [ + 258, + 259 + ] + }, + { + "teal": 238, + "source": 98, + "pc": [ + 260, + 261 + ] + }, + { + "teal": 239, + "source": 98, + "pc": [ + 262 + ] + }, + { + "teal": 240, + "source": 98, + "pc": [ + 263 + ] + }, + { + "teal": 244, + "source": 100, + "pc": [ + 264, + 265 + ] + }, + { + "teal": 245, + "source": 100, + "pc": [ + 266, + 267 + ] + }, + { + "teal": 249, + "source": 100, + "pc": [ + 268, + 269 + ] + }, + { + "teal": 250, + "source": 100, + "pc": [ + 270, + 271 + ] + }, + { + "teal": 251, + "source": 100, + "pc": [ + 272 + ] + }, + { + "teal": 252, + "source": 100, + "pc": [ + 273 + ] + }, + { + "teal": 253, + "source": 101, + "pc": [ + 274 + ] + }, + { + "teal": 254, + "source": 26, + "pc": [ + 275 + ] + }, + { + "teal": 255, + "source": 101, + "pc": [ + 276 + ] + }, + { + "teal": 256, + "source": 101, + "pc": [ + 277 + ] + }, + { + "teal": 260, + "source": 100, + "pc": [ + 278, + 279 + ] + }, + { + "teal": 261, + "source": 100, + "pc": [ + 280 + ] + }, + { + "teal": 262, + "source": 100, + "pc": [ + 281 + ] + }, + { + "teal": 263, + "source": 100, + "pc": [ + 282 + ] + }, + { + "teal": 264, + "source": 102, + "pc": [ + 283 + ] + }, + { + "teal": 265, + "source": 102, + "pc": [ + 284, + 285 + ] + }, + { + "teal": 266, + "source": 102, + "pc": [ + 286 + ] + }, + { + "teal": 267, + "source": 102, + "pc": [ + 287 + ] + }, + { + "teal": 268, + "source": 102, + "pc": [ + 288, + 289, + 290 + ] + }, + { + "teal": 269, + "source": 102, + "pc": [ + 291, + 292 + ] + }, + { + "teal": 270, + "source": 100, + "pc": [ + 293, + 294 + ] + }, + { + "teal": 271, + "source": 100, + "pc": [ + 295 + ] + }, + { + "teal": 272, + "source": 100, + "pc": [ + 296 + ] + }, + { + "teal": 273, + "source": 100, + "pc": [ + 297 + ] + }, + { + "teal": 274, + "source": 102, + "pc": [ + 298 + ] + }, + { + "teal": 275, + "source": 102, + "pc": [ + 299 + ] + }, + { + "teal": 276, + "source": 102, + "pc": [ + 300 + ] + }, + { + "teal": 279, + "source": 102, + "pc": [ + 301 + ] + }, + { + "teal": 284, + "source": 104, + "pc": [ + 302, + 303 + ] + }, + { + "teal": 285, + "source": 104, + "pc": [ + 304 + ] + }, + { + "teal": 286, + "source": 104, + "pc": [ + 305 + ] + }, + { + "teal": 287, + "source": 104, + "pc": [ + 306, + 307, + 308 + ] + }, + { + "teal": 292, + "source": 105, + "pc": [ + 309, + 310 + ] + }, + { + "teal": 293, + "source": 105, + "pc": [ + 311 + ] + }, + { + "teal": 294, + "source": 105, + "pc": [ + 312, + 313 + ] + }, + { + "teal": 295, + "source": 100, + "pc": [ + 314, + 315 + ] + }, + { + "teal": 296, + "source": 100, + "pc": [ + 316 + ] + }, + { + "teal": 297, + "source": 100, + "pc": [ + 317 + ] + }, + { + "teal": 298, + "source": 100, + "pc": [ + 318 + ] + }, + { + "teal": 299, + "source": 105, + "pc": [ + 319 + ] + }, + { + "teal": 300, + "source": 105, + "pc": [ + 320 + ] + }, + { + "teal": 301, + "source": 105, + "pc": [ + 321, + 322, + 323 + ] + }, + { + "teal": 302, + "source": 100, + "pc": [ + 324, + 325 + ] + }, + { + "teal": 303, + "source": 100, + "pc": [ + 326, + 327 + ] + }, + { + "teal": 304, + "source": 100, + "pc": [ + 328 + ] + }, + { + "teal": 305, + "source": 100, + "pc": [ + 329 + ] + }, + { + "teal": 306, + "source": 105, + "pc": [ + 330 + ] + }, + { + "teal": 307, + "source": 105, + "pc": [ + 331, + 332, + 333 + ] + }, + { + "teal": 310, + "source": 105, + "pc": [ + 334, + 335 + ] + }, + { + "teal": 313, + "source": 105, + "pc": [ + 336 + ] + }, + { + "teal": 314, + "source": 105, + "pc": [ + 337 + ] + }, + { + "teal": 319, + "source": 108, + "pc": [ + 338, + 339 + ] + }, + { + "teal": 320, + "source": 108, + "pc": [ + 340 + ] + }, + { + "teal": 321, + "source": 108, + "pc": [ + 341, + 342 + ] + }, + { + "teal": 322, + "source": 108, + "pc": [ + 343, + 344 + ] + }, + { + "teal": 323, + "source": 108, + "pc": [ + 345 + ] + }, + { + "teal": 324, + "source": 97, + "pc": [ + 346 + ] + }, + { + "teal": 329, + "source": 117, + "pc": [ + 347, + 348, + 349 + ] + }, + { + "teal": 330, + "source": 117, + "pc": [ + 350 + ] + }, + { + "teal": 331, + "source": 117, + "pc": [ + 351 + ] + }, + { + "teal": 332, + "source": 117, + "pc": [ + 352 + ] + }, + { + "teal": 333, + "source": 117, + "pc": [ + 353 + ] + }, + { + "teal": 336, + "source": 117, + "errorMessage": "argument 0 (pubKey) for finishUpload must be a address", + "pc": [ + 354 + ] + }, + { + "teal": 339, + "source": 117, + "pc": [ + 355, + 356, + 357 + ] + }, + { + "teal": 340, + "source": 117, + "pc": [ + 358 + ] + }, + { + "teal": 341, + "source": 117, + "pc": [ + 359 + ] + }, + { + "teal": 350, + "source": 117, + "pc": [ + 360, + 361, + 362 + ] + }, + { + "teal": 354, + "source": 118, + "pc": [ + 363, + 364 + ] + }, + { + "teal": 355, + "source": 118, + "pc": [ + 365, + 366 + ] + }, + { + "teal": 356, + "source": 118, + "pc": [ + 367 + ] + }, + { + "teal": 357, + "source": 118, + "pc": [ + 368 + ] + }, + { + "teal": 361, + "source": 120, + "pc": [ + 369, + 370 + ] + }, + { + "teal": 362, + "source": 120, + "pc": [ + 371, + 372 + ] + }, + { + "teal": 363, + "source": 120, + "pc": [ + 373, + 374, + 375 + ] + }, + { + "teal": 364, + "source": 120, + "pc": [ + 376 + ] + }, + { + "teal": 365, + "source": 117, + "pc": [ + 377 + ] + }, + { + "teal": 370, + "source": 128, + "pc": [ + 378, + 379, + 380 + ] + }, + { + "teal": 371, + "source": 128, + "pc": [ + 381 + ] + }, + { + "teal": 372, + "source": 128, + "pc": [ + 382 + ] + }, + { + "teal": 373, + "source": 128, + "pc": [ + 383 + ] + }, + { + "teal": 374, + "source": 128, + "pc": [ + 384 + ] + }, + { + "teal": 377, + "source": 128, + "errorMessage": "argument 0 (pubKey) for startDelete must be a address", + "pc": [ + 385 + ] + }, + { + "teal": 380, + "source": 128, + "pc": [ + 386, + 387, + 388 + ] + }, + { + "teal": 381, + "source": 128, + "pc": [ + 389 + ] + }, + { + "teal": 382, + "source": 128, + "pc": [ + 390 + ] + }, + { + "teal": 390, + "source": 128, + "pc": [ + 391, + 392, + 393 + ] + }, + { + "teal": 393, + "source": 128, + "pc": [ + 394 + ] + }, + { + "teal": 397, + "source": 129, + "pc": [ + 395, + 396 + ] + }, + { + "teal": 398, + "source": 129, + "pc": [ + 397, + 398 + ] + }, + { + "teal": 399, + "source": 129, + "pc": [ + 399 + ] + }, + { + "teal": 400, + "source": 129, + "pc": [ + 400 + ] + }, + { + "teal": 404, + "source": 131, + "pc": [ + 401, + 402 + ] + }, + { + "teal": 405, + "source": 131, + "pc": [ + 403, + 404 + ] + }, + { + "teal": 409, + "source": 131, + "pc": [ + 405, + 406 + ] + }, + { + "teal": 410, + "source": 131, + "pc": [ + 407, + 408 + ] + }, + { + "teal": 411, + "source": 131, + "pc": [ + 409 + ] + }, + { + "teal": 412, + "source": 131, + "pc": [ + 410 + ] + }, + { + "teal": 413, + "source": 132, + "pc": [ + 411 + ] + }, + { + "teal": 414, + "source": 29, + "pc": [ + 412 + ] + }, + { + "teal": 415, + "source": 132, + "pc": [ + 413 + ] + }, + { + "teal": 416, + "source": 132, + "pc": [ + 414 + ] + }, + { + "teal": 420, + "source": 131, + "pc": [ + 415, + 416 + ] + }, + { + "teal": 421, + "source": 131, + "pc": [ + 417, + 418 + ] + }, + { + "teal": 422, + "source": 131, + "pc": [ + 419, + 420, + 421 + ] + }, + { + "teal": 423, + "source": 131, + "pc": [ + 422 + ] + }, + { + "teal": 424, + "source": 128, + "pc": [ + 423 + ] + }, + { + "teal": 429, + "source": 143, + "pc": [ + 424, + 425, + 426 + ] + }, + { + "teal": 430, + "source": 143, + "pc": [ + 427 + ] + }, + { + "teal": 433, + "source": 143, + "pc": [ + 428, + 429, + 430 + ] + }, + { + "teal": 434, + "source": 143, + "pc": [ + 431 + ] + }, + { + "teal": 435, + "source": 143, + "pc": [ + 432 + ] + }, + { + "teal": 436, + "source": 143, + "pc": [ + 433 + ] + }, + { + "teal": 437, + "source": 143, + "pc": [ + 434 + ] + }, + { + "teal": 440, + "source": 143, + "errorMessage": "argument 1 (pubKey) for deleteData must be a address", + "pc": [ + 435 + ] + }, + { + "teal": 443, + "source": 143, + "pc": [ + 436, + 437, + 438 + ] + }, + { + "teal": 444, + "source": 143, + "pc": [ + 439 + ] + }, + { + "teal": 445, + "source": 143, + "pc": [ + 440 + ] + }, + { + "teal": 454, + "source": 143, + "pc": [ + 441, + 442, + 443 + ] + }, + { + "teal": 457, + "source": 143, + "pc": [ + 444 + ] + }, + { + "teal": 458, + "source": 143, + "pc": [ + 445 + ] + }, + { + "teal": 462, + "source": 144, + "pc": [ + 446, + 447 + ] + }, + { + "teal": 463, + "source": 144, + "pc": [ + 448, + 449 + ] + }, + { + "teal": 464, + "source": 144, + "pc": [ + 450 + ] + }, + { + "teal": 465, + "source": 144, + "pc": [ + 451 + ] + }, + { + "teal": 469, + "source": 146, + "pc": [ + 452, + 453 + ] + }, + { + "teal": 470, + "source": 146, + "pc": [ + 454, + 455 + ] + }, + { + "teal": 474, + "source": 146, + "pc": [ + 456, + 457 + ] + }, + { + "teal": 475, + "source": 146, + "pc": [ + 458, + 459 + ] + }, + { + "teal": 476, + "source": 146, + "pc": [ + 460 + ] + }, + { + "teal": 477, + "source": 146, + "pc": [ + 461 + ] + }, + { + "teal": 478, + "source": 147, + "pc": [ + 462 + ] + }, + { + "teal": 479, + "source": 32, + "pc": [ + 463, + 464 + ] + }, + { + "teal": 480, + "source": 147, + "pc": [ + 465 + ] + }, + { + "teal": 481, + "source": 147, + "pc": [ + 466 + ] + }, + { + "teal": 485, + "source": 146, + "pc": [ + 467, + 468 + ] + }, + { + "teal": 486, + "source": 146, + "pc": [ + 469 + ] + }, + { + "teal": 487, + "source": 146, + "pc": [ + 470 + ] + }, + { + "teal": 488, + "source": 146, + "pc": [ + 471 + ] + }, + { + "teal": 489, + "source": 148, + "pc": [ + 472 + ] + }, + { + "teal": 490, + "source": 148, + "pc": [ + 473, + 474 + ] + }, + { + "teal": 491, + "source": 148, + "pc": [ + 475 + ] + }, + { + "teal": 492, + "source": 148, + "pc": [ + 476 + ] + }, + { + "teal": 493, + "source": 148, + "pc": [ + 477, + 478, + 479 + ] + }, + { + "teal": 494, + "source": 148, + "pc": [ + 480, + 481 + ] + }, + { + "teal": 495, + "source": 146, + "pc": [ + 482, + 483 + ] + }, + { + "teal": 496, + "source": 146, + "pc": [ + 484 + ] + }, + { + "teal": 497, + "source": 146, + "pc": [ + 485 + ] + }, + { + "teal": 498, + "source": 146, + "pc": [ + 486 + ] + }, + { + "teal": 499, + "source": 148, + "pc": [ + 487 + ] + }, + { + "teal": 500, + "source": 148, + "pc": [ + 488 + ] + }, + { + "teal": 501, + "source": 148, + "pc": [ + 489 + ] + }, + { + "teal": 504, + "source": 148, + "pc": [ + 490 + ] + }, + { + "teal": 509, + "source": 150, + "pc": [ + 491, + 492 + ] + }, + { + "teal": 510, + "source": 146, + "pc": [ + 493, + 494 + ] + }, + { + "teal": 511, + "source": 146, + "pc": [ + 495 + ] + }, + { + "teal": 512, + "source": 146, + "pc": [ + 496 + ] + }, + { + "teal": 513, + "source": 146, + "pc": [ + 497 + ] + }, + { + "teal": 514, + "source": 150, + "pc": [ + 498 + ] + }, + { + "teal": 515, + "source": 150, + "pc": [ + 499 + ] + }, + { + "teal": 516, + "source": 150, + "pc": [ + 500, + 501, + 502 + ] + }, + { + "teal": 521, + "source": 146, + "pc": [ + 503, + 504 + ] + }, + { + "teal": 522, + "source": 146, + "pc": [ + 505, + 506 + ] + }, + { + "teal": 523, + "source": 146, + "pc": [ + 507 + ] + }, + { + "teal": 524, + "source": 146, + "pc": [ + 508 + ] + }, + { + "teal": 525, + "source": 150, + "pc": [ + 509 + ] + }, + { + "teal": 526, + "source": 150, + "pc": [ + 510, + 511 + ] + }, + { + "teal": 527, + "source": 150, + "pc": [ + 512 + ] + }, + { + "teal": 528, + "source": 150, + "pc": [ + 513 + ] + }, + { + "teal": 529, + "source": 150, + "pc": [ + 514 + ] + }, + { + "teal": 530, + "source": 150, + "pc": [ + 515 + ] + }, + { + "teal": 535, + "source": 152, + "pc": [ + 516, + 517 + ] + }, + { + "teal": 536, + "source": 152, + "pc": [ + 518, + 519 + ] + }, + { + "teal": 537, + "source": 152, + "pc": [ + 520 + ] + }, + { + "teal": 538, + "source": 152, + "pc": [ + 521, + 522 + ] + }, + { + "teal": 542, + "source": 154, + "pc": [ + 523, + 524 + ] + }, + { + "teal": 543, + "source": 154, + "pc": [ + 525 + ] + }, + { + "teal": 544, + "source": 154, + "pc": [ + 526 + ] + }, + { + "teal": 549, + "source": 156, + "pc": [ + 527, + 528 + ] + }, + { + "teal": 550, + "source": 146, + "pc": [ + 529, + 530 + ] + }, + { + "teal": 551, + "source": 146, + "pc": [ + 531 + ] + }, + { + "teal": 552, + "source": 146, + "pc": [ + 532 + ] + }, + { + "teal": 553, + "source": 146, + "pc": [ + 533 + ] + }, + { + "teal": 554, + "source": 156, + "pc": [ + 534 + ] + }, + { + "teal": 555, + "source": 156, + "pc": [ + 535 + ] + }, + { + "teal": 556, + "source": 156, + "pc": [ + 536, + 537, + 538 + ] + }, + { + "teal": 561, + "source": 156, + "pc": [ + 539, + 540 + ] + }, + { + "teal": 562, + "source": 156, + "pc": [ + 541 + ] + }, + { + "teal": 563, + "source": 156, + "pc": [ + 542, + 543, + 544 + ] + }, + { + "teal": 568, + "source": 157, + "pc": [ + 545, + 546 + ] + }, + { + "teal": 569, + "source": 157, + "pc": [ + 547, + 548 + ] + }, + { + "teal": 570, + "source": 157, + "pc": [ + 549 + ] + }, + { + "teal": 571, + "source": 146, + "pc": [ + 550, + 551 + ] + }, + { + "teal": 572, + "source": 146, + "pc": [ + 552, + 553 + ] + }, + { + "teal": 573, + "source": 146, + "pc": [ + 554 + ] + }, + { + "teal": 581, + "source": 159, + "pc": [ + 555 + ] + }, + { + "teal": 582, + "source": 159, + "pc": [ + 556 + ] + }, + { + "teal": 583, + "source": 159, + "pc": [ + 557, + 558 + ] + }, + { + "teal": 587, + "source": 160, + "pc": [ + 559, + 560 + ] + }, + { + "teal": 588, + "source": 160, + "pc": [ + 561, + 562 + ] + }, + { + "teal": 589, + "source": 160, + "pc": [ + 563, + 564 + ] + }, + { + "teal": 590, + "source": 160, + "pc": [ + 565 + ] + }, + { + "teal": 591, + "source": 160, + "pc": [ + 566 + ] + }, + { + "teal": 592, + "source": 160, + "pc": [ + 567, + 568 + ] + }, + { + "teal": 596, + "source": 161, + "pc": [ + 569, + 570 + ] + }, + { + "teal": 597, + "source": 161, + "pc": [ + 571, + 572 + ] + }, + { + "teal": 600, + "source": 159, + "pc": [ + 573 + ] + }, + { + "teal": 601, + "source": 159, + "pc": [ + 574, + 575 + ] + }, + { + "teal": 604, + "source": 159, + "pc": [ + 576 + ] + }, + { + "teal": 605, + "source": 143, + "pc": [ + 577 + ] + }, + { + "teal": 610, + "source": 168, + "pc": [ + 578, + 579, + 580 + ] + }, + { + "teal": 611, + "source": 168, + "pc": [ + 581 + ] + }, + { + "teal": 612, + "source": 168, + "pc": [ + 582 + ] + }, + { + "teal": 618, + "source": 168, + "pc": [ + 583, + 584, + 585 + ] + }, + { + "teal": 622, + "source": 169, + "pc": [ + 586, + 587 + ] + }, + { + "teal": 623, + "source": 169, + "pc": [ + 588, + 589 + ] + }, + { + "teal": 624, + "source": 169, + "pc": [ + 590 + ] + }, + { + "teal": 625, + "source": 169, + "pc": [ + 591 + ] + }, + { + "teal": 626, + "source": 168, + "pc": [ + 592 + ] + }, + { + "teal": 631, + "source": 178, + "pc": [ + 593, + 594, + 595 + ] + }, + { + "teal": 632, + "source": 178, + "pc": [ + 596 + ] + }, + { + "teal": 633, + "source": 178, + "pc": [ + 597 + ] + }, + { + "teal": 642, + "source": 178, + "pc": [ + 598, + 599, + 600 + ] + }, + { + "teal": 643, + "source": 178, + "pc": [ + 601 + ] + }, + { + "teal": 646, + "source": 38, + "pc": [ + 602 + ] + }, + { + "teal": 647, + "source": 38, + "pc": [ + 603 + ] + }, + { + "teal": 650, + "source": 38, + "pc": [ + 604, + 605, + 606, + 607, + 608, + 609 + ] + }, + { + "teal": 651, + "source": 38, + "pc": [ + 610, + 611, + 612 + ] + }, + { + "teal": 652, + "source": 38, + "pc": [ + 613, + 614, + 615, + 616 + ] + }, + { + "teal": 655, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 617 + ] + }, + { + "teal": 658, + "source": 38, + "pc": [ + 618, + 619, + 620, + 621, + 622, + 623 + ] + }, + { + "teal": 659, + "source": 38, + "pc": [ + 624, + 625, + 626, + 627, + 628, + 629 + ] + }, + { + "teal": 660, + "source": 38, + "pc": [ + 630, + 631, + 632, + 633, + 634, + 635 + ] + }, + { + "teal": 661, + "source": 38, + "pc": [ + 636, + 637, + 638, + 639, + 640, + 641 + ] + }, + { + "teal": 662, + "source": 38, + "pc": [ + 642, + 643, + 644, + 645, + 646, + 647 + ] + }, + { + "teal": 663, + "source": 38, + "pc": [ + 648, + 649, + 650, + 651, + 652, + 653 + ] + }, + { + "teal": 664, + "source": 38, + "pc": [ + 654, + 655, + 656 + ] + }, + { + "teal": 665, + "source": 38, + "pc": [ + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670 + ] + }, + { + "teal": 668, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 671 + ] + }, + { + "teal": 671, + "source": 38, + "pc": [ + 672, + 673, + 674, + 675, + 676, + 677 + ] + }, + { + "teal": 672, + "source": 38, + "pc": [ + 678, + 679, + 680 + ] + }, + { + "teal": 673, + "source": 38, + "pc": [ + 681, + 682, + 683, + 684 + ] + }, + { + "teal": 676, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 685 + ] + } + ], + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjk2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9zdGFydFVwbG9hZDoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBzdGFydFVwbG9hZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1YktleSkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQocHViS2V5OiBBZGRyZXNzLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NQoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2OAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LCBlbmQ6IGVuZEJveCwgc3RhdHVzOiBVUExPQURJTkcsIGVuZFNpemU6IGVuZEJveFNpemUsIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEocHViS2V5KS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6NzQKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc4CgkvLyB0b3RhbENvc3QgPSBudW1Cb3hlcyAqIENPU1RfUEVSX0JPWCAvLyBjb3N0IG9mIGRhdGEgYm94ZXMKCS8vICAgICArIChudW1Cb3hlcyAtIDEpICogTUFYX0JPWF9TSVpFICogQ09TVF9QRVJfQllURSAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICArIG51bUJveGVzICogOCAqIENPU1RfUEVSX0JZVEUgLy8gY29zdCBvZiBkYXRhIGtleXMKCS8vICAgICArIGVuZEJveFNpemUgKiBDT1NUX1BFUl9CWVRFIC8vIGNvc3Qgb2YgbGFzdCBkYXRhIGJveAoJLy8gICAgICsgQ09TVF9QRVJfQk9YICsgKDggKyA4ICsgMSArIDggKyAzMiArIDgpICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA4CgkqCglpbnQgNDAwCgkqCgkrCglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpbnQgNDAwCgkqCgkrCglpbnQgMjUwMAoJKwoJaW50IDI2MDAwCgkrCglmcmFtZV9idXJ5IDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQobWJyUGF5bWVudC5hbW91bnQgPT09IHRvdGFsQ29zdCkKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYWRkcmVzcyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChwdWJLZXkpIGZvciB1cGxvYWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgcHVia2V5IG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6OTgKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMQoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gVVBMT0FESU5HKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWludCAxCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMDQKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwNQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZmluaXNoVXBsb2FkOgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHB1YktleSkgZm9yIGZpbmlzaFVwbG9hZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGZpbmlzaFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gZmluaXNoVXBsb2FkKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8KLy8gTWFyayB1cGxvYWRpbmcgYXMgZmFsc2UKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmZpbmlzaFVwbG9hZDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZS5zdGF0dXMgPSBSRUFEWQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWJ5dGUgMHgwMQoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc3RhcnREZWxldGU6CgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocHViS2V5KSBmb3Igc3RhcnREZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHN0YXJ0RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydERlbGV0ZShwdWJLZXk6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIFN0YXJ0cyB0aGUgZGVsZXRpb24gcHJvY2VzcyBmb3IgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgRElECi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRApzdGFydERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjkKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMQoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gUkVBRFkpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTM0CgkvLyBtZXRhZGF0YS5zdGF0dXMgPSBERUxFVElORwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJYnl0ZSAweDAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVEYXRhOgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChwdWJLZXkpIGZvciBkZWxldGVEYXRhIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRlbGV0ZURhdGEoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiBkZWxldGVEYXRhCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVEYXRhKHB1YktleTogQWRkcmVzcywgYm94SW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGJveCBvZiBkYXRhCi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRAovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gZGVsZXRlCmRlbGV0ZURhdGE6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNDQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gREVMRVRJTkcpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMToKCWFzc2VydAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYm94SW5kZXggIT09IG1ldGFkYXRhLnN0YXJ0CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYXNzZXJ0KG1ldGFkYXRhLmxhc3REZWxldGVkID09PSBib3hJbmRleCAtIDEpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMjUgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaW50IDEKCS0KCT09Cglhc3NlcnQKCippZjFfZW5kOgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNTIKCS8vIHByZU1CUiA9IGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMSAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU0CgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglib3hfZGVsCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKmlmMl9lbHNlCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfZGVsCgliICppZjJfZW5kCgoqaWYyX2Vsc2U6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NwoJLy8gbWV0YWRhdGEubGFzdERlbGV0ZWQgPSBib3hJbmRleAoJaW50IDI1IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyX2VuZDoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBwcmVNQlI6IHVpbnQ2NAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYxCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKTogdm9pZAovLwovLyBBbGxvdyB0aGUgY29udHJhY3QgdG8gYmUgdXBkYXRlZCBieSB0aGUgY3JlYXRvcgp1cGRhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGR1bW15KCl2b2lkCiphYmlfcm91dGVfZHVtbXk6CgkvLyBleGVjdXRlIGR1bW15KCl2b2lkCgljYWxsc3ViIGR1bW15CglpbnQgMQoJcmV0dXJuCgovLyBkdW1teSgpOiB2b2lkCi8vCi8vIER1bW15IGZ1bmN0aW9uIHRvIGFkZCBleHRyYSBib3ggcmVmZXJlbmNlcyBmb3IgZGVsZXRlRGF0YS4KLy8gQm94ZXMgYXJlIDMyaywgYnV0IGEgc2luZ2xlIGFwcCBjYWxsIGNhbiBvbmx5IGlubGN1ZGUgZW5vdWdoIHJlZmVyZW5jZXMgdG8gcmVhZC93cml0ZSA4awovLyBhdCBhIHRpbWUuIFRodXMgd2hlbiBhIGJveCBpcyBkZWxldGVkLCB3ZSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIGR1bW15IGNhbGxzIHdpdGggYm94Ci8vIHJlZmVyZW5jZXMgdG8gaW5jcmVhc2UgdGhlIHRvdGFsIHJlYWQvd3JpdGUgYnVkZ2V0IHRvIDMyay4KZHVtbXk6Cglwcm90byAwIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluaXNoVXBsb2FkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAic3RhcnREZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQiCgltZXRob2QgImR1bW15KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGFydFVwbG9hZCAqYWJpX3JvdXRlX3VwbG9hZCAqYWJpX3JvdXRlX2ZpbmlzaFVwbG9hZCAqYWJpX3JvdXRlX3N0YXJ0RGVsZXRlICphYmlfcm91dGVfZGVsZXRlRGF0YSAqYWJpX3JvdXRlX2R1bW15CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CiAJAQgAIBCQA8QTgIACGSYCAAxjdXJyZW50SW5kZXgxGBSBBgsxGQiNDAInAAAAAAAAAl0AAAIZAAAAAAAAAAAAAAAxFiIJSTgQIhJENhoDFzYaAhc2GgFJFSUSRIgAAiJDigQAKEcDMQAyCRJEKWSMAIsAi/4IIgmMAYsAFosBFlCAAQBQi/0WUIAIAAAAAAAAAABQjAKL/71MSBREi/+LAr8piwEiCGeL/iEGC4v+IgkhBwshBQsIi/4jCyEFCwiL/SEFCwghBgiBkMsBCIwDi/w4CIsDEkSL/DgHMgoSRIk2GgRXAgA2GgMXNhoCFzYaAUkVJRJEiAACIkOKBAAoMQAyCRJEi/+MAIv/IQQiuhckEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/SQSQQAdi/4Wi/6L/yMjuhcSQQAKi/+BESO6F0IAAiEHuUiL/haL/Yv8u4k2GgFJFSUSRIgAAiJDigEAMQAyCRJEi/8hBIABAbuJNhoBSRUlEkSIAAIiQ4oBACgxADIJEkSL/4wAi/8hBCK6FyISRIsAIQSAAQK7iTYaAhc2GgFJFSUSRIgAAiJDigIAKEkxADIJEkSL/4wAi/8hBCK6F4ECEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/ov/JCO6FxNBAA2L/yEII7oXi/4iCRJEMgpzAUiMAYv+FryL/ov/IyO6FxJBAAaL/7xCAAohCIv+FosATgK7sSKyEIsBMgpzAUgJsggxALIHJLIBs4mIAAIiQ4oAADEAMgkSRImIAAIiQ4oAAIkiQ4AEuER7NjYaAI4B//EAgARWXGddgARNscQYgAQOeHJXgAS9LITigARokbqQgASjDOf/NhoAjgb9pf5E/rz+2/8J/7IAgARG92UzNhoAjgH/lQA=", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 24, + "patch": 0, + "commitHash": "5c2cf06d" + } + } +} \ No newline at end of file diff --git a/client/internal/contracts/DIDAlgoStorage.clear.teal b/client/internal/contracts/DIDAlgoStorage.clear.teal new file mode 100644 index 0000000..e9f1d65 --- /dev/null +++ b/client/internal/contracts/DIDAlgoStorage.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/client/internal/contracts/DIDAlgoStorage.src_map.json b/client/internal/contracts/DIDAlgoStorage.src_map.json new file mode 100644 index 0000000..8128601 --- /dev/null +++ b/client/internal/contracts/DIDAlgoStorage.src_map.json @@ -0,0 +1,2936 @@ +[ + { + "teal": 1, + "source": 38, + "pc": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + }, + { + "teal": 13, + "source": 38, + "pc": [ + 32, + 33 + ] + }, + { + "teal": 14, + "source": 38, + "pc": [ + 34 + ] + }, + { + "teal": 15, + "source": 38, + "pc": [ + 35, + 36 + ] + }, + { + "teal": 16, + "source": 38, + "pc": [ + 37 + ] + }, + { + "teal": 17, + "source": 38, + "pc": [ + 38, + 39 + ] + }, + { + "teal": 18, + "source": 38, + "pc": [ + 40 + ] + }, + { + "teal": 19, + "source": 38, + "pc": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ] + }, + { + "teal": 23, + "source": 38, + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 67 + ] + }, + { + "teal": 28, + "source": 61, + "pc": [ + 68, + 69 + ] + }, + { + "teal": 29, + "source": 61, + "pc": [ + 70 + ] + }, + { + "teal": 30, + "source": 61, + "pc": [ + 71 + ] + }, + { + "teal": 31, + "source": 61, + "pc": [ + 72 + ] + }, + { + "teal": 32, + "source": 61, + "pc": [ + 73, + 74 + ] + }, + { + "teal": 33, + "source": 61, + "pc": [ + 75 + ] + }, + { + "teal": 34, + "source": 61, + "pc": [ + 76 + ] + }, + { + "teal": 37, + "source": 61, + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", + "pc": [ + 77 + ] + }, + { + "teal": 40, + "source": 60, + "pc": [ + 78, + 79, + 80 + ] + }, + { + "teal": 41, + "source": 60, + "pc": [ + 81 + ] + }, + { + "teal": 44, + "source": 59, + "pc": [ + 82, + 83, + 84 + ] + }, + { + "teal": 45, + "source": 59, + "pc": [ + 85 + ] + }, + { + "teal": 48, + "source": 58, + "pc": [ + 86, + 87, + 88 + ] + }, + { + "teal": 49, + "source": 58, + "pc": [ + 89 + ] + }, + { + "teal": 50, + "source": 58, + "pc": [ + 90 + ] + }, + { + "teal": 51, + "source": 58, + "pc": [ + 91 + ] + }, + { + "teal": 52, + "source": 58, + "pc": [ + 92 + ] + }, + { + "teal": 55, + "source": 58, + "errorMessage": "argument 3 (pubKey) for startUpload must be a address", + "pc": [ + 93 + ] + }, + { + "teal": 58, + "source": 57, + "pc": [ + 94, + 95, + 96 + ] + }, + { + "teal": 59, + "source": 57, + "pc": [ + 97 + ] + }, + { + "teal": 60, + "source": 57, + "pc": [ + 98 + ] + }, + { + "teal": 72, + "source": 57, + "pc": [ + 99, + 100, + 101 + ] + }, + { + "teal": 75, + "source": 57, + "pc": [ + 102 + ] + }, + { + "teal": 76, + "source": 57, + "pc": [ + 103, + 104 + ] + }, + { + "teal": 80, + "source": 63, + "pc": [ + 105, + 106 + ] + }, + { + "teal": 81, + "source": 63, + "pc": [ + 107, + 108 + ] + }, + { + "teal": 82, + "source": 63, + "pc": [ + 109 + ] + }, + { + "teal": 83, + "source": 63, + "pc": [ + 110 + ] + }, + { + "teal": 87, + "source": 65, + "pc": [ + 111 + ] + }, + { + "teal": 88, + "source": 65, + "pc": [ + 112 + ] + }, + { + "teal": 89, + "source": 65, + "pc": [ + 113, + 114 + ] + }, + { + "teal": 93, + "source": 66, + "pc": [ + 115, + 116 + ] + }, + { + "teal": 94, + "source": 66, + "pc": [ + 117, + 118 + ] + }, + { + "teal": 95, + "source": 66, + "pc": [ + 119 + ] + }, + { + "teal": 96, + "source": 66, + "pc": [ + 120 + ] + }, + { + "teal": 97, + "source": 66, + "pc": [ + 121 + ] + }, + { + "teal": 98, + "source": 66, + "pc": [ + 122, + 123 + ] + }, + { + "teal": 104, + "source": 69, + "pc": [ + 124, + 125 + ] + }, + { + "teal": 105, + "source": 69, + "pc": [ + 126 + ] + }, + { + "teal": 106, + "source": 69, + "pc": [ + 127, + 128 + ] + }, + { + "teal": 107, + "source": 69, + "pc": [ + 129 + ] + }, + { + "teal": 108, + "source": 69, + "pc": [ + 130 + ] + }, + { + "teal": 109, + "source": 69, + "pc": [ + 131, + 132, + 133 + ] + }, + { + "teal": 110, + "source": 69, + "pc": [ + 134 + ] + }, + { + "teal": 111, + "source": 69, + "pc": [ + 135, + 136 + ] + }, + { + "teal": 112, + "source": 69, + "pc": [ + 137 + ] + }, + { + "teal": 113, + "source": 69, + "pc": [ + 138 + ] + }, + { + "teal": 114, + "source": 69, + "pc": [ + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148 + ] + }, + { + "teal": 115, + "source": 69, + "pc": [ + 149 + ] + }, + { + "teal": 116, + "source": 68, + "pc": [ + 150, + 151 + ] + }, + { + "teal": 120, + "source": 72, + "pc": [ + 152, + 153 + ] + }, + { + "teal": 121, + "source": 72, + "pc": [ + 154 + ] + }, + { + "teal": 122, + "source": 72, + "pc": [ + 155 + ] + }, + { + "teal": 123, + "source": 72, + "pc": [ + 156 + ] + }, + { + "teal": 124, + "source": 72, + "pc": [ + 157 + ] + }, + { + "teal": 125, + "source": 72, + "pc": [ + 158 + ] + }, + { + "teal": 129, + "source": 74, + "pc": [ + 159, + 160 + ] + }, + { + "teal": 130, + "source": 74, + "pc": [ + 161, + 162 + ] + }, + { + "teal": 131, + "source": 74, + "pc": [ + 163 + ] + }, + { + "teal": 135, + "source": 76, + "pc": [ + 164 + ] + }, + { + "teal": 136, + "source": 76, + "pc": [ + 165, + 166 + ] + }, + { + "teal": 137, + "source": 76, + "pc": [ + 167 + ] + }, + { + "teal": 138, + "source": 76, + "pc": [ + 168 + ] + }, + { + "teal": 139, + "source": 76, + "pc": [ + 169 + ] + }, + { + "teal": 147, + "source": 78, + "pc": [ + 170, + 171 + ] + }, + { + "teal": 148, + "source": 78, + "pc": [ + 172, + 173 + ] + }, + { + "teal": 149, + "source": 78, + "pc": [ + 174 + ] + }, + { + "teal": 150, + "source": 79, + "pc": [ + 175, + 176 + ] + }, + { + "teal": 151, + "source": 79, + "pc": [ + 177 + ] + }, + { + "teal": 152, + "source": 79, + "pc": [ + 178 + ] + }, + { + "teal": 153, + "source": 79, + "pc": [ + 179, + 180 + ] + }, + { + "teal": 154, + "source": 79, + "pc": [ + 181 + ] + }, + { + "teal": 155, + "source": 79, + "pc": [ + 182, + 183 + ] + }, + { + "teal": 156, + "source": 79, + "pc": [ + 184 + ] + }, + { + "teal": 157, + "source": 79, + "pc": [ + 185 + ] + }, + { + "teal": 158, + "source": 80, + "pc": [ + 186, + 187 + ] + }, + { + "teal": 159, + "source": 80, + "pc": [ + 188 + ] + }, + { + "teal": 160, + "source": 80, + "pc": [ + 189 + ] + }, + { + "teal": 161, + "source": 80, + "pc": [ + 190, + 191 + ] + }, + { + "teal": 162, + "source": 80, + "pc": [ + 192 + ] + }, + { + "teal": 163, + "source": 80, + "pc": [ + 193 + ] + }, + { + "teal": 164, + "source": 81, + "pc": [ + 194, + 195 + ] + }, + { + "teal": 165, + "source": 81, + "pc": [ + 196, + 197 + ] + }, + { + "teal": 166, + "source": 81, + "pc": [ + 198 + ] + }, + { + "teal": 167, + "source": 81, + "pc": [ + 199 + ] + }, + { + "teal": 168, + "source": 82, + "pc": [ + 200, + 201 + ] + }, + { + "teal": 169, + "source": 82, + "pc": [ + 202 + ] + }, + { + "teal": 170, + "source": 82, + "pc": [ + 203, + 204, + 205, + 206 + ] + }, + { + "teal": 171, + "source": 82, + "pc": [ + 207 + ] + }, + { + "teal": 172, + "source": 78, + "pc": [ + 208, + 209 + ] + }, + { + "teal": 176, + "source": 84, + "pc": [ + 210, + 211 + ] + }, + { + "teal": 177, + "source": 84, + "pc": [ + 212, + 213 + ] + }, + { + "teal": 178, + "source": 84, + "pc": [ + 214, + 215 + ] + }, + { + "teal": 179, + "source": 84, + "pc": [ + 216 + ] + }, + { + "teal": 180, + "source": 84, + "pc": [ + 217 + ] + }, + { + "teal": 184, + "source": 85, + "pc": [ + 218, + 219 + ] + }, + { + "teal": 185, + "source": 85, + "pc": [ + 220, + 221 + ] + }, + { + "teal": 186, + "source": 85, + "pc": [ + 222, + 223 + ] + }, + { + "teal": 187, + "source": 85, + "pc": [ + 224 + ] + }, + { + "teal": 188, + "source": 85, + "pc": [ + 225 + ] + }, + { + "teal": 189, + "source": 57, + "pc": [ + 226 + ] + }, + { + "teal": 194, + "source": 97, + "pc": [ + 227, + 228, + 229 + ] + }, + { + "teal": 195, + "source": 97, + "pc": [ + 230, + 231, + 232 + ] + }, + { + "teal": 198, + "source": 97, + "pc": [ + 233, + 234, + 235 + ] + }, + { + "teal": 199, + "source": 97, + "pc": [ + 236 + ] + }, + { + "teal": 202, + "source": 97, + "pc": [ + 237, + 238, + 239 + ] + }, + { + "teal": 203, + "source": 97, + "pc": [ + 240 + ] + }, + { + "teal": 206, + "source": 97, + "pc": [ + 241, + 242, + 243 + ] + }, + { + "teal": 207, + "source": 97, + "pc": [ + 244 + ] + }, + { + "teal": 208, + "source": 97, + "pc": [ + 245 + ] + }, + { + "teal": 209, + "source": 97, + "pc": [ + 246 + ] + }, + { + "teal": 210, + "source": 97, + "pc": [ + 247 + ] + }, + { + "teal": 213, + "source": 97, + "errorMessage": "argument 3 (pubKey) for upload must be a address", + "pc": [ + 248 + ] + }, + { + "teal": 216, + "source": 97, + "pc": [ + 249, + 250, + 251 + ] + }, + { + "teal": 217, + "source": 97, + "pc": [ + 252 + ] + }, + { + "teal": 218, + "source": 97, + "pc": [ + 253 + ] + }, + { + "teal": 230, + "source": 97, + "pc": [ + 254, + 255, + 256 + ] + }, + { + "teal": 233, + "source": 97, + "pc": [ + 257 + ] + }, + { + "teal": 237, + "source": 98, + "pc": [ + 258, + 259 + ] + }, + { + "teal": 238, + "source": 98, + "pc": [ + 260, + 261 + ] + }, + { + "teal": 239, + "source": 98, + "pc": [ + 262 + ] + }, + { + "teal": 240, + "source": 98, + "pc": [ + 263 + ] + }, + { + "teal": 244, + "source": 100, + "pc": [ + 264, + 265 + ] + }, + { + "teal": 245, + "source": 100, + "pc": [ + 266, + 267 + ] + }, + { + "teal": 249, + "source": 100, + "pc": [ + 268, + 269 + ] + }, + { + "teal": 250, + "source": 100, + "pc": [ + 270, + 271 + ] + }, + { + "teal": 251, + "source": 100, + "pc": [ + 272 + ] + }, + { + "teal": 252, + "source": 100, + "pc": [ + 273 + ] + }, + { + "teal": 253, + "source": 101, + "pc": [ + 274 + ] + }, + { + "teal": 254, + "source": 26, + "pc": [ + 275 + ] + }, + { + "teal": 255, + "source": 101, + "pc": [ + 276 + ] + }, + { + "teal": 256, + "source": 101, + "pc": [ + 277 + ] + }, + { + "teal": 260, + "source": 100, + "pc": [ + 278, + 279 + ] + }, + { + "teal": 261, + "source": 100, + "pc": [ + 280 + ] + }, + { + "teal": 262, + "source": 100, + "pc": [ + 281 + ] + }, + { + "teal": 263, + "source": 100, + "pc": [ + 282 + ] + }, + { + "teal": 264, + "source": 102, + "pc": [ + 283 + ] + }, + { + "teal": 265, + "source": 102, + "pc": [ + 284, + 285 + ] + }, + { + "teal": 266, + "source": 102, + "pc": [ + 286 + ] + }, + { + "teal": 267, + "source": 102, + "pc": [ + 287 + ] + }, + { + "teal": 268, + "source": 102, + "pc": [ + 288, + 289, + 290 + ] + }, + { + "teal": 269, + "source": 102, + "pc": [ + 291, + 292 + ] + }, + { + "teal": 270, + "source": 100, + "pc": [ + 293, + 294 + ] + }, + { + "teal": 271, + "source": 100, + "pc": [ + 295 + ] + }, + { + "teal": 272, + "source": 100, + "pc": [ + 296 + ] + }, + { + "teal": 273, + "source": 100, + "pc": [ + 297 + ] + }, + { + "teal": 274, + "source": 102, + "pc": [ + 298 + ] + }, + { + "teal": 275, + "source": 102, + "pc": [ + 299 + ] + }, + { + "teal": 276, + "source": 102, + "pc": [ + 300 + ] + }, + { + "teal": 279, + "source": 102, + "pc": [ + 301 + ] + }, + { + "teal": 284, + "source": 104, + "pc": [ + 302, + 303 + ] + }, + { + "teal": 285, + "source": 104, + "pc": [ + 304 + ] + }, + { + "teal": 286, + "source": 104, + "pc": [ + 305 + ] + }, + { + "teal": 287, + "source": 104, + "pc": [ + 306, + 307, + 308 + ] + }, + { + "teal": 292, + "source": 105, + "pc": [ + 309, + 310 + ] + }, + { + "teal": 293, + "source": 105, + "pc": [ + 311 + ] + }, + { + "teal": 294, + "source": 105, + "pc": [ + 312, + 313 + ] + }, + { + "teal": 295, + "source": 100, + "pc": [ + 314, + 315 + ] + }, + { + "teal": 296, + "source": 100, + "pc": [ + 316 + ] + }, + { + "teal": 297, + "source": 100, + "pc": [ + 317 + ] + }, + { + "teal": 298, + "source": 100, + "pc": [ + 318 + ] + }, + { + "teal": 299, + "source": 105, + "pc": [ + 319 + ] + }, + { + "teal": 300, + "source": 105, + "pc": [ + 320 + ] + }, + { + "teal": 301, + "source": 105, + "pc": [ + 321, + 322, + 323 + ] + }, + { + "teal": 302, + "source": 100, + "pc": [ + 324, + 325 + ] + }, + { + "teal": 303, + "source": 100, + "pc": [ + 326, + 327 + ] + }, + { + "teal": 304, + "source": 100, + "pc": [ + 328 + ] + }, + { + "teal": 305, + "source": 100, + "pc": [ + 329 + ] + }, + { + "teal": 306, + "source": 105, + "pc": [ + 330 + ] + }, + { + "teal": 307, + "source": 105, + "pc": [ + 331, + 332, + 333 + ] + }, + { + "teal": 310, + "source": 105, + "pc": [ + 334, + 335 + ] + }, + { + "teal": 313, + "source": 105, + "pc": [ + 336 + ] + }, + { + "teal": 314, + "source": 105, + "pc": [ + 337 + ] + }, + { + "teal": 319, + "source": 108, + "pc": [ + 338, + 339 + ] + }, + { + "teal": 320, + "source": 108, + "pc": [ + 340 + ] + }, + { + "teal": 321, + "source": 108, + "pc": [ + 341, + 342 + ] + }, + { + "teal": 322, + "source": 108, + "pc": [ + 343, + 344 + ] + }, + { + "teal": 323, + "source": 108, + "pc": [ + 345 + ] + }, + { + "teal": 324, + "source": 97, + "pc": [ + 346 + ] + }, + { + "teal": 329, + "source": 117, + "pc": [ + 347, + 348, + 349 + ] + }, + { + "teal": 330, + "source": 117, + "pc": [ + 350 + ] + }, + { + "teal": 331, + "source": 117, + "pc": [ + 351 + ] + }, + { + "teal": 332, + "source": 117, + "pc": [ + 352 + ] + }, + { + "teal": 333, + "source": 117, + "pc": [ + 353 + ] + }, + { + "teal": 336, + "source": 117, + "errorMessage": "argument 0 (pubKey) for finishUpload must be a address", + "pc": [ + 354 + ] + }, + { + "teal": 339, + "source": 117, + "pc": [ + 355, + 356, + 357 + ] + }, + { + "teal": 340, + "source": 117, + "pc": [ + 358 + ] + }, + { + "teal": 341, + "source": 117, + "pc": [ + 359 + ] + }, + { + "teal": 350, + "source": 117, + "pc": [ + 360, + 361, + 362 + ] + }, + { + "teal": 354, + "source": 118, + "pc": [ + 363, + 364 + ] + }, + { + "teal": 355, + "source": 118, + "pc": [ + 365, + 366 + ] + }, + { + "teal": 356, + "source": 118, + "pc": [ + 367 + ] + }, + { + "teal": 357, + "source": 118, + "pc": [ + 368 + ] + }, + { + "teal": 361, + "source": 120, + "pc": [ + 369, + 370 + ] + }, + { + "teal": 362, + "source": 120, + "pc": [ + 371, + 372 + ] + }, + { + "teal": 363, + "source": 120, + "pc": [ + 373, + 374, + 375 + ] + }, + { + "teal": 364, + "source": 120, + "pc": [ + 376 + ] + }, + { + "teal": 365, + "source": 117, + "pc": [ + 377 + ] + }, + { + "teal": 370, + "source": 128, + "pc": [ + 378, + 379, + 380 + ] + }, + { + "teal": 371, + "source": 128, + "pc": [ + 381 + ] + }, + { + "teal": 372, + "source": 128, + "pc": [ + 382 + ] + }, + { + "teal": 373, + "source": 128, + "pc": [ + 383 + ] + }, + { + "teal": 374, + "source": 128, + "pc": [ + 384 + ] + }, + { + "teal": 377, + "source": 128, + "errorMessage": "argument 0 (pubKey) for startDelete must be a address", + "pc": [ + 385 + ] + }, + { + "teal": 380, + "source": 128, + "pc": [ + 386, + 387, + 388 + ] + }, + { + "teal": 381, + "source": 128, + "pc": [ + 389 + ] + }, + { + "teal": 382, + "source": 128, + "pc": [ + 390 + ] + }, + { + "teal": 390, + "source": 128, + "pc": [ + 391, + 392, + 393 + ] + }, + { + "teal": 393, + "source": 128, + "pc": [ + 394 + ] + }, + { + "teal": 397, + "source": 129, + "pc": [ + 395, + 396 + ] + }, + { + "teal": 398, + "source": 129, + "pc": [ + 397, + 398 + ] + }, + { + "teal": 399, + "source": 129, + "pc": [ + 399 + ] + }, + { + "teal": 400, + "source": 129, + "pc": [ + 400 + ] + }, + { + "teal": 404, + "source": 131, + "pc": [ + 401, + 402 + ] + }, + { + "teal": 405, + "source": 131, + "pc": [ + 403, + 404 + ] + }, + { + "teal": 409, + "source": 131, + "pc": [ + 405, + 406 + ] + }, + { + "teal": 410, + "source": 131, + "pc": [ + 407, + 408 + ] + }, + { + "teal": 411, + "source": 131, + "pc": [ + 409 + ] + }, + { + "teal": 412, + "source": 131, + "pc": [ + 410 + ] + }, + { + "teal": 413, + "source": 132, + "pc": [ + 411 + ] + }, + { + "teal": 414, + "source": 29, + "pc": [ + 412 + ] + }, + { + "teal": 415, + "source": 132, + "pc": [ + 413 + ] + }, + { + "teal": 416, + "source": 132, + "pc": [ + 414 + ] + }, + { + "teal": 420, + "source": 131, + "pc": [ + 415, + 416 + ] + }, + { + "teal": 421, + "source": 131, + "pc": [ + 417, + 418 + ] + }, + { + "teal": 422, + "source": 131, + "pc": [ + 419, + 420, + 421 + ] + }, + { + "teal": 423, + "source": 131, + "pc": [ + 422 + ] + }, + { + "teal": 424, + "source": 128, + "pc": [ + 423 + ] + }, + { + "teal": 429, + "source": 143, + "pc": [ + 424, + 425, + 426 + ] + }, + { + "teal": 430, + "source": 143, + "pc": [ + 427 + ] + }, + { + "teal": 433, + "source": 143, + "pc": [ + 428, + 429, + 430 + ] + }, + { + "teal": 434, + "source": 143, + "pc": [ + 431 + ] + }, + { + "teal": 435, + "source": 143, + "pc": [ + 432 + ] + }, + { + "teal": 436, + "source": 143, + "pc": [ + 433 + ] + }, + { + "teal": 437, + "source": 143, + "pc": [ + 434 + ] + }, + { + "teal": 440, + "source": 143, + "errorMessage": "argument 1 (pubKey) for deleteData must be a address", + "pc": [ + 435 + ] + }, + { + "teal": 443, + "source": 143, + "pc": [ + 436, + 437, + 438 + ] + }, + { + "teal": 444, + "source": 143, + "pc": [ + 439 + ] + }, + { + "teal": 445, + "source": 143, + "pc": [ + 440 + ] + }, + { + "teal": 454, + "source": 143, + "pc": [ + 441, + 442, + 443 + ] + }, + { + "teal": 457, + "source": 143, + "pc": [ + 444 + ] + }, + { + "teal": 458, + "source": 143, + "pc": [ + 445 + ] + }, + { + "teal": 462, + "source": 144, + "pc": [ + 446, + 447 + ] + }, + { + "teal": 463, + "source": 144, + "pc": [ + 448, + 449 + ] + }, + { + "teal": 464, + "source": 144, + "pc": [ + 450 + ] + }, + { + "teal": 465, + "source": 144, + "pc": [ + 451 + ] + }, + { + "teal": 469, + "source": 146, + "pc": [ + 452, + 453 + ] + }, + { + "teal": 470, + "source": 146, + "pc": [ + 454, + 455 + ] + }, + { + "teal": 474, + "source": 146, + "pc": [ + 456, + 457 + ] + }, + { + "teal": 475, + "source": 146, + "pc": [ + 458, + 459 + ] + }, + { + "teal": 476, + "source": 146, + "pc": [ + 460 + ] + }, + { + "teal": 477, + "source": 146, + "pc": [ + 461 + ] + }, + { + "teal": 478, + "source": 147, + "pc": [ + 462 + ] + }, + { + "teal": 479, + "source": 32, + "pc": [ + 463, + 464 + ] + }, + { + "teal": 480, + "source": 147, + "pc": [ + 465 + ] + }, + { + "teal": 481, + "source": 147, + "pc": [ + 466 + ] + }, + { + "teal": 485, + "source": 146, + "pc": [ + 467, + 468 + ] + }, + { + "teal": 486, + "source": 146, + "pc": [ + 469 + ] + }, + { + "teal": 487, + "source": 146, + "pc": [ + 470 + ] + }, + { + "teal": 488, + "source": 146, + "pc": [ + 471 + ] + }, + { + "teal": 489, + "source": 148, + "pc": [ + 472 + ] + }, + { + "teal": 490, + "source": 148, + "pc": [ + 473, + 474 + ] + }, + { + "teal": 491, + "source": 148, + "pc": [ + 475 + ] + }, + { + "teal": 492, + "source": 148, + "pc": [ + 476 + ] + }, + { + "teal": 493, + "source": 148, + "pc": [ + 477, + 478, + 479 + ] + }, + { + "teal": 494, + "source": 148, + "pc": [ + 480, + 481 + ] + }, + { + "teal": 495, + "source": 146, + "pc": [ + 482, + 483 + ] + }, + { + "teal": 496, + "source": 146, + "pc": [ + 484 + ] + }, + { + "teal": 497, + "source": 146, + "pc": [ + 485 + ] + }, + { + "teal": 498, + "source": 146, + "pc": [ + 486 + ] + }, + { + "teal": 499, + "source": 148, + "pc": [ + 487 + ] + }, + { + "teal": 500, + "source": 148, + "pc": [ + 488 + ] + }, + { + "teal": 501, + "source": 148, + "pc": [ + 489 + ] + }, + { + "teal": 504, + "source": 148, + "pc": [ + 490 + ] + }, + { + "teal": 509, + "source": 150, + "pc": [ + 491, + 492 + ] + }, + { + "teal": 510, + "source": 146, + "pc": [ + 493, + 494 + ] + }, + { + "teal": 511, + "source": 146, + "pc": [ + 495 + ] + }, + { + "teal": 512, + "source": 146, + "pc": [ + 496 + ] + }, + { + "teal": 513, + "source": 146, + "pc": [ + 497 + ] + }, + { + "teal": 514, + "source": 150, + "pc": [ + 498 + ] + }, + { + "teal": 515, + "source": 150, + "pc": [ + 499 + ] + }, + { + "teal": 516, + "source": 150, + "pc": [ + 500, + 501, + 502 + ] + }, + { + "teal": 521, + "source": 146, + "pc": [ + 503, + 504 + ] + }, + { + "teal": 522, + "source": 146, + "pc": [ + 505, + 506 + ] + }, + { + "teal": 523, + "source": 146, + "pc": [ + 507 + ] + }, + { + "teal": 524, + "source": 146, + "pc": [ + 508 + ] + }, + { + "teal": 525, + "source": 150, + "pc": [ + 509 + ] + }, + { + "teal": 526, + "source": 150, + "pc": [ + 510, + 511 + ] + }, + { + "teal": 527, + "source": 150, + "pc": [ + 512 + ] + }, + { + "teal": 528, + "source": 150, + "pc": [ + 513 + ] + }, + { + "teal": 529, + "source": 150, + "pc": [ + 514 + ] + }, + { + "teal": 530, + "source": 150, + "pc": [ + 515 + ] + }, + { + "teal": 535, + "source": 152, + "pc": [ + 516, + 517 + ] + }, + { + "teal": 536, + "source": 152, + "pc": [ + 518, + 519 + ] + }, + { + "teal": 537, + "source": 152, + "pc": [ + 520 + ] + }, + { + "teal": 538, + "source": 152, + "pc": [ + 521, + 522 + ] + }, + { + "teal": 542, + "source": 154, + "pc": [ + 523, + 524 + ] + }, + { + "teal": 543, + "source": 154, + "pc": [ + 525 + ] + }, + { + "teal": 544, + "source": 154, + "pc": [ + 526 + ] + }, + { + "teal": 549, + "source": 156, + "pc": [ + 527, + 528 + ] + }, + { + "teal": 550, + "source": 146, + "pc": [ + 529, + 530 + ] + }, + { + "teal": 551, + "source": 146, + "pc": [ + 531 + ] + }, + { + "teal": 552, + "source": 146, + "pc": [ + 532 + ] + }, + { + "teal": 553, + "source": 146, + "pc": [ + 533 + ] + }, + { + "teal": 554, + "source": 156, + "pc": [ + 534 + ] + }, + { + "teal": 555, + "source": 156, + "pc": [ + 535 + ] + }, + { + "teal": 556, + "source": 156, + "pc": [ + 536, + 537, + 538 + ] + }, + { + "teal": 561, + "source": 156, + "pc": [ + 539, + 540 + ] + }, + { + "teal": 562, + "source": 156, + "pc": [ + 541 + ] + }, + { + "teal": 563, + "source": 156, + "pc": [ + 542, + 543, + 544 + ] + }, + { + "teal": 568, + "source": 157, + "pc": [ + 545, + 546 + ] + }, + { + "teal": 569, + "source": 157, + "pc": [ + 547, + 548 + ] + }, + { + "teal": 570, + "source": 157, + "pc": [ + 549 + ] + }, + { + "teal": 571, + "source": 146, + "pc": [ + 550, + 551 + ] + }, + { + "teal": 572, + "source": 146, + "pc": [ + 552, + 553 + ] + }, + { + "teal": 573, + "source": 146, + "pc": [ + 554 + ] + }, + { + "teal": 581, + "source": 159, + "pc": [ + 555 + ] + }, + { + "teal": 582, + "source": 159, + "pc": [ + 556 + ] + }, + { + "teal": 583, + "source": 159, + "pc": [ + 557, + 558 + ] + }, + { + "teal": 587, + "source": 160, + "pc": [ + 559, + 560 + ] + }, + { + "teal": 588, + "source": 160, + "pc": [ + 561, + 562 + ] + }, + { + "teal": 589, + "source": 160, + "pc": [ + 563, + 564 + ] + }, + { + "teal": 590, + "source": 160, + "pc": [ + 565 + ] + }, + { + "teal": 591, + "source": 160, + "pc": [ + 566 + ] + }, + { + "teal": 592, + "source": 160, + "pc": [ + 567, + 568 + ] + }, + { + "teal": 596, + "source": 161, + "pc": [ + 569, + 570 + ] + }, + { + "teal": 597, + "source": 161, + "pc": [ + 571, + 572 + ] + }, + { + "teal": 600, + "source": 159, + "pc": [ + 573 + ] + }, + { + "teal": 601, + "source": 159, + "pc": [ + 574, + 575 + ] + }, + { + "teal": 604, + "source": 159, + "pc": [ + 576 + ] + }, + { + "teal": 605, + "source": 143, + "pc": [ + 577 + ] + }, + { + "teal": 610, + "source": 168, + "pc": [ + 578, + 579, + 580 + ] + }, + { + "teal": 611, + "source": 168, + "pc": [ + 581 + ] + }, + { + "teal": 612, + "source": 168, + "pc": [ + 582 + ] + }, + { + "teal": 618, + "source": 168, + "pc": [ + 583, + 584, + 585 + ] + }, + { + "teal": 622, + "source": 169, + "pc": [ + 586, + 587 + ] + }, + { + "teal": 623, + "source": 169, + "pc": [ + 588, + 589 + ] + }, + { + "teal": 624, + "source": 169, + "pc": [ + 590 + ] + }, + { + "teal": 625, + "source": 169, + "pc": [ + 591 + ] + }, + { + "teal": 626, + "source": 168, + "pc": [ + 592 + ] + }, + { + "teal": 631, + "source": 178, + "pc": [ + 593, + 594, + 595 + ] + }, + { + "teal": 632, + "source": 178, + "pc": [ + 596 + ] + }, + { + "teal": 633, + "source": 178, + "pc": [ + 597 + ] + }, + { + "teal": 642, + "source": 178, + "pc": [ + 598, + 599, + 600 + ] + }, + { + "teal": 643, + "source": 178, + "pc": [ + 601 + ] + }, + { + "teal": 646, + "source": 38, + "pc": [ + 602 + ] + }, + { + "teal": 647, + "source": 38, + "pc": [ + 603 + ] + }, + { + "teal": 650, + "source": 38, + "pc": [ + 604, + 605, + 606, + 607, + 608, + 609 + ] + }, + { + "teal": 651, + "source": 38, + "pc": [ + 610, + 611, + 612 + ] + }, + { + "teal": 652, + "source": 38, + "pc": [ + 613, + 614, + 615, + 616 + ] + }, + { + "teal": 655, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 617 + ] + }, + { + "teal": 658, + "source": 38, + "pc": [ + 618, + 619, + 620, + 621, + 622, + 623 + ] + }, + { + "teal": 659, + "source": 38, + "pc": [ + 624, + 625, + 626, + 627, + 628, + 629 + ] + }, + { + "teal": 660, + "source": 38, + "pc": [ + 630, + 631, + 632, + 633, + 634, + 635 + ] + }, + { + "teal": 661, + "source": 38, + "pc": [ + 636, + 637, + 638, + 639, + 640, + 641 + ] + }, + { + "teal": 662, + "source": 38, + "pc": [ + 642, + 643, + 644, + 645, + 646, + 647 + ] + }, + { + "teal": 663, + "source": 38, + "pc": [ + 648, + 649, + 650, + 651, + 652, + 653 + ] + }, + { + "teal": 664, + "source": 38, + "pc": [ + 654, + 655, + 656 + ] + }, + { + "teal": 665, + "source": 38, + "pc": [ + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670 + ] + }, + { + "teal": 668, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 671 + ] + }, + { + "teal": 671, + "source": 38, + "pc": [ + 672, + 673, + 674, + 675, + 676, + 677 + ] + }, + { + "teal": 672, + "source": 38, + "pc": [ + 678, + 679, + 680 + ] + }, + { + "teal": 673, + "source": 38, + "pc": [ + 681, + 682, + 683, + 684 + ] + }, + { + "teal": 676, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 685 + ] + } +] \ No newline at end of file diff --git a/client/internal/driver.go b/client/internal/driver.go index 6b1ffbf..e7c53ac 100644 --- a/client/internal/driver.go +++ b/client/internal/driver.go @@ -9,7 +9,7 @@ import ( // Read a DID document from the Algorand network. The method complies // with the `resolver.Provider` interface. -func (c *AlgoDIDClient) Read(id string) (*did.Document, *did.DocumentMetadata, error) { +func (c *DIDAlgoStorageClient) Read(id string) (*did.Document, *did.DocumentMetadata, error) { if _, err := did.Parse(id); err != nil { return nil, nil, errors.New(resolver.ErrInvalidDID) } diff --git a/client/internal/main.go b/client/internal/main.go index 94b7d84..65d7224 100644 --- a/client/internal/main.go +++ b/client/internal/main.go @@ -21,13 +21,13 @@ import ( ) // ClientSettings defines the configuration options available when -// interacting with an AlgoDID network agent. +// interacting with an DIDAlgoStorage network agent. type ClientSettings struct { Profiles []*NetworkProfile `json:"profiles" yaml:"profiles" mapstructure:"profiles"` } // NetworkProfile defines the configuration options to connect to a -// specific AlgoDID network agent. +// specific DIDAlgoStorage network agent. type NetworkProfile struct { // Profile name. Name string `json:"name" yaml:"name" mapstructure:"name"` @@ -38,7 +38,7 @@ type NetworkProfile struct { // Algod node access token. NodeToken string `json:"node_token,omitempty" yaml:"node_token,omitempty" mapstructure:"node_token"` - // Application ID for the AlgoDID storage smart contract. + // Application ID for the DIDAlgoStorage smart contract. AppID uint `json:"app_id" yaml:"app_id" mapstructure:"app_id"` // Storage contract provider server, if any. @@ -51,21 +51,21 @@ type NetworkClient struct { algod *algod.Client } -// AlgoDIDClient provides a simplified interface to interact with the +// DIDAlgoStorageClient provides a simplified interface to interact with the // Algorand network. -type AlgoDIDClient struct { +type DIDAlgoStorageClient struct { log xlog.Logger httpC *http.Client Networks map[string]*NetworkClient } // NewAlgoClient creates a new instance of the AlgoClient. -func NewAlgoClient(profiles []*NetworkProfile, log xlog.Logger) (*AlgoDIDClient, error) { +func NewAlgoClient(profiles []*NetworkProfile, log xlog.Logger) (*DIDAlgoStorageClient, error) { if len(profiles) == 0 { return nil, fmt.Errorf("no network profile provided") } - client := &AlgoDIDClient{ + client := &DIDAlgoStorageClient{ log: log, httpC: &http.Client{}, Networks: make(map[string]*NetworkClient), @@ -85,7 +85,7 @@ func NewAlgoClient(profiles []*NetworkProfile, log xlog.Logger) (*AlgoDIDClient, return client, nil } -// StorageAppID returns the application ID for the AlgoDID storage. +// StorageAppID returns the application ID for the DIDAlgoStorage. func (c *NetworkClient) StorageAppID() uint { return c.profile.AppID } @@ -110,7 +110,7 @@ func (c *NetworkClient) Ready() bool { return c.algod.HealthCheck().Do(context.TODO()) == nil } -// DeployContract creates a new instance of the AlgoDID storage smart contract +// DeployContract creates a new instance of the DIDAlgoStorage smart contract // on the network. func (c *NetworkClient) DeployContract(sender *crypto.Account) (uint64, error) { contract := LoadContract() @@ -120,7 +120,7 @@ func (c *NetworkClient) DeployContract(sender *crypto.Account) (uint64, error) { // PublishDID sends a new DID document to the network // fot on-chain storage. -func (c *AlgoDIDClient) PublishDID(id *did.Identifier, sender *crypto.Account) error { +func (c *DIDAlgoStorageClient) PublishDID(id *did.Identifier, sender *crypto.Account) error { c.log.WithFields(map[string]interface{}{ "did": id.String(), }).Info("publishing DID document") @@ -140,7 +140,7 @@ func (c *AlgoDIDClient) PublishDID(id *did.Identifier, sender *crypto.Account) e } // DeleteDID removes a DID document from the network. -func (c *AlgoDIDClient) DeleteDID(id *did.Identifier, sender *crypto.Account) error { +func (c *DIDAlgoStorageClient) DeleteDID(id *did.Identifier, sender *crypto.Account) error { c.log.WithFields(map[string]interface{}{ "did": id.String(), }).Info("deleting DID document") @@ -159,7 +159,7 @@ func (c *AlgoDIDClient) DeleteDID(id *did.Identifier, sender *crypto.Account) er } // Resolve retrieves a DID document from the network. -func (c *AlgoDIDClient) Resolve(id string) (*did.Document, error) { +func (c *DIDAlgoStorageClient) Resolve(id string) (*did.Document, error) { c.log.WithField("did", id).Info("retrieving DID document") // Parse the DID @@ -188,7 +188,13 @@ func (c *AlgoDIDClient) Resolve(id string) (*did.Document, error) { return doc, nil } -func (c *AlgoDIDClient) submitToProvider(network string, pub []byte, appID uint64, method string, doc []byte) error { +func (c *DIDAlgoStorageClient) submitToProvider( + network string, + pub []byte, + appID uint64, + method string, + doc []byte, +) error { networkClient := c.Networks[network] c.log.Warning("using provider: ", networkClient.profile.StoreProvider) diff --git a/client/internal/utils.go b/client/internal/utils.go index 90138ed..90a5be3 100644 --- a/client/internal/utils.go +++ b/client/internal/utils.go @@ -28,7 +28,7 @@ const ( betanetGenesisHash = "mFgazF+2uRS1tMiL9dsj01hJGySEmPN28B/TjjvpVW0=" ) -// CreateApp is used to deploy the AlgoDID storage smart contract to the +// CreateApp is used to deploy the DIDAlgoStorage smart contract to the // Algorand network. func CreateApp( algodClient *algod.Client, @@ -121,7 +121,7 @@ func CreateApp( return confirmedTxn.ApplicationIndex, nil } -// publishDID is used to upload a new DID document to the AlgoDID +// publishDID is used to upload a new DID document to the DIDAlgoStorage // storage smart contract. func publishDID( algodClient *algod.Client, @@ -309,7 +309,7 @@ func checkNetwork(network string, algodClient *algod.Client) error { return nil } -// ResolveDID is used to read the DID document from the AlgoDID storage smart +// ResolveDID is used to read the DID document from the DIDAlgoStorage smart // contract. func ResolveDID(appID uint64, pubKey []byte, algodClient *algod.Client, network string) ([]byte, error) { err := checkNetwork(network, algodClient) @@ -343,7 +343,7 @@ func ResolveDID(appID uint64, pubKey []byte, algodClient *algod.Client, network return data, nil } -// DeleteDID is used to delete the DID document from the AlgoDID +// DeleteDID is used to delete the DID document from the DIDAlgoStorage // storage smart contract. func deleteDID( appID uint64, diff --git a/client/ui/api.go b/client/ui/api.go index b0c3d8e..9c2522d 100644 --- a/client/ui/api.go +++ b/client/ui/api.go @@ -22,7 +22,7 @@ type LocalAPI struct { } // LocalAPIServer creates a new instance of the local API server. -func LocalAPIServer(st *store.LocalStore, client *internal.AlgoDIDClient, log xlog.Logger) (*LocalAPI, error) { +func LocalAPIServer(st *store.LocalStore, client *internal.DIDAlgoStorageClient, log xlog.Logger) (*LocalAPI, error) { // provider instances p := &Provider{ st: st, diff --git a/client/ui/api_test.go b/client/ui/api_test.go index f9b64fa..041ca2f 100644 --- a/client/ui/api_test.go +++ b/client/ui/api_test.go @@ -132,7 +132,7 @@ func TestMain(m *testing.M) { // // Algod node access token. // NodeToken string `json:"node_token,omitempty" yaml:"node_token,omitempty" mapstructure:"node_token"` - // // Application ID for the AlgoDID storage smart contract. + // // Application ID for the DIDAlgoStorage smart contract. // AppID uint `json:"app_id" yaml:"app_id" mapstructure:"app_id"` // // Storage contract provider server, if any. diff --git a/client/ui/provider.go b/client/ui/provider.go index 4eb4501..b885cf3 100644 --- a/client/ui/provider.go +++ b/client/ui/provider.go @@ -20,7 +20,7 @@ import ( type Provider struct { st *store.LocalStore log xlog.Logger - client *internal.AlgoDIDClient + client *internal.DIDAlgoStorageClient } // LocalEntry represents a DID instance stored in the local diff --git a/reference_contract/.eslintrc.js b/reference_contract/.eslintrc.js new file mode 100644 index 0000000..69b3fcb --- /dev/null +++ b/reference_contract/.eslintrc.js @@ -0,0 +1,57 @@ +module.exports = { + env: { + browser: true, + es2021: true, + }, + extends: [ + 'airbnb-base', + 'plugin:import/errors', + 'plugin:import/warnings', + 'plugin:import/typescript', + ], + parser: '@typescript-eslint/parser', + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + plugins: [ + '@typescript-eslint', + ], + rules: { + '@typescript-eslint/no-explicit-any': 'error', + '@typescript-eslint/ban-ts-comment': 'warn', + 'import/prefer-default-export': 'off', + 'import/extensions': [ + 'error', + 'ignorePackages', + { + js: 'never', + jsx: 'never', + ts: 'never', + tsx: 'never', + }, + ], + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: [ + '**/*.test.ts', + ], + }, + ], + }, + overrides: [ + { + files: ['*.algo.ts'], + rules: { + 'object-shorthand': 'off', + 'class-methods-use-this': 'off', + 'no-undef': 'off', + 'max-classes-per-file': 'off', + 'no-bitwise': 'off', + 'operator-assignment': 'off', + 'prefer-template': 'off', + }, + }, + ], +}; diff --git a/reference_contract/.gitignore b/reference_contract/.gitignore new file mode 100644 index 0000000..40b878d --- /dev/null +++ b/reference_contract/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/reference_contract/README.md b/reference_contract/README.md new file mode 100644 index 0000000..ee09a85 --- /dev/null +++ b/reference_contract/README.md @@ -0,0 +1,15 @@ +# Reference Contract + +This is the reference implementation of the contract that will be used to store the DIDDocuments for `did:algo`. This is the contract that is used by the CLI tool by default when deploying a new contract. + +It should be noted that the `did:algo` spec will work with any contract that implements the ABI interface defined in [the ARC4 JSON description](./contracts/artifacts/DIDAlgoStorage.arc4.json) and the `did:algo` [spec](../SPEC.md). + +## Tests + +Tests for the contract can be found at [here](./__test__/did-algo-storage.test.ts). + +## Interacting With Contract + +Golang code for interacting with this contract can be seen [here](../client/internal/main.go). + +TypeScript code for interacting with this contract can be seen [here](./src/index.ts). diff --git a/reference_contract/__test__/DIDocument.json b/reference_contract/__test__/DIDocument.json new file mode 100644 index 0000000..d8e39b2 --- /dev/null +++ b/reference_contract/__test__/DIDocument.json @@ -0,0 +1,19 @@ +{ + "@context": [ + "https://www.w3.org/ns/did/v1", + "https://w3id.org/security/suites/ed25519-2020/v1", + "https://w3id.org/security/suites/x25519-2020/v1" + ], + "id": "did:algo:testnet:app:683630753:98e39ab73670526e13a0ef4a64cca7792bf1d418b9ff8dc44121b1c61dae9526", + "verificationMethod": [ + { + "id": "did:algo:testnet:app:683630753:98e39ab73670526e13a0ef4a64cca7792bf1d418b9ff8dc44121b1c61dae9526#master", + "type": "Ed25519VerificationKey2020", + "controller": "did:algo:testnet:app:683630753:98e39ab73670526e13a0ef4a64cca7792bf1d418b9ff8dc44121b1c61dae9526", + "publicKeyMultibase": "zBHpGLoenrbXcHhsJW5htp8VDpmWgMcCEHJdaEA6rVmxq" + } + ], + "authentication": [ + "did:algo:testnet:app:683630753:98e39ab73670526e13a0ef4a64cca7792bf1d418b9ff8dc44121b1c61dae9526#master" + ] +} diff --git a/reference_contract/__test__/TEAL.pdf b/reference_contract/__test__/TEAL.pdf new file mode 100644 index 0000000..eb56c4a Binary files /dev/null and b/reference_contract/__test__/TEAL.pdf differ diff --git a/reference_contract/__test__/common.ts b/reference_contract/__test__/common.ts new file mode 100644 index 0000000..aeb4955 --- /dev/null +++ b/reference_contract/__test__/common.ts @@ -0,0 +1,6 @@ +/* eslint-disable func-names */ +import algosdk from 'algosdk'; + +export const indexerClient = new algosdk.Indexer('a'.repeat(64), 'http://localhost', 8980); +export const algodClient = new algosdk.Algodv2('a'.repeat(64), 'http://localhost', 4001); +export const kmdClient = new algosdk.Kmd('a'.repeat(64), 'http://localhost', 4002); diff --git a/reference_contract/__test__/did-algo-storage.test.ts b/reference_contract/__test__/did-algo-storage.test.ts new file mode 100644 index 0000000..b6adeb2 --- /dev/null +++ b/reference_contract/__test__/did-algo-storage.test.ts @@ -0,0 +1,153 @@ +/* eslint-disable no-plusplus */ +import * as algokit from '@algorandfoundation/algokit-utils'; +import fs from 'fs'; +import { ApplicationClient } from '@algorandfoundation/algokit-utils/types/app-client'; +import { + describe, expect, beforeAll, it, jest, +} from '@jest/globals'; +import algosdk from 'algosdk'; +import { algodClient, kmdClient } from './common'; +import appSpec from '../contracts/artifacts/DIDAlgoStorage.arc32.json'; +import { + resolveDID, uploadDIDDocument, deleteDIDDocument, updateDIDDocument, +} from '../src/index'; + +jest.setTimeout(20000); + +describe('Algorand DID', () => { + /** + * Large data (> 32k) to simulate a large DID Document + * that needs to be put into multiple boxes + */ + const bigData = fs.readFileSync(`${__dirname}/TEAL.pdf`); + + /** + * Small data (< 32k) to simulate a small DID Document + * that can fit into a single box + */ + const smallJSONObject = { keyOne: 'foo', keyTwo: 'bar' }; + + /** The public key for the user in the tests that has a big DID Document */ + const bigDataUserKey = algosdk.decodeAddress(algosdk.generateAccount().addr).publicKey; + + /** The public key for the user in the tests that has a small DID Document */ + const smallDataUserKey = algosdk.decodeAddress(algosdk.generateAccount().addr).publicKey; + + /** The public key for the user in the tests that updates their DID Document */ + const updateDataUserKey = algosdk.decodeAddress(algosdk.generateAccount().addr).publicKey; + + /** algokti appClient for interacting with the contract */ + let appClient: ApplicationClient; + + /** The account that will be used to create and call the contract */ + let sender: algosdk.Account; + + /** The ID of the contract */ + let appId: number; + + beforeAll(async () => { + sender = await algokit.getDispenserAccount(algodClient, kmdClient); + + appClient = new ApplicationClient({ + resolveBy: 'id', + id: 0, + sender, + app: JSON.stringify(appSpec), + }, algodClient); + + await appClient.create({ method: 'createApplication', methodArgs: [], sendParams: { suppressLog: true } }); + + await appClient.fundAppAccount({ + amount: algokit.microAlgos(100_000), + sendParams: { suppressLog: true }, + }); + + appId = Number((await appClient.getAppReference()).appId); + }); + + describe('uploadDIDDocument and Resolve', () => { + it('(LARGE) DIDocument upload and resolve', async () => { + const { appId } = await appClient.getAppReference(); + const pubkeyHex = Buffer.from(bigDataUserKey).toString('hex'); + + // Large upload + await uploadDIDDocument(bigData, Number(appId), bigDataUserKey, sender, algodClient); + + // Reconstruct DID from several boxes + const resolvedData: Buffer = await resolveDID(`did:algo:custom:app:${appId}:${pubkeyHex}`, algodClient); + expect(resolvedData.toString('hex')).toEqual(bigData.toString('hex')); + }); + + it('(SMALL) DIDocument upload and resolve', async () => { + const { appId } = await appClient.getAppReference(); + const pubkeyHex = Buffer.from(smallDataUserKey).toString('hex'); + + // Small upload + await uploadDIDDocument( + Buffer.from(JSON.stringify(smallJSONObject)), + Number(appId), + smallDataUserKey, + sender, + algodClient, + ); + + // Reconstruct DID from several boxes + const resolvedData: Buffer = await resolveDID(`did:algo:custom:app:${appId}:${pubkeyHex}`, algodClient); + expect(resolvedData.toString('hex')).toEqual(Buffer.from(JSON.stringify(smallJSONObject)).toString('hex')); + }); + }); + + describe('deleteDIDDocument', () => { + const deleteDIDDocumentTest = async (userKey: Uint8Array) => { + await deleteDIDDocument(appId, userKey, sender, algodClient); + const pubkeyHex = Buffer.from(userKey).toString('hex'); + + await expect(resolveDID(`did:algo:custom:app:${appId}:${pubkeyHex}`, algodClient)).rejects.toThrow(); + }; + + it('deletes big (multi-box) data', async () => { + await deleteDIDDocumentTest(bigDataUserKey); + }); + + it('deletes small (single-box) data', async () => { + await deleteDIDDocumentTest(smallDataUserKey); + }); + + it('returns MBR', async () => { + const { appAddress } = await appClient.getAppReference(); + const appAmount = (await algodClient.accountInformation(appAddress).do()).amount; + + expect(appAmount).toBe(100_000); + }); + }); + + describe('updateDocument', () => { + beforeAll(async () => { + // Initially upload the big data as the DID Document + await uploadDIDDocument( + bigData, + appId, + updateDataUserKey, + sender, + algodClient, + ); + }); + + it('uploads and resolves new data', async () => { + // Update the DID Document to be the small data + const data = Buffer.from(JSON.stringify(smallJSONObject)); + await updateDIDDocument( + data, + appId, + updateDataUserKey, + sender, + algodClient, + ); + + const pubkeyHex = Buffer.from(updateDataUserKey).toString('hex'); + const resolvedData = await resolveDID(`did:algo:custom:app:${appId}:${pubkeyHex}`, algodClient); + + expect(resolvedData.toString()).toEqual(JSON.stringify(smallJSONObject)); + }); + }); +}); diff --git a/reference_contract/contracts/artifacts/.gitkeep b/reference_contract/contracts/artifacts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.approval.teal b/reference_contract/contracts/artifacts/DIDAlgoStorage.approval.teal new file mode 100644 index 0000000..186e5cc --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.approval.teal @@ -0,0 +1,676 @@ +#pragma version 10 + +// This TEAL was generated by TEALScript v0.96.0 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +int 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *call_UpdateApplication *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? + err + +// startUpload(address,uint64,uint64,pay)void +*abi_route_startUpload: + // mbrPayment: pay + txn GroupIndex + int 1 + - + dup + gtxns TypeEnum + int pay + == + + // argument 0 (mbrPayment) for startUpload must be a pay transaction + assert + + // endBoxSize: uint64 + txna ApplicationArgs 3 + btoi + + // numBoxes: uint64 + txna ApplicationArgs 2 + btoi + + // pubKey: address + txna ApplicationArgs 1 + dup + len + int 32 + == + + // argument 3 (pubKey) for startUpload must be a address + assert + + // execute startUpload(address,uint64,uint64,pay)void + callsub startUpload + int 1 + return + +// startUpload(pubKey: Address, numBoxes: uint64, endBoxSize: uint64, mbrPayment: PayTxn): void +// +// +// Allocate boxes to begin data upload process +// +// @param pubKey The pubkey of the DID +// @param numBoxes The number of boxes that the data will take up +// @param endBoxSize The size of the last box +// @param mbrPayment Payment from the uploader to cover the box MBR +startUpload: + proto 4 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + dupn 3 + + // contracts/did-algo-storage.algo.ts:63 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + + // contracts/did-algo-storage.algo.ts:65 + // startBox = this.currentIndex.value + byte 0x63757272656e74496e646578 // "currentIndex" + app_global_get + frame_bury 0 // startBox: uint64 + + // contracts/did-algo-storage.algo.ts:66 + // endBox = startBox + numBoxes - 1 + frame_dig 0 // startBox: uint64 + frame_dig -2 // numBoxes: uint64 + + + int 1 + - + frame_bury 1 // endBox: uint64 + + // contracts/did-algo-storage.algo.ts:68 + // metadata: Metadata = { + // start: startBox, end: endBox, status: UPLOADING, endSize: endBoxSize, lastDeleted: 0, + // } + frame_dig 0 // startBox: uint64 + itob + frame_dig 1 // endBox: uint64 + itob + concat + byte 0x00 + concat + frame_dig -3 // endBoxSize: uint64 + itob + concat + byte 0x0000000000000000 + concat + frame_bury 2 // metadata: Metadata + + // contracts/did-algo-storage.algo.ts:72 + // assert(!this.metadata(pubKey).exists) + frame_dig -1 // pubKey: Address + box_len + swap + pop + ! + assert + + // contracts/did-algo-storage.algo.ts:74 + // this.metadata(pubKey).value = metadata + frame_dig -1 // pubKey: Address + frame_dig 2 // metadata: Metadata + box_put + + // contracts/did-algo-storage.algo.ts:76 + // this.currentIndex.value = endBox + 1 + byte 0x63757272656e74496e646578 // "currentIndex" + frame_dig 1 // endBox: uint64 + int 1 + + + app_global_put + + // contracts/did-algo-storage.algo.ts:78 + // totalCost = numBoxes * COST_PER_BOX // cost of data boxes + // + (numBoxes - 1) * MAX_BOX_SIZE * COST_PER_BYTE // cost of data + // + numBoxes * 8 * COST_PER_BYTE // cost of data keys + // + endBoxSize * COST_PER_BYTE // cost of last data box + // + COST_PER_BOX + (8 + 8 + 1 + 8 + 32 + 8) * COST_PER_BYTE + frame_dig -2 // numBoxes: uint64 + int 2500 + * + frame_dig -2 // numBoxes: uint64 + int 1 + - + int 32768 + * + int 400 + * + + + frame_dig -2 // numBoxes: uint64 + int 8 + * + int 400 + * + + + frame_dig -3 // endBoxSize: uint64 + int 400 + * + + + int 2500 + + + int 26000 + + + frame_bury 3 // totalCost: uint64 + + // contracts/did-algo-storage.algo.ts:84 + // assert(mbrPayment.amount === totalCost) + frame_dig -4 // mbrPayment: PayTxn + gtxns Amount + frame_dig 3 // totalCost: uint64 + == + assert + + // contracts/did-algo-storage.algo.ts:85 + // assert(mbrPayment.receiver === this.app.address) + frame_dig -4 // mbrPayment: PayTxn + gtxns Receiver + global CurrentApplicationAddress + == + assert + retsub + +// upload(address,uint64,uint64,byte[])void +*abi_route_upload: + // data: byte[] + txna ApplicationArgs 4 + extract 2 0 + + // offset: uint64 + txna ApplicationArgs 3 + btoi + + // boxIndex: uint64 + txna ApplicationArgs 2 + btoi + + // pubKey: address + txna ApplicationArgs 1 + dup + len + int 32 + == + + // argument 3 (pubKey) for upload must be a address + assert + + // execute upload(address,uint64,uint64,byte[])void + callsub upload + int 1 + return + +// upload(pubKey: Address, boxIndex: uint64, offset: uint64, data: bytes): void +// +// +// Upload data to a specific offset in a box +// +// @param pubKey The pubkey of the DID +// @param boxIndex The index of the box to upload the given chunk of data to +// @param offset The offset within the box to start writing the data +// @param data The data to write +upload: + proto 4 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + + // contracts/did-algo-storage.algo.ts:98 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + + // contracts/did-algo-storage.algo.ts:100 + // metadata = this.metadata(pubKey).value + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata + + // contracts/did-algo-storage.algo.ts:101 + // assert(metadata.status === UPLOADING) + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 0 + == + assert + + // contracts/did-algo-storage.algo.ts:102 + // assert(metadata.start <= boxIndex && boxIndex <= metadata.end) + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract + btoi + frame_dig -2 // boxIndex: uint64 + <= + dup + bz *skip_and0 + frame_dig -2 // boxIndex: uint64 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract + btoi + <= + && + +*skip_and0: + assert + + // *if0_condition + // contracts/did-algo-storage.algo.ts:104 + // offset === 0 + frame_dig -3 // offset: uint64 + int 0 + == + bz *if0_end + + // *if0_consequent + // contracts/did-algo-storage.algo.ts:105 + // this.dataBoxes(boxIndex).create(boxIndex === metadata.end ? metadata.endSize : MAX_BOX_SIZE) + frame_dig -2 // boxIndex: uint64 + itob + frame_dig -2 // boxIndex: uint64 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract + btoi + == + bz *ternary0_false + frame_dig -1 // pubKey: Address + int 17 // headOffset + int 8 + box_extract + btoi + b *ternary0_end + +*ternary0_false: + int 32768 + +*ternary0_end: + box_create + pop + +*if0_end: + // contracts/did-algo-storage.algo.ts:108 + // this.dataBoxes(boxIndex).replace(offset, data) + frame_dig -2 // boxIndex: uint64 + itob + frame_dig -3 // offset: uint64 + frame_dig -4 // data: bytes + box_replace + retsub + +// finishUpload(address)void +*abi_route_finishUpload: + // pubKey: address + txna ApplicationArgs 1 + dup + len + int 32 + == + + // argument 0 (pubKey) for finishUpload must be a address + assert + + // execute finishUpload(address)void + callsub finishUpload + int 1 + return + +// finishUpload(pubKey: Address): void +// +// +// Mark uploading as false +// +// @param pubKey The address of the DID +finishUpload: + proto 1 0 + + // contracts/did-algo-storage.algo.ts:118 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + + // contracts/did-algo-storage.algo.ts:120 + // this.metadata(pubKey).value.status = READY + frame_dig -1 // pubKey: Address + int 16 // headOffset + byte 0x01 + box_replace + retsub + +// startDelete(address)void +*abi_route_startDelete: + // pubKey: address + txna ApplicationArgs 1 + dup + len + int 32 + == + + // argument 0 (pubKey) for startDelete must be a address + assert + + // execute startDelete(address)void + callsub startDelete + int 1 + return + +// startDelete(pubKey: Address): void +// +// Starts the deletion process for the data associated with a DID +// +// @param pubKey The address of the DID +startDelete: + proto 1 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + + // contracts/did-algo-storage.algo.ts:129 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + + // contracts/did-algo-storage.algo.ts:131 + // metadata = this.metadata(pubKey).value + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata + + // contracts/did-algo-storage.algo.ts:132 + // assert(metadata.status === READY) + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 1 + == + assert + + // contracts/did-algo-storage.algo.ts:134 + // metadata.status = DELETING + frame_dig 0 // storage key//metadata + int 16 // headOffset + byte 0x02 + box_replace + retsub + +// deleteData(address,uint64)void +*abi_route_deleteData: + // boxIndex: uint64 + txna ApplicationArgs 2 + btoi + + // pubKey: address + txna ApplicationArgs 1 + dup + len + int 32 + == + + // argument 1 (pubKey) for deleteData must be a address + assert + + // execute deleteData(address,uint64)void + callsub deleteData + int 1 + return + +// deleteData(pubKey: Address, boxIndex: uint64): void +// +// Deletes a box of data +// +// @param pubKey The address of the DID +// @param boxIndex The index of the box to delete +deleteData: + proto 2 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + byte 0x + dup + + // contracts/did-algo-storage.algo.ts:144 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + + // contracts/did-algo-storage.algo.ts:146 + // metadata = this.metadata(pubKey).value + frame_dig -1 // pubKey: Address + frame_bury 0 // storage key//metadata + + // contracts/did-algo-storage.algo.ts:147 + // assert(metadata.status === DELETING) + frame_dig -1 // pubKey: Address + int 16 // headOffset + int 1 + box_extract + btoi + int 2 + == + assert + + // contracts/did-algo-storage.algo.ts:148 + // assert(metadata.start <= boxIndex && boxIndex <= metadata.end) + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract + btoi + frame_dig -2 // boxIndex: uint64 + <= + dup + bz *skip_and1 + frame_dig -2 // boxIndex: uint64 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract + btoi + <= + && + +*skip_and1: + assert + + // *if1_condition + // contracts/did-algo-storage.algo.ts:150 + // boxIndex !== metadata.start + frame_dig -2 // boxIndex: uint64 + frame_dig -1 // pubKey: Address + int 0 + int 8 + box_extract + btoi + != + bz *if1_end + + // *if1_consequent + // contracts/did-algo-storage.algo.ts:150 + // assert(metadata.lastDeleted === boxIndex - 1) + frame_dig -1 // pubKey: Address + int 25 // headOffset + int 8 + box_extract + btoi + frame_dig -2 // boxIndex: uint64 + int 1 + - + == + assert + +*if1_end: + // contracts/did-algo-storage.algo.ts:152 + // preMBR = globals.currentApplicationAddress.minBalance + global CurrentApplicationAddress + acct_params_get AcctMinBalance + pop + frame_bury 1 // preMBR: uint64 + + // contracts/did-algo-storage.algo.ts:154 + // this.dataBoxes(boxIndex).delete() + frame_dig -2 // boxIndex: uint64 + itob + box_del + + // *if2_condition + // contracts/did-algo-storage.algo.ts:156 + // boxIndex === metadata.end + frame_dig -2 // boxIndex: uint64 + frame_dig -1 // pubKey: Address + int 8 // headOffset + int 8 + box_extract + btoi + == + bz *if2_else + + // *if2_consequent + // contracts/did-algo-storage.algo.ts:156 + // this.metadata(pubKey).delete() + frame_dig -1 // pubKey: Address + box_del + b *if2_end + +*if2_else: + // contracts/did-algo-storage.algo.ts:157 + // metadata.lastDeleted = boxIndex + int 25 // headOffset + frame_dig -2 // boxIndex: uint64 + itob + frame_dig 0 // storage key//metadata + cover 2 + box_replace + +*if2_end: + // contracts/did-algo-storage.algo.ts:159 + // sendPayment({ + // amount: preMBR - globals.currentApplicationAddress.minBalance, + // receiver: this.txn.sender, + // }) + itxn_begin + int pay + itxn_field TypeEnum + + // contracts/did-algo-storage.algo.ts:160 + // amount: preMBR - globals.currentApplicationAddress.minBalance + frame_dig 1 // preMBR: uint64 + global CurrentApplicationAddress + acct_params_get AcctMinBalance + pop + - + itxn_field Amount + + // contracts/did-algo-storage.algo.ts:161 + // receiver: this.txn.sender + txn Sender + itxn_field Receiver + + // Fee field not set, defaulting to 0 + int 0 + itxn_field Fee + + // Submit inner transaction + itxn_submit + retsub + +// updateApplication()void +*abi_route_updateApplication: + // execute updateApplication()void + callsub updateApplication + int 1 + return + +// updateApplication(): void +// +// Allow the contract to be updated by the creator +updateApplication: + proto 0 0 + + // contracts/did-algo-storage.algo.ts:169 + // assert(this.txn.sender === globals.creatorAddress) + txn Sender + global CreatorAddress + == + assert + retsub + +// dummy()void +*abi_route_dummy: + // execute dummy()void + callsub dummy + int 1 + return + +// dummy(): void +// +// Dummy function to add extra box references for deleteData. +// Boxes are 32k, but a single app call can only inlcude enough references to read/write 8k +// at a time. Thus when a box is deleted, we need to add additional dummy calls with box +// references to increase the total read/write budget to 32k. +dummy: + proto 0 0 + retsub + +*abi_route_createApplication: + int 1 + return + +*create_NoOp: + method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp + err + +*call_NoOp: + method "startUpload(address,uint64,uint64,pay)void" + method "upload(address,uint64,uint64,byte[])void" + method "finishUpload(address)void" + method "startDelete(address)void" + method "deleteData(address,uint64)void" + method "dummy()void" + txna ApplicationArgs 0 + match *abi_route_startUpload *abi_route_upload *abi_route_finishUpload *abi_route_startDelete *abi_route_deleteData *abi_route_dummy + + // this contract does not implement the given ABI method for call NoOp + err + +*call_UpdateApplication: + method "updateApplication()void" + txna ApplicationArgs 0 + match *abi_route_updateApplication + + // this contract does not implement the given ABI method for call UpdateApplication + err \ No newline at end of file diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.arc32.json b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc32.json new file mode 100644 index 0000000..c72c61e --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc32.json @@ -0,0 +1,214 @@ +{ + "hints": { + "startUpload(address,uint64,uint64,pay)void": { + "call_config": { + "no_op": "CALL" + } + }, + "upload(address,uint64,uint64,byte[])void": { + "call_config": { + "no_op": "CALL" + } + }, + "finishUpload(address)void": { + "call_config": { + "no_op": "CALL" + } + }, + "startDelete(address)void": { + "call_config": { + "no_op": "CALL" + } + }, + "deleteData(address,uint64)void": { + "call_config": { + "no_op": "CALL" + } + }, + "updateApplication()void": { + "call_config": { + "update_application": "CALL" + } + }, + "dummy()void": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "currentIndex": { + "type": "uint64", + "key": "currentIndex" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 0, + "num_uints": 1 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjk2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9zdGFydFVwbG9hZDoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBzdGFydFVwbG9hZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1YktleSkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQocHViS2V5OiBBZGRyZXNzLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NQoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2OAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LCBlbmQ6IGVuZEJveCwgc3RhdHVzOiBVUExPQURJTkcsIGVuZFNpemU6IGVuZEJveFNpemUsIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEocHViS2V5KS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6NzQKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc4CgkvLyB0b3RhbENvc3QgPSBudW1Cb3hlcyAqIENPU1RfUEVSX0JPWCAvLyBjb3N0IG9mIGRhdGEgYm94ZXMKCS8vICAgICArIChudW1Cb3hlcyAtIDEpICogTUFYX0JPWF9TSVpFICogQ09TVF9QRVJfQllURSAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICArIG51bUJveGVzICogOCAqIENPU1RfUEVSX0JZVEUgLy8gY29zdCBvZiBkYXRhIGtleXMKCS8vICAgICArIGVuZEJveFNpemUgKiBDT1NUX1BFUl9CWVRFIC8vIGNvc3Qgb2YgbGFzdCBkYXRhIGJveAoJLy8gICAgICsgQ09TVF9QRVJfQk9YICsgKDggKyA4ICsgMSArIDggKyAzMiArIDgpICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA4CgkqCglpbnQgNDAwCgkqCgkrCglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpbnQgNDAwCgkqCgkrCglpbnQgMjUwMAoJKwoJaW50IDI2MDAwCgkrCglmcmFtZV9idXJ5IDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQobWJyUGF5bWVudC5hbW91bnQgPT09IHRvdGFsQ29zdCkKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYWRkcmVzcyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChwdWJLZXkpIGZvciB1cGxvYWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgcHVia2V5IG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6OTgKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMQoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gVVBMT0FESU5HKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWludCAxCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMDQKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwNQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZmluaXNoVXBsb2FkOgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHB1YktleSkgZm9yIGZpbmlzaFVwbG9hZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGZpbmlzaFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gZmluaXNoVXBsb2FkKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8KLy8gTWFyayB1cGxvYWRpbmcgYXMgZmFsc2UKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmZpbmlzaFVwbG9hZDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZS5zdGF0dXMgPSBSRUFEWQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWJ5dGUgMHgwMQoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc3RhcnREZWxldGU6CgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocHViS2V5KSBmb3Igc3RhcnREZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHN0YXJ0RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydERlbGV0ZShwdWJLZXk6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIFN0YXJ0cyB0aGUgZGVsZXRpb24gcHJvY2VzcyBmb3IgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgRElECi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRApzdGFydERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjkKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMQoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gUkVBRFkpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTM0CgkvLyBtZXRhZGF0YS5zdGF0dXMgPSBERUxFVElORwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJYnl0ZSAweDAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVEYXRhOgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChwdWJLZXkpIGZvciBkZWxldGVEYXRhIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRlbGV0ZURhdGEoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiBkZWxldGVEYXRhCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVEYXRhKHB1YktleTogQWRkcmVzcywgYm94SW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGJveCBvZiBkYXRhCi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRAovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gZGVsZXRlCmRlbGV0ZURhdGE6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNDQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gREVMRVRJTkcpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMToKCWFzc2VydAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYm94SW5kZXggIT09IG1ldGFkYXRhLnN0YXJ0CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYXNzZXJ0KG1ldGFkYXRhLmxhc3REZWxldGVkID09PSBib3hJbmRleCAtIDEpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMjUgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaW50IDEKCS0KCT09Cglhc3NlcnQKCippZjFfZW5kOgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNTIKCS8vIHByZU1CUiA9IGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMSAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU0CgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglib3hfZGVsCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKmlmMl9lbHNlCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfZGVsCgliICppZjJfZW5kCgoqaWYyX2Vsc2U6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NwoJLy8gbWV0YWRhdGEubGFzdERlbGV0ZWQgPSBib3hJbmRleAoJaW50IDI1IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyX2VuZDoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBwcmVNQlI6IHVpbnQ2NAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYxCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKTogdm9pZAovLwovLyBBbGxvdyB0aGUgY29udHJhY3QgdG8gYmUgdXBkYXRlZCBieSB0aGUgY3JlYXRvcgp1cGRhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGR1bW15KCl2b2lkCiphYmlfcm91dGVfZHVtbXk6CgkvLyBleGVjdXRlIGR1bW15KCl2b2lkCgljYWxsc3ViIGR1bW15CglpbnQgMQoJcmV0dXJuCgovLyBkdW1teSgpOiB2b2lkCi8vCi8vIER1bW15IGZ1bmN0aW9uIHRvIGFkZCBleHRyYSBib3ggcmVmZXJlbmNlcyBmb3IgZGVsZXRlRGF0YS4KLy8gQm94ZXMgYXJlIDMyaywgYnV0IGEgc2luZ2xlIGFwcCBjYWxsIGNhbiBvbmx5IGlubGN1ZGUgZW5vdWdoIHJlZmVyZW5jZXMgdG8gcmVhZC93cml0ZSA4awovLyBhdCBhIHRpbWUuIFRodXMgd2hlbiBhIGJveCBpcyBkZWxldGVkLCB3ZSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIGR1bW15IGNhbGxzIHdpdGggYm94Ci8vIHJlZmVyZW5jZXMgdG8gaW5jcmVhc2UgdGhlIHRvdGFsIHJlYWQvd3JpdGUgYnVkZ2V0IHRvIDMyay4KZHVtbXk6Cglwcm90byAwIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluaXNoVXBsb2FkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAic3RhcnREZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQiCgltZXRob2QgImR1bW15KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGFydFVwbG9hZCAqYWJpX3JvdXRlX3VwbG9hZCAqYWJpX3JvdXRlX2ZpbmlzaFVwbG9hZCAqYWJpX3JvdXRlX3N0YXJ0RGVsZXRlICphYmlfcm91dGVfZGVsZXRlRGF0YSAqYWJpX3JvdXRlX2R1bW15CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "DIDAlgoStorage", + "desc": "", + "methods": [ + { + "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "numBoxes", + "type": "uint64", + "desc": "The number of boxes that the data will take up" + }, + { + "name": "endBoxSize", + "type": "uint64", + "desc": "The size of the last box" + }, + { + "name": "mbrPayment", + "type": "pay", + "desc": "Payment from the uploader to cover the box MBR" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "upload", + "desc": "Upload data to a specific offset in a box", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to upload the given chunk of data to" + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset within the box to start writing the data" + }, + { + "name": "data", + "type": "byte[]", + "desc": "The data to write" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "finishUpload", + "desc": "Mark uploading as false", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "deleteData", + "desc": "Deletes a box of data", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to delete" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "updateApplication", + "desc": "Allow the contract to be updated by the creator", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.arc4.json b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc4.json new file mode 100644 index 0000000..9fc6009 --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc4.json @@ -0,0 +1,134 @@ +{ + "name": "DIDAlgoStorage", + "desc": "", + "methods": [ + { + "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "numBoxes", + "type": "uint64", + "desc": "The number of boxes that the data will take up" + }, + { + "name": "endBoxSize", + "type": "uint64", + "desc": "The size of the last box" + }, + { + "name": "mbrPayment", + "type": "pay", + "desc": "Payment from the uploader to cover the box MBR" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "upload", + "desc": "Upload data to a specific offset in a box", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to upload the given chunk of data to" + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset within the box to start writing the data" + }, + { + "name": "data", + "type": "byte[]", + "desc": "The data to write" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "finishUpload", + "desc": "Mark uploading as false", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "deleteData", + "desc": "Deletes a box of data", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to delete" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "updateApplication", + "desc": "Allow the contract to be updated by the creator", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", + "args": [], + "returns": { + "type": "void" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.arc56_draft.json b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc56_draft.json new file mode 100644 index 0000000..3f017ac --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.arc56_draft.json @@ -0,0 +1,3189 @@ +{ + "name": "DIDAlgoStorage", + "desc": "", + "methods": [ + { + "name": "startUpload", + "desc": "Allocate boxes to begin data upload process", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "numBoxes", + "type": "uint64", + "desc": "The number of boxes that the data will take up" + }, + { + "name": "endBoxSize", + "type": "uint64", + "desc": "The size of the last box" + }, + { + "name": "mbrPayment", + "type": "pay", + "desc": "Payment from the uploader to cover the box MBR" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "upload", + "desc": "Upload data to a specific offset in a box", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The pubkey of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to upload the given chunk of data to" + }, + { + "name": "offset", + "type": "uint64", + "desc": "The offset within the box to start writing the data" + }, + { + "name": "data", + "type": "byte[]", + "desc": "The data to write" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "finishUpload", + "desc": "Mark uploading as false", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "startDelete", + "desc": "Starts the deletion process for the data associated with a DID", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "deleteData", + "desc": "Deletes a box of data", + "args": [ + { + "name": "pubKey", + "type": "address", + "desc": "The address of the DID" + }, + { + "name": "boxIndex", + "type": "uint64", + "desc": "The index of the box to delete" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "updateApplication", + "desc": "Allow the contract to be updated by the creator", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "UpdateApplication" + ] + } + }, + { + "name": "dummy", + "desc": "Dummy function to add extra box references for deleteData.Boxes are 32k, but a single app call can only inlcude enough references to read/write 8kat a time. Thus when a box is deleted, we need to add additional dummy calls with boxreferences to increase the total read/write budget to 32k.", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "Metadata": { + "start": "uint64", + "end": "uint64", + "status": "uint8", + "endSize": "uint64", + "lastDeleted": "uint64" + } + }, + "state": { + "schema": { + "global": { + "bytes": 0, + "ints": 1 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "currentIndex": { + "key": "Y3VycmVudEluZGV4", + "keyType": "bytes", + "valueType": "uint64" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": { + "dataBoxes": { + "keyType": "uint64", + "valueType": "bytes" + }, + "metadata": { + "keyType": "address", + "valueType": "Metadata" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": [ + { + "teal": 1, + "source": 38, + "pc": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + }, + { + "teal": 13, + "source": 38, + "pc": [ + 32, + 33 + ] + }, + { + "teal": 14, + "source": 38, + "pc": [ + 34 + ] + }, + { + "teal": 15, + "source": 38, + "pc": [ + 35, + 36 + ] + }, + { + "teal": 16, + "source": 38, + "pc": [ + 37 + ] + }, + { + "teal": 17, + "source": 38, + "pc": [ + 38, + 39 + ] + }, + { + "teal": 18, + "source": 38, + "pc": [ + 40 + ] + }, + { + "teal": 19, + "source": 38, + "pc": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ] + }, + { + "teal": 23, + "source": 38, + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 67 + ] + }, + { + "teal": 28, + "source": 61, + "pc": [ + 68, + 69 + ] + }, + { + "teal": 29, + "source": 61, + "pc": [ + 70 + ] + }, + { + "teal": 30, + "source": 61, + "pc": [ + 71 + ] + }, + { + "teal": 31, + "source": 61, + "pc": [ + 72 + ] + }, + { + "teal": 32, + "source": 61, + "pc": [ + 73, + 74 + ] + }, + { + "teal": 33, + "source": 61, + "pc": [ + 75 + ] + }, + { + "teal": 34, + "source": 61, + "pc": [ + 76 + ] + }, + { + "teal": 37, + "source": 61, + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", + "pc": [ + 77 + ] + }, + { + "teal": 40, + "source": 60, + "pc": [ + 78, + 79, + 80 + ] + }, + { + "teal": 41, + "source": 60, + "pc": [ + 81 + ] + }, + { + "teal": 44, + "source": 59, + "pc": [ + 82, + 83, + 84 + ] + }, + { + "teal": 45, + "source": 59, + "pc": [ + 85 + ] + }, + { + "teal": 48, + "source": 58, + "pc": [ + 86, + 87, + 88 + ] + }, + { + "teal": 49, + "source": 58, + "pc": [ + 89 + ] + }, + { + "teal": 50, + "source": 58, + "pc": [ + 90 + ] + }, + { + "teal": 51, + "source": 58, + "pc": [ + 91 + ] + }, + { + "teal": 52, + "source": 58, + "pc": [ + 92 + ] + }, + { + "teal": 55, + "source": 58, + "errorMessage": "argument 3 (pubKey) for startUpload must be a address", + "pc": [ + 93 + ] + }, + { + "teal": 58, + "source": 57, + "pc": [ + 94, + 95, + 96 + ] + }, + { + "teal": 59, + "source": 57, + "pc": [ + 97 + ] + }, + { + "teal": 60, + "source": 57, + "pc": [ + 98 + ] + }, + { + "teal": 72, + "source": 57, + "pc": [ + 99, + 100, + 101 + ] + }, + { + "teal": 75, + "source": 57, + "pc": [ + 102 + ] + }, + { + "teal": 76, + "source": 57, + "pc": [ + 103, + 104 + ] + }, + { + "teal": 80, + "source": 63, + "pc": [ + 105, + 106 + ] + }, + { + "teal": 81, + "source": 63, + "pc": [ + 107, + 108 + ] + }, + { + "teal": 82, + "source": 63, + "pc": [ + 109 + ] + }, + { + "teal": 83, + "source": 63, + "pc": [ + 110 + ] + }, + { + "teal": 87, + "source": 65, + "pc": [ + 111 + ] + }, + { + "teal": 88, + "source": 65, + "pc": [ + 112 + ] + }, + { + "teal": 89, + "source": 65, + "pc": [ + 113, + 114 + ] + }, + { + "teal": 93, + "source": 66, + "pc": [ + 115, + 116 + ] + }, + { + "teal": 94, + "source": 66, + "pc": [ + 117, + 118 + ] + }, + { + "teal": 95, + "source": 66, + "pc": [ + 119 + ] + }, + { + "teal": 96, + "source": 66, + "pc": [ + 120 + ] + }, + { + "teal": 97, + "source": 66, + "pc": [ + 121 + ] + }, + { + "teal": 98, + "source": 66, + "pc": [ + 122, + 123 + ] + }, + { + "teal": 104, + "source": 69, + "pc": [ + 124, + 125 + ] + }, + { + "teal": 105, + "source": 69, + "pc": [ + 126 + ] + }, + { + "teal": 106, + "source": 69, + "pc": [ + 127, + 128 + ] + }, + { + "teal": 107, + "source": 69, + "pc": [ + 129 + ] + }, + { + "teal": 108, + "source": 69, + "pc": [ + 130 + ] + }, + { + "teal": 109, + "source": 69, + "pc": [ + 131, + 132, + 133 + ] + }, + { + "teal": 110, + "source": 69, + "pc": [ + 134 + ] + }, + { + "teal": 111, + "source": 69, + "pc": [ + 135, + 136 + ] + }, + { + "teal": 112, + "source": 69, + "pc": [ + 137 + ] + }, + { + "teal": 113, + "source": 69, + "pc": [ + 138 + ] + }, + { + "teal": 114, + "source": 69, + "pc": [ + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148 + ] + }, + { + "teal": 115, + "source": 69, + "pc": [ + 149 + ] + }, + { + "teal": 116, + "source": 68, + "pc": [ + 150, + 151 + ] + }, + { + "teal": 120, + "source": 72, + "pc": [ + 152, + 153 + ] + }, + { + "teal": 121, + "source": 72, + "pc": [ + 154 + ] + }, + { + "teal": 122, + "source": 72, + "pc": [ + 155 + ] + }, + { + "teal": 123, + "source": 72, + "pc": [ + 156 + ] + }, + { + "teal": 124, + "source": 72, + "pc": [ + 157 + ] + }, + { + "teal": 125, + "source": 72, + "pc": [ + 158 + ] + }, + { + "teal": 129, + "source": 74, + "pc": [ + 159, + 160 + ] + }, + { + "teal": 130, + "source": 74, + "pc": [ + 161, + 162 + ] + }, + { + "teal": 131, + "source": 74, + "pc": [ + 163 + ] + }, + { + "teal": 135, + "source": 76, + "pc": [ + 164 + ] + }, + { + "teal": 136, + "source": 76, + "pc": [ + 165, + 166 + ] + }, + { + "teal": 137, + "source": 76, + "pc": [ + 167 + ] + }, + { + "teal": 138, + "source": 76, + "pc": [ + 168 + ] + }, + { + "teal": 139, + "source": 76, + "pc": [ + 169 + ] + }, + { + "teal": 147, + "source": 78, + "pc": [ + 170, + 171 + ] + }, + { + "teal": 148, + "source": 78, + "pc": [ + 172, + 173 + ] + }, + { + "teal": 149, + "source": 78, + "pc": [ + 174 + ] + }, + { + "teal": 150, + "source": 79, + "pc": [ + 175, + 176 + ] + }, + { + "teal": 151, + "source": 79, + "pc": [ + 177 + ] + }, + { + "teal": 152, + "source": 79, + "pc": [ + 178 + ] + }, + { + "teal": 153, + "source": 79, + "pc": [ + 179, + 180 + ] + }, + { + "teal": 154, + "source": 79, + "pc": [ + 181 + ] + }, + { + "teal": 155, + "source": 79, + "pc": [ + 182, + 183 + ] + }, + { + "teal": 156, + "source": 79, + "pc": [ + 184 + ] + }, + { + "teal": 157, + "source": 79, + "pc": [ + 185 + ] + }, + { + "teal": 158, + "source": 80, + "pc": [ + 186, + 187 + ] + }, + { + "teal": 159, + "source": 80, + "pc": [ + 188 + ] + }, + { + "teal": 160, + "source": 80, + "pc": [ + 189 + ] + }, + { + "teal": 161, + "source": 80, + "pc": [ + 190, + 191 + ] + }, + { + "teal": 162, + "source": 80, + "pc": [ + 192 + ] + }, + { + "teal": 163, + "source": 80, + "pc": [ + 193 + ] + }, + { + "teal": 164, + "source": 81, + "pc": [ + 194, + 195 + ] + }, + { + "teal": 165, + "source": 81, + "pc": [ + 196, + 197 + ] + }, + { + "teal": 166, + "source": 81, + "pc": [ + 198 + ] + }, + { + "teal": 167, + "source": 81, + "pc": [ + 199 + ] + }, + { + "teal": 168, + "source": 82, + "pc": [ + 200, + 201 + ] + }, + { + "teal": 169, + "source": 82, + "pc": [ + 202 + ] + }, + { + "teal": 170, + "source": 82, + "pc": [ + 203, + 204, + 205, + 206 + ] + }, + { + "teal": 171, + "source": 82, + "pc": [ + 207 + ] + }, + { + "teal": 172, + "source": 78, + "pc": [ + 208, + 209 + ] + }, + { + "teal": 176, + "source": 84, + "pc": [ + 210, + 211 + ] + }, + { + "teal": 177, + "source": 84, + "pc": [ + 212, + 213 + ] + }, + { + "teal": 178, + "source": 84, + "pc": [ + 214, + 215 + ] + }, + { + "teal": 179, + "source": 84, + "pc": [ + 216 + ] + }, + { + "teal": 180, + "source": 84, + "pc": [ + 217 + ] + }, + { + "teal": 184, + "source": 85, + "pc": [ + 218, + 219 + ] + }, + { + "teal": 185, + "source": 85, + "pc": [ + 220, + 221 + ] + }, + { + "teal": 186, + "source": 85, + "pc": [ + 222, + 223 + ] + }, + { + "teal": 187, + "source": 85, + "pc": [ + 224 + ] + }, + { + "teal": 188, + "source": 85, + "pc": [ + 225 + ] + }, + { + "teal": 189, + "source": 57, + "pc": [ + 226 + ] + }, + { + "teal": 194, + "source": 97, + "pc": [ + 227, + 228, + 229 + ] + }, + { + "teal": 195, + "source": 97, + "pc": [ + 230, + 231, + 232 + ] + }, + { + "teal": 198, + "source": 97, + "pc": [ + 233, + 234, + 235 + ] + }, + { + "teal": 199, + "source": 97, + "pc": [ + 236 + ] + }, + { + "teal": 202, + "source": 97, + "pc": [ + 237, + 238, + 239 + ] + }, + { + "teal": 203, + "source": 97, + "pc": [ + 240 + ] + }, + { + "teal": 206, + "source": 97, + "pc": [ + 241, + 242, + 243 + ] + }, + { + "teal": 207, + "source": 97, + "pc": [ + 244 + ] + }, + { + "teal": 208, + "source": 97, + "pc": [ + 245 + ] + }, + { + "teal": 209, + "source": 97, + "pc": [ + 246 + ] + }, + { + "teal": 210, + "source": 97, + "pc": [ + 247 + ] + }, + { + "teal": 213, + "source": 97, + "errorMessage": "argument 3 (pubKey) for upload must be a address", + "pc": [ + 248 + ] + }, + { + "teal": 216, + "source": 97, + "pc": [ + 249, + 250, + 251 + ] + }, + { + "teal": 217, + "source": 97, + "pc": [ + 252 + ] + }, + { + "teal": 218, + "source": 97, + "pc": [ + 253 + ] + }, + { + "teal": 230, + "source": 97, + "pc": [ + 254, + 255, + 256 + ] + }, + { + "teal": 233, + "source": 97, + "pc": [ + 257 + ] + }, + { + "teal": 237, + "source": 98, + "pc": [ + 258, + 259 + ] + }, + { + "teal": 238, + "source": 98, + "pc": [ + 260, + 261 + ] + }, + { + "teal": 239, + "source": 98, + "pc": [ + 262 + ] + }, + { + "teal": 240, + "source": 98, + "pc": [ + 263 + ] + }, + { + "teal": 244, + "source": 100, + "pc": [ + 264, + 265 + ] + }, + { + "teal": 245, + "source": 100, + "pc": [ + 266, + 267 + ] + }, + { + "teal": 249, + "source": 100, + "pc": [ + 268, + 269 + ] + }, + { + "teal": 250, + "source": 100, + "pc": [ + 270, + 271 + ] + }, + { + "teal": 251, + "source": 100, + "pc": [ + 272 + ] + }, + { + "teal": 252, + "source": 100, + "pc": [ + 273 + ] + }, + { + "teal": 253, + "source": 101, + "pc": [ + 274 + ] + }, + { + "teal": 254, + "source": 26, + "pc": [ + 275 + ] + }, + { + "teal": 255, + "source": 101, + "pc": [ + 276 + ] + }, + { + "teal": 256, + "source": 101, + "pc": [ + 277 + ] + }, + { + "teal": 260, + "source": 100, + "pc": [ + 278, + 279 + ] + }, + { + "teal": 261, + "source": 100, + "pc": [ + 280 + ] + }, + { + "teal": 262, + "source": 100, + "pc": [ + 281 + ] + }, + { + "teal": 263, + "source": 100, + "pc": [ + 282 + ] + }, + { + "teal": 264, + "source": 102, + "pc": [ + 283 + ] + }, + { + "teal": 265, + "source": 102, + "pc": [ + 284, + 285 + ] + }, + { + "teal": 266, + "source": 102, + "pc": [ + 286 + ] + }, + { + "teal": 267, + "source": 102, + "pc": [ + 287 + ] + }, + { + "teal": 268, + "source": 102, + "pc": [ + 288, + 289, + 290 + ] + }, + { + "teal": 269, + "source": 102, + "pc": [ + 291, + 292 + ] + }, + { + "teal": 270, + "source": 100, + "pc": [ + 293, + 294 + ] + }, + { + "teal": 271, + "source": 100, + "pc": [ + 295 + ] + }, + { + "teal": 272, + "source": 100, + "pc": [ + 296 + ] + }, + { + "teal": 273, + "source": 100, + "pc": [ + 297 + ] + }, + { + "teal": 274, + "source": 102, + "pc": [ + 298 + ] + }, + { + "teal": 275, + "source": 102, + "pc": [ + 299 + ] + }, + { + "teal": 276, + "source": 102, + "pc": [ + 300 + ] + }, + { + "teal": 279, + "source": 102, + "pc": [ + 301 + ] + }, + { + "teal": 284, + "source": 104, + "pc": [ + 302, + 303 + ] + }, + { + "teal": 285, + "source": 104, + "pc": [ + 304 + ] + }, + { + "teal": 286, + "source": 104, + "pc": [ + 305 + ] + }, + { + "teal": 287, + "source": 104, + "pc": [ + 306, + 307, + 308 + ] + }, + { + "teal": 292, + "source": 105, + "pc": [ + 309, + 310 + ] + }, + { + "teal": 293, + "source": 105, + "pc": [ + 311 + ] + }, + { + "teal": 294, + "source": 105, + "pc": [ + 312, + 313 + ] + }, + { + "teal": 295, + "source": 100, + "pc": [ + 314, + 315 + ] + }, + { + "teal": 296, + "source": 100, + "pc": [ + 316 + ] + }, + { + "teal": 297, + "source": 100, + "pc": [ + 317 + ] + }, + { + "teal": 298, + "source": 100, + "pc": [ + 318 + ] + }, + { + "teal": 299, + "source": 105, + "pc": [ + 319 + ] + }, + { + "teal": 300, + "source": 105, + "pc": [ + 320 + ] + }, + { + "teal": 301, + "source": 105, + "pc": [ + 321, + 322, + 323 + ] + }, + { + "teal": 302, + "source": 100, + "pc": [ + 324, + 325 + ] + }, + { + "teal": 303, + "source": 100, + "pc": [ + 326, + 327 + ] + }, + { + "teal": 304, + "source": 100, + "pc": [ + 328 + ] + }, + { + "teal": 305, + "source": 100, + "pc": [ + 329 + ] + }, + { + "teal": 306, + "source": 105, + "pc": [ + 330 + ] + }, + { + "teal": 307, + "source": 105, + "pc": [ + 331, + 332, + 333 + ] + }, + { + "teal": 310, + "source": 105, + "pc": [ + 334, + 335 + ] + }, + { + "teal": 313, + "source": 105, + "pc": [ + 336 + ] + }, + { + "teal": 314, + "source": 105, + "pc": [ + 337 + ] + }, + { + "teal": 319, + "source": 108, + "pc": [ + 338, + 339 + ] + }, + { + "teal": 320, + "source": 108, + "pc": [ + 340 + ] + }, + { + "teal": 321, + "source": 108, + "pc": [ + 341, + 342 + ] + }, + { + "teal": 322, + "source": 108, + "pc": [ + 343, + 344 + ] + }, + { + "teal": 323, + "source": 108, + "pc": [ + 345 + ] + }, + { + "teal": 324, + "source": 97, + "pc": [ + 346 + ] + }, + { + "teal": 329, + "source": 117, + "pc": [ + 347, + 348, + 349 + ] + }, + { + "teal": 330, + "source": 117, + "pc": [ + 350 + ] + }, + { + "teal": 331, + "source": 117, + "pc": [ + 351 + ] + }, + { + "teal": 332, + "source": 117, + "pc": [ + 352 + ] + }, + { + "teal": 333, + "source": 117, + "pc": [ + 353 + ] + }, + { + "teal": 336, + "source": 117, + "errorMessage": "argument 0 (pubKey) for finishUpload must be a address", + "pc": [ + 354 + ] + }, + { + "teal": 339, + "source": 117, + "pc": [ + 355, + 356, + 357 + ] + }, + { + "teal": 340, + "source": 117, + "pc": [ + 358 + ] + }, + { + "teal": 341, + "source": 117, + "pc": [ + 359 + ] + }, + { + "teal": 350, + "source": 117, + "pc": [ + 360, + 361, + 362 + ] + }, + { + "teal": 354, + "source": 118, + "pc": [ + 363, + 364 + ] + }, + { + "teal": 355, + "source": 118, + "pc": [ + 365, + 366 + ] + }, + { + "teal": 356, + "source": 118, + "pc": [ + 367 + ] + }, + { + "teal": 357, + "source": 118, + "pc": [ + 368 + ] + }, + { + "teal": 361, + "source": 120, + "pc": [ + 369, + 370 + ] + }, + { + "teal": 362, + "source": 120, + "pc": [ + 371, + 372 + ] + }, + { + "teal": 363, + "source": 120, + "pc": [ + 373, + 374, + 375 + ] + }, + { + "teal": 364, + "source": 120, + "pc": [ + 376 + ] + }, + { + "teal": 365, + "source": 117, + "pc": [ + 377 + ] + }, + { + "teal": 370, + "source": 128, + "pc": [ + 378, + 379, + 380 + ] + }, + { + "teal": 371, + "source": 128, + "pc": [ + 381 + ] + }, + { + "teal": 372, + "source": 128, + "pc": [ + 382 + ] + }, + { + "teal": 373, + "source": 128, + "pc": [ + 383 + ] + }, + { + "teal": 374, + "source": 128, + "pc": [ + 384 + ] + }, + { + "teal": 377, + "source": 128, + "errorMessage": "argument 0 (pubKey) for startDelete must be a address", + "pc": [ + 385 + ] + }, + { + "teal": 380, + "source": 128, + "pc": [ + 386, + 387, + 388 + ] + }, + { + "teal": 381, + "source": 128, + "pc": [ + 389 + ] + }, + { + "teal": 382, + "source": 128, + "pc": [ + 390 + ] + }, + { + "teal": 390, + "source": 128, + "pc": [ + 391, + 392, + 393 + ] + }, + { + "teal": 393, + "source": 128, + "pc": [ + 394 + ] + }, + { + "teal": 397, + "source": 129, + "pc": [ + 395, + 396 + ] + }, + { + "teal": 398, + "source": 129, + "pc": [ + 397, + 398 + ] + }, + { + "teal": 399, + "source": 129, + "pc": [ + 399 + ] + }, + { + "teal": 400, + "source": 129, + "pc": [ + 400 + ] + }, + { + "teal": 404, + "source": 131, + "pc": [ + 401, + 402 + ] + }, + { + "teal": 405, + "source": 131, + "pc": [ + 403, + 404 + ] + }, + { + "teal": 409, + "source": 131, + "pc": [ + 405, + 406 + ] + }, + { + "teal": 410, + "source": 131, + "pc": [ + 407, + 408 + ] + }, + { + "teal": 411, + "source": 131, + "pc": [ + 409 + ] + }, + { + "teal": 412, + "source": 131, + "pc": [ + 410 + ] + }, + { + "teal": 413, + "source": 132, + "pc": [ + 411 + ] + }, + { + "teal": 414, + "source": 29, + "pc": [ + 412 + ] + }, + { + "teal": 415, + "source": 132, + "pc": [ + 413 + ] + }, + { + "teal": 416, + "source": 132, + "pc": [ + 414 + ] + }, + { + "teal": 420, + "source": 131, + "pc": [ + 415, + 416 + ] + }, + { + "teal": 421, + "source": 131, + "pc": [ + 417, + 418 + ] + }, + { + "teal": 422, + "source": 131, + "pc": [ + 419, + 420, + 421 + ] + }, + { + "teal": 423, + "source": 131, + "pc": [ + 422 + ] + }, + { + "teal": 424, + "source": 128, + "pc": [ + 423 + ] + }, + { + "teal": 429, + "source": 143, + "pc": [ + 424, + 425, + 426 + ] + }, + { + "teal": 430, + "source": 143, + "pc": [ + 427 + ] + }, + { + "teal": 433, + "source": 143, + "pc": [ + 428, + 429, + 430 + ] + }, + { + "teal": 434, + "source": 143, + "pc": [ + 431 + ] + }, + { + "teal": 435, + "source": 143, + "pc": [ + 432 + ] + }, + { + "teal": 436, + "source": 143, + "pc": [ + 433 + ] + }, + { + "teal": 437, + "source": 143, + "pc": [ + 434 + ] + }, + { + "teal": 440, + "source": 143, + "errorMessage": "argument 1 (pubKey) for deleteData must be a address", + "pc": [ + 435 + ] + }, + { + "teal": 443, + "source": 143, + "pc": [ + 436, + 437, + 438 + ] + }, + { + "teal": 444, + "source": 143, + "pc": [ + 439 + ] + }, + { + "teal": 445, + "source": 143, + "pc": [ + 440 + ] + }, + { + "teal": 454, + "source": 143, + "pc": [ + 441, + 442, + 443 + ] + }, + { + "teal": 457, + "source": 143, + "pc": [ + 444 + ] + }, + { + "teal": 458, + "source": 143, + "pc": [ + 445 + ] + }, + { + "teal": 462, + "source": 144, + "pc": [ + 446, + 447 + ] + }, + { + "teal": 463, + "source": 144, + "pc": [ + 448, + 449 + ] + }, + { + "teal": 464, + "source": 144, + "pc": [ + 450 + ] + }, + { + "teal": 465, + "source": 144, + "pc": [ + 451 + ] + }, + { + "teal": 469, + "source": 146, + "pc": [ + 452, + 453 + ] + }, + { + "teal": 470, + "source": 146, + "pc": [ + 454, + 455 + ] + }, + { + "teal": 474, + "source": 146, + "pc": [ + 456, + 457 + ] + }, + { + "teal": 475, + "source": 146, + "pc": [ + 458, + 459 + ] + }, + { + "teal": 476, + "source": 146, + "pc": [ + 460 + ] + }, + { + "teal": 477, + "source": 146, + "pc": [ + 461 + ] + }, + { + "teal": 478, + "source": 147, + "pc": [ + 462 + ] + }, + { + "teal": 479, + "source": 32, + "pc": [ + 463, + 464 + ] + }, + { + "teal": 480, + "source": 147, + "pc": [ + 465 + ] + }, + { + "teal": 481, + "source": 147, + "pc": [ + 466 + ] + }, + { + "teal": 485, + "source": 146, + "pc": [ + 467, + 468 + ] + }, + { + "teal": 486, + "source": 146, + "pc": [ + 469 + ] + }, + { + "teal": 487, + "source": 146, + "pc": [ + 470 + ] + }, + { + "teal": 488, + "source": 146, + "pc": [ + 471 + ] + }, + { + "teal": 489, + "source": 148, + "pc": [ + 472 + ] + }, + { + "teal": 490, + "source": 148, + "pc": [ + 473, + 474 + ] + }, + { + "teal": 491, + "source": 148, + "pc": [ + 475 + ] + }, + { + "teal": 492, + "source": 148, + "pc": [ + 476 + ] + }, + { + "teal": 493, + "source": 148, + "pc": [ + 477, + 478, + 479 + ] + }, + { + "teal": 494, + "source": 148, + "pc": [ + 480, + 481 + ] + }, + { + "teal": 495, + "source": 146, + "pc": [ + 482, + 483 + ] + }, + { + "teal": 496, + "source": 146, + "pc": [ + 484 + ] + }, + { + "teal": 497, + "source": 146, + "pc": [ + 485 + ] + }, + { + "teal": 498, + "source": 146, + "pc": [ + 486 + ] + }, + { + "teal": 499, + "source": 148, + "pc": [ + 487 + ] + }, + { + "teal": 500, + "source": 148, + "pc": [ + 488 + ] + }, + { + "teal": 501, + "source": 148, + "pc": [ + 489 + ] + }, + { + "teal": 504, + "source": 148, + "pc": [ + 490 + ] + }, + { + "teal": 509, + "source": 150, + "pc": [ + 491, + 492 + ] + }, + { + "teal": 510, + "source": 146, + "pc": [ + 493, + 494 + ] + }, + { + "teal": 511, + "source": 146, + "pc": [ + 495 + ] + }, + { + "teal": 512, + "source": 146, + "pc": [ + 496 + ] + }, + { + "teal": 513, + "source": 146, + "pc": [ + 497 + ] + }, + { + "teal": 514, + "source": 150, + "pc": [ + 498 + ] + }, + { + "teal": 515, + "source": 150, + "pc": [ + 499 + ] + }, + { + "teal": 516, + "source": 150, + "pc": [ + 500, + 501, + 502 + ] + }, + { + "teal": 521, + "source": 146, + "pc": [ + 503, + 504 + ] + }, + { + "teal": 522, + "source": 146, + "pc": [ + 505, + 506 + ] + }, + { + "teal": 523, + "source": 146, + "pc": [ + 507 + ] + }, + { + "teal": 524, + "source": 146, + "pc": [ + 508 + ] + }, + { + "teal": 525, + "source": 150, + "pc": [ + 509 + ] + }, + { + "teal": 526, + "source": 150, + "pc": [ + 510, + 511 + ] + }, + { + "teal": 527, + "source": 150, + "pc": [ + 512 + ] + }, + { + "teal": 528, + "source": 150, + "pc": [ + 513 + ] + }, + { + "teal": 529, + "source": 150, + "pc": [ + 514 + ] + }, + { + "teal": 530, + "source": 150, + "pc": [ + 515 + ] + }, + { + "teal": 535, + "source": 152, + "pc": [ + 516, + 517 + ] + }, + { + "teal": 536, + "source": 152, + "pc": [ + 518, + 519 + ] + }, + { + "teal": 537, + "source": 152, + "pc": [ + 520 + ] + }, + { + "teal": 538, + "source": 152, + "pc": [ + 521, + 522 + ] + }, + { + "teal": 542, + "source": 154, + "pc": [ + 523, + 524 + ] + }, + { + "teal": 543, + "source": 154, + "pc": [ + 525 + ] + }, + { + "teal": 544, + "source": 154, + "pc": [ + 526 + ] + }, + { + "teal": 549, + "source": 156, + "pc": [ + 527, + 528 + ] + }, + { + "teal": 550, + "source": 146, + "pc": [ + 529, + 530 + ] + }, + { + "teal": 551, + "source": 146, + "pc": [ + 531 + ] + }, + { + "teal": 552, + "source": 146, + "pc": [ + 532 + ] + }, + { + "teal": 553, + "source": 146, + "pc": [ + 533 + ] + }, + { + "teal": 554, + "source": 156, + "pc": [ + 534 + ] + }, + { + "teal": 555, + "source": 156, + "pc": [ + 535 + ] + }, + { + "teal": 556, + "source": 156, + "pc": [ + 536, + 537, + 538 + ] + }, + { + "teal": 561, + "source": 156, + "pc": [ + 539, + 540 + ] + }, + { + "teal": 562, + "source": 156, + "pc": [ + 541 + ] + }, + { + "teal": 563, + "source": 156, + "pc": [ + 542, + 543, + 544 + ] + }, + { + "teal": 568, + "source": 157, + "pc": [ + 545, + 546 + ] + }, + { + "teal": 569, + "source": 157, + "pc": [ + 547, + 548 + ] + }, + { + "teal": 570, + "source": 157, + "pc": [ + 549 + ] + }, + { + "teal": 571, + "source": 146, + "pc": [ + 550, + 551 + ] + }, + { + "teal": 572, + "source": 146, + "pc": [ + 552, + 553 + ] + }, + { + "teal": 573, + "source": 146, + "pc": [ + 554 + ] + }, + { + "teal": 581, + "source": 159, + "pc": [ + 555 + ] + }, + { + "teal": 582, + "source": 159, + "pc": [ + 556 + ] + }, + { + "teal": 583, + "source": 159, + "pc": [ + 557, + 558 + ] + }, + { + "teal": 587, + "source": 160, + "pc": [ + 559, + 560 + ] + }, + { + "teal": 588, + "source": 160, + "pc": [ + 561, + 562 + ] + }, + { + "teal": 589, + "source": 160, + "pc": [ + 563, + 564 + ] + }, + { + "teal": 590, + "source": 160, + "pc": [ + 565 + ] + }, + { + "teal": 591, + "source": 160, + "pc": [ + 566 + ] + }, + { + "teal": 592, + "source": 160, + "pc": [ + 567, + 568 + ] + }, + { + "teal": 596, + "source": 161, + "pc": [ + 569, + 570 + ] + }, + { + "teal": 597, + "source": 161, + "pc": [ + 571, + 572 + ] + }, + { + "teal": 600, + "source": 159, + "pc": [ + 573 + ] + }, + { + "teal": 601, + "source": 159, + "pc": [ + 574, + 575 + ] + }, + { + "teal": 604, + "source": 159, + "pc": [ + 576 + ] + }, + { + "teal": 605, + "source": 143, + "pc": [ + 577 + ] + }, + { + "teal": 610, + "source": 168, + "pc": [ + 578, + 579, + 580 + ] + }, + { + "teal": 611, + "source": 168, + "pc": [ + 581 + ] + }, + { + "teal": 612, + "source": 168, + "pc": [ + 582 + ] + }, + { + "teal": 618, + "source": 168, + "pc": [ + 583, + 584, + 585 + ] + }, + { + "teal": 622, + "source": 169, + "pc": [ + 586, + 587 + ] + }, + { + "teal": 623, + "source": 169, + "pc": [ + 588, + 589 + ] + }, + { + "teal": 624, + "source": 169, + "pc": [ + 590 + ] + }, + { + "teal": 625, + "source": 169, + "pc": [ + 591 + ] + }, + { + "teal": 626, + "source": 168, + "pc": [ + 592 + ] + }, + { + "teal": 631, + "source": 178, + "pc": [ + 593, + 594, + 595 + ] + }, + { + "teal": 632, + "source": 178, + "pc": [ + 596 + ] + }, + { + "teal": 633, + "source": 178, + "pc": [ + 597 + ] + }, + { + "teal": 642, + "source": 178, + "pc": [ + 598, + 599, + 600 + ] + }, + { + "teal": 643, + "source": 178, + "pc": [ + 601 + ] + }, + { + "teal": 646, + "source": 38, + "pc": [ + 602 + ] + }, + { + "teal": 647, + "source": 38, + "pc": [ + 603 + ] + }, + { + "teal": 650, + "source": 38, + "pc": [ + 604, + 605, + 606, + 607, + 608, + 609 + ] + }, + { + "teal": 651, + "source": 38, + "pc": [ + 610, + 611, + 612 + ] + }, + { + "teal": 652, + "source": 38, + "pc": [ + 613, + 614, + 615, + 616 + ] + }, + { + "teal": 655, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 617 + ] + }, + { + "teal": 658, + "source": 38, + "pc": [ + 618, + 619, + 620, + 621, + 622, + 623 + ] + }, + { + "teal": 659, + "source": 38, + "pc": [ + 624, + 625, + 626, + 627, + 628, + 629 + ] + }, + { + "teal": 660, + "source": 38, + "pc": [ + 630, + 631, + 632, + 633, + 634, + 635 + ] + }, + { + "teal": 661, + "source": 38, + "pc": [ + 636, + 637, + 638, + 639, + 640, + 641 + ] + }, + { + "teal": 662, + "source": 38, + "pc": [ + 642, + 643, + 644, + 645, + 646, + 647 + ] + }, + { + "teal": 663, + "source": 38, + "pc": [ + 648, + 649, + 650, + 651, + 652, + 653 + ] + }, + { + "teal": 664, + "source": 38, + "pc": [ + 654, + 655, + 656 + ] + }, + { + "teal": 665, + "source": 38, + "pc": [ + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670 + ] + }, + { + "teal": 668, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 671 + ] + }, + { + "teal": 671, + "source": 38, + "pc": [ + 672, + 673, + 674, + 675, + 676, + 677 + ] + }, + { + "teal": 672, + "source": 38, + "pc": [ + 678, + 679, + 680 + ] + }, + { + "teal": 673, + "source": 38, + "pc": [ + 681, + 682, + 683, + 684 + ] + }, + { + "teal": 676, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 685 + ] + } + ], + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCgovLyBUaGlzIFRFQUwgd2FzIGdlbmVyYXRlZCBieSBURUFMU2NyaXB0IHYwLjk2LjAKLy8gaHR0cHM6Ly9naXRodWIuY29tL2FsZ29yYW5kZm91bmRhdGlvbi9URUFMU2NyaXB0CgovLyBUaGlzIGNvbnRyYWN0IGlzIGNvbXBsaWFudCB3aXRoIGFuZC9vciBpbXBsZW1lbnRzIHRoZSBmb2xsb3dpbmcgQVJDczogWyBBUkM0IF0KCi8vIFRoZSBmb2xsb3dpbmcgdGVuIGxpbmVzIG9mIFRFQUwgaGFuZGxlIGluaXRpYWwgcHJvZ3JhbSBmbG93Ci8vIFRoaXMgcGF0dGVybiBpcyB1c2VkIHRvIG1ha2UgaXQgZWFzeSBmb3IgYW55b25lIHRvIHBhcnNlIHRoZSBzdGFydCBvZiB0aGUgcHJvZ3JhbSBhbmQgZGV0ZXJtaW5lIGlmIGEgc3BlY2lmaWMgYWN0aW9uIGlzIGFsbG93ZWQKLy8gSGVyZSwgYWN0aW9uIHJlZmVycyB0byB0aGUgT25Db21wbGV0ZSBpbiBjb21iaW5hdGlvbiB3aXRoIHdoZXRoZXIgdGhlIGFwcCBpcyBiZWluZyBjcmVhdGVkIG9yIGNhbGxlZAovLyBFdmVyeSBwb3NzaWJsZSBhY3Rpb24gZm9yIHRoaXMgY29udHJhY3QgaXMgcmVwcmVzZW50ZWQgaW4gdGhlIHN3aXRjaCBzdGF0ZW1lbnQKLy8gSWYgdGhlIGFjdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGNvbnRyYWN0LCBpdHMgcmVzcGVjdGl2ZSBicmFuY2ggd2lsbCBiZSAiKk5PVF9JTVBMRU1FTlRFRCIgd2hpY2gganVzdCBjb250YWlucyAiZXJyIgp0eG4gQXBwbGljYXRpb25JRAohCmludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpjYWxsX1VwZGF0ZUFwcGxpY2F0aW9uICpOT1RfSU1QTEVNRU5URUQgKmNyZWF0ZV9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRAoKKk5PVF9JTVBMRU1FTlRFRDoKCS8vIFRoZSByZXF1ZXN0ZWQgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGlzIGNvbnRyYWN0LiBBcmUgeW91IHVzaW5nIHRoZSBjb3JyZWN0IE9uQ29tcGxldGU/IERpZCB5b3Ugc2V0IHlvdXIgYXBwIElEPwoJZXJyCgovLyBzdGFydFVwbG9hZChhZGRyZXNzLHVpbnQ2NCx1aW50NjQscGF5KXZvaWQKKmFiaV9yb3V0ZV9zdGFydFVwbG9hZDoKCS8vIG1iclBheW1lbnQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoKCS8vIGFyZ3VtZW50IDAgKG1iclBheW1lbnQpIGZvciBzdGFydFVwbG9hZCBtdXN0IGJlIGEgcGF5IHRyYW5zYWN0aW9uCglhc3NlcnQKCgkvLyBlbmRCb3hTaXplOiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCgkvLyBudW1Cb3hlczogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDMgKHB1YktleSkgZm9yIHN0YXJ0VXBsb2FkIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIHN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZAoJY2FsbHN1YiBzdGFydFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gc3RhcnRVcGxvYWQocHViS2V5OiBBZGRyZXNzLCBudW1Cb3hlczogdWludDY0LCBlbmRCb3hTaXplOiB1aW50NjQsIG1iclBheW1lbnQ6IFBheVR4bik6IHZvaWQKLy8KLy8KLy8gQWxsb2NhdGUgYm94ZXMgdG8gYmVnaW4gZGF0YSB1cGxvYWQgcHJvY2VzcwovLwovLyBAcGFyYW0gcHViS2V5IFRoZSBwdWJrZXkgb2YgdGhlIERJRAovLyBAcGFyYW0gbnVtQm94ZXMgVGhlIG51bWJlciBvZiBib3hlcyB0aGF0IHRoZSBkYXRhIHdpbGwgdGFrZSB1cAovLyBAcGFyYW0gZW5kQm94U2l6ZSBUaGUgc2l6ZSBvZiB0aGUgbGFzdCBib3gKLy8gQHBhcmFtIG1iclBheW1lbnQgUGF5bWVudCBmcm9tIHRoZSB1cGxvYWRlciB0byBjb3ZlciB0aGUgYm94IE1CUgpzdGFydFVwbG9hZDoKCXByb3RvIDQgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CglkdXBuIDMKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjYzCgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NQoJLy8gc3RhcnRCb3ggPSB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZQoJYnl0ZSAweDYzNzU3MjcyNjU2ZTc0NDk2ZTY0NjU3OCAvLyAiY3VycmVudEluZGV4IgoJYXBwX2dsb2JhbF9nZXQKCWZyYW1lX2J1cnkgMCAvLyBzdGFydEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2NgoJLy8gZW5kQm94ID0gc3RhcnRCb3ggKyBudW1Cb3hlcyAtIDEKCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWZyYW1lX2RpZyAtMiAvLyBudW1Cb3hlczogdWludDY0CgkrCglpbnQgMQoJLQoJZnJhbWVfYnVyeSAxIC8vIGVuZEJveDogdWludDY0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czo2OAoJLy8gbWV0YWRhdGE6IE1ldGFkYXRhID0gewoJLy8gICAgICAgc3RhcnQ6IHN0YXJ0Qm94LCBlbmQ6IGVuZEJveCwgc3RhdHVzOiBVUExPQURJTkcsIGVuZFNpemU6IGVuZEJveFNpemUsIGxhc3REZWxldGVkOiAwLAoJLy8gICAgIH0KCWZyYW1lX2RpZyAwIC8vIHN0YXJ0Qm94OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMAoJY29uY2F0CglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpdG9iCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWZyYW1lX2J1cnkgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjcyCgkvLyBhc3NlcnQoIXRoaXMubWV0YWRhdGEocHViS2V5KS5leGlzdHMpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfbGVuCglzd2FwCglwb3AKCSEKCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6NzQKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZSA9IG1ldGFkYXRhCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglmcmFtZV9kaWcgMiAvLyBtZXRhZGF0YTogTWV0YWRhdGEKCWJveF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc2CgkvLyB0aGlzLmN1cnJlbnRJbmRleC52YWx1ZSA9IGVuZEJveCArIDEKCWJ5dGUgMHg2Mzc1NzI3MjY1NmU3NDQ5NmU2NDY1NzggLy8gImN1cnJlbnRJbmRleCIKCWZyYW1lX2RpZyAxIC8vIGVuZEJveDogdWludDY0CglpbnQgMQoJKwoJYXBwX2dsb2JhbF9wdXQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjc4CgkvLyB0b3RhbENvc3QgPSBudW1Cb3hlcyAqIENPU1RfUEVSX0JPWCAvLyBjb3N0IG9mIGRhdGEgYm94ZXMKCS8vICAgICArIChudW1Cb3hlcyAtIDEpICogTUFYX0JPWF9TSVpFICogQ09TVF9QRVJfQllURSAvLyBjb3N0IG9mIGRhdGEKCS8vICAgICArIG51bUJveGVzICogOCAqIENPU1RfUEVSX0JZVEUgLy8gY29zdCBvZiBkYXRhIGtleXMKCS8vICAgICArIGVuZEJveFNpemUgKiBDT1NUX1BFUl9CWVRFIC8vIGNvc3Qgb2YgbGFzdCBkYXRhIGJveAoJLy8gICAgICsgQ09TVF9QRVJfQk9YICsgKDggKyA4ICsgMSArIDggKyAzMiArIDgpICogQ09TVF9QRVJfQllURQoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCAyNTAwCgkqCglmcmFtZV9kaWcgLTIgLy8gbnVtQm94ZXM6IHVpbnQ2NAoJaW50IDEKCS0KCWludCAzMjc2OAoJKgoJaW50IDQwMAoJKgoJKwoJZnJhbWVfZGlnIC0yIC8vIG51bUJveGVzOiB1aW50NjQKCWludCA4CgkqCglpbnQgNDAwCgkqCgkrCglmcmFtZV9kaWcgLTMgLy8gZW5kQm94U2l6ZTogdWludDY0CglpbnQgNDAwCgkqCgkrCglpbnQgMjUwMAoJKwoJaW50IDI2MDAwCgkrCglmcmFtZV9idXJ5IDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg0CgkvLyBhc3NlcnQobWJyUGF5bWVudC5hbW91bnQgPT09IHRvdGFsQ29zdCkKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIEFtb3VudAoJZnJhbWVfZGlnIDMgLy8gdG90YWxDb3N0OiB1aW50NjQKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQobWJyUGF5bWVudC5yZWNlaXZlciA9PT0gdGhpcy5hcHAuYWRkcmVzcykKCWZyYW1lX2RpZyAtNCAvLyBtYnJQYXltZW50OiBQYXlUeG4KCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyB1cGxvYWQoYWRkcmVzcyx1aW50NjQsdWludDY0LGJ5dGVbXSl2b2lkCiphYmlfcm91dGVfdXBsb2FkOgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA0CglleHRyYWN0IDIgMAoKCS8vIG9mZnNldDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAzIChwdWJLZXkpIGZvciB1cGxvYWQgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgdXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZAoJY2FsbHN1YiB1cGxvYWQKCWludCAxCglyZXR1cm4KCi8vIHVwbG9hZChwdWJLZXk6IEFkZHJlc3MsIGJveEluZGV4OiB1aW50NjQsIG9mZnNldDogdWludDY0LCBkYXRhOiBieXRlcyk6IHZvaWQKLy8KLy8KLy8gVXBsb2FkIGRhdGEgdG8gYSBzcGVjaWZpYyBvZmZzZXQgaW4gYSBib3gKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgcHVia2V5IG9mIHRoZSBESUQKLy8gQHBhcmFtIGJveEluZGV4IFRoZSBpbmRleCBvZiB0aGUgYm94IHRvIHVwbG9hZCB0aGUgZ2l2ZW4gY2h1bmsgb2YgZGF0YSB0bwovLyBAcGFyYW0gb2Zmc2V0IFRoZSBvZmZzZXQgd2l0aGluIHRoZSBib3ggdG8gc3RhcnQgd3JpdGluZyB0aGUgZGF0YQovLyBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB3cml0ZQp1cGxvYWQ6Cglwcm90byA0IDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6OTgKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMAoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMQoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gVVBMT0FESU5HKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWludCAxCglib3hfZXh0cmFjdAoJYnRvaQoJaW50IDAKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXJ0IDw9IGJveEluZGV4ICYmIGJveEluZGV4IDw9IG1ldGFkYXRhLmVuZCkKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWludCAwCglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0Cgk8PQoJZHVwCglieiAqc2tpcF9hbmQwCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk8PQoJJiYKCipza2lwX2FuZDA6Cglhc3NlcnQKCgkvLyAqaWYwX2NvbmRpdGlvbgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMDQKCS8vIG9mZnNldCA9PT0gMAoJZnJhbWVfZGlnIC0zIC8vIG9mZnNldDogdWludDY0CglpbnQgMAoJPT0KCWJ6ICppZjBfZW5kCgoJLy8gKmlmMF9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwNQoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLmNyZWF0ZShib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kID8gbWV0YWRhdGEuZW5kU2l6ZSA6IE1BWF9CT1hfU0laRSkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKnRlcm5hcnkwX2ZhbHNlCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTcgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgliICp0ZXJuYXJ5MF9lbmQKCip0ZXJuYXJ5MF9mYWxzZToKCWludCAzMjc2OAoKKnRlcm5hcnkwX2VuZDoKCWJveF9jcmVhdGUKCXBvcAoKKmlmMF9lbmQ6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEwOAoJLy8gdGhpcy5kYXRhQm94ZXMoYm94SW5kZXgpLnJlcGxhY2Uob2Zmc2V0LCBkYXRhKQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCWl0b2IKCWZyYW1lX2RpZyAtMyAvLyBvZmZzZXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGRhdGE6IGJ5dGVzCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfZmluaXNoVXBsb2FkOgoJLy8gcHViS2V5OiBhZGRyZXNzCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglkdXAKCWxlbgoJaW50IDMyCgk9PQoKCS8vIGFyZ3VtZW50IDAgKHB1YktleSkgZm9yIGZpbmlzaFVwbG9hZCBtdXN0IGJlIGEgYWRkcmVzcwoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBmaW5pc2hVcGxvYWQoYWRkcmVzcyl2b2lkCgljYWxsc3ViIGZpbmlzaFVwbG9hZAoJaW50IDEKCXJldHVybgoKLy8gZmluaXNoVXBsb2FkKHB1YktleTogQWRkcmVzcyk6IHZvaWQKLy8KLy8KLy8gTWFyayB1cGxvYWRpbmcgYXMgZmFsc2UKLy8KLy8gQHBhcmFtIHB1YktleSBUaGUgYWRkcmVzcyBvZiB0aGUgRElECmZpbmlzaFVwbG9hZDoKCXByb3RvIDEgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTE4CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjAKCS8vIHRoaXMubWV0YWRhdGEocHViS2V5KS52YWx1ZS5zdGF0dXMgPSBSRUFEWQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDE2IC8vIGhlYWRPZmZzZXQKCWJ5dGUgMHgwMQoJYm94X3JlcGxhY2UKCXJldHN1YgoKLy8gc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCiphYmlfcm91dGVfc3RhcnREZWxldGU6CgkvLyBwdWJLZXk6IGFkZHJlc3MKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMzIKCT09CgoJLy8gYXJndW1lbnQgMCAocHViS2V5KSBmb3Igc3RhcnREZWxldGUgbXVzdCBiZSBhIGFkZHJlc3MKCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3RhcnREZWxldGUoYWRkcmVzcyl2b2lkCgljYWxsc3ViIHN0YXJ0RGVsZXRlCglpbnQgMQoJcmV0dXJuCgovLyBzdGFydERlbGV0ZShwdWJLZXk6IEFkZHJlc3MpOiB2b2lkCi8vCi8vIFN0YXJ0cyB0aGUgZGVsZXRpb24gcHJvY2VzcyBmb3IgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgRElECi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRApzdGFydERlbGV0ZToKCXByb3RvIDEgMAoKCS8vIFB1c2ggZW1wdHkgYnl0ZXMgYWZ0ZXIgdGhlIGZyYW1lIHBvaW50ZXIgdG8gcmVzZXJ2ZSBzcGFjZSBmb3IgbG9jYWwgdmFyaWFibGVzCglieXRlIDB4CgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxMjkKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMQoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjEzMgoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gUkVBRFkpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMQoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTM0CgkvLyBtZXRhZGF0YS5zdGF0dXMgPSBERUxFVElORwoJZnJhbWVfZGlnIDAgLy8gc3RvcmFnZSBrZXkvL21ldGFkYXRhCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJYnl0ZSAweDAyCglib3hfcmVwbGFjZQoJcmV0c3ViCgovLyBkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQKKmFiaV9yb3V0ZV9kZWxldGVEYXRhOgoJLy8gYm94SW5kZXg6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoKCS8vIHB1YktleTogYWRkcmVzcwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJZHVwCglsZW4KCWludCAzMgoJPT0KCgkvLyBhcmd1bWVudCAxIChwdWJLZXkpIGZvciBkZWxldGVEYXRhIG11c3QgYmUgYSBhZGRyZXNzCglhc3NlcnQKCgkvLyBleGVjdXRlIGRlbGV0ZURhdGEoYWRkcmVzcyx1aW50NjQpdm9pZAoJY2FsbHN1YiBkZWxldGVEYXRhCglpbnQgMQoJcmV0dXJuCgovLyBkZWxldGVEYXRhKHB1YktleTogQWRkcmVzcywgYm94SW5kZXg6IHVpbnQ2NCk6IHZvaWQKLy8KLy8gRGVsZXRlcyBhIGJveCBvZiBkYXRhCi8vCi8vIEBwYXJhbSBwdWJLZXkgVGhlIGFkZHJlc3Mgb2YgdGhlIERJRAovLyBAcGFyYW0gYm94SW5kZXggVGhlIGluZGV4IG9mIHRoZSBib3ggdG8gZGVsZXRlCmRlbGV0ZURhdGE6Cglwcm90byAyIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZSAweAoJZHVwCgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNDQKCS8vIGFzc2VydCh0aGlzLnR4bi5zZW5kZXIgPT09IGdsb2JhbHMuY3JlYXRvckFkZHJlc3MpCgl0eG4gU2VuZGVyCglnbG9iYWwgQ3JlYXRvckFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NgoJLy8gbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhKHB1YktleSkudmFsdWUKCWZyYW1lX2RpZyAtMSAvLyBwdWJLZXk6IEFkZHJlc3MKCWZyYW1lX2J1cnkgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE0NwoJLy8gYXNzZXJ0KG1ldGFkYXRhLnN0YXR1cyA9PT0gREVMRVRJTkcpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMTYgLy8gaGVhZE9mZnNldAoJaW50IDEKCWJveF9leHRyYWN0CglidG9pCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTQ4CgkvLyBhc3NlcnQobWV0YWRhdGEuc3RhcnQgPD0gYm94SW5kZXggJiYgYm94SW5kZXggPD0gbWV0YWRhdGEuZW5kKQoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJZnJhbWVfZGlnIC0yIC8vIGJveEluZGV4OiB1aW50NjQKCTw9CglkdXAKCWJ6ICpza2lwX2FuZDEKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgOCAvLyBoZWFkT2Zmc2V0CglpbnQgOAoJYm94X2V4dHJhY3QKCWJ0b2kKCTw9CgkmJgoKKnNraXBfYW5kMToKCWFzc2VydAoKCS8vICppZjFfY29uZGl0aW9uCgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYm94SW5kZXggIT09IG1ldGFkYXRhLnN0YXJ0CglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDAKCWludCA4Cglib3hfZXh0cmFjdAoJYnRvaQoJIT0KCWJ6ICppZjFfZW5kCgoJLy8gKmlmMV9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1MAoJLy8gYXNzZXJ0KG1ldGFkYXRhLmxhc3REZWxldGVkID09PSBib3hJbmRleCAtIDEpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglpbnQgMjUgLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJaW50IDEKCS0KCT09Cglhc3NlcnQKCippZjFfZW5kOgoJLy8gY29udHJhY3RzL2RpZC1hbGdvLXN0b3JhZ2UuYWxnby50czoxNTIKCS8vIHByZU1CUiA9IGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYWNjdF9wYXJhbXNfZ2V0IEFjY3RNaW5CYWxhbmNlCglwb3AKCWZyYW1lX2J1cnkgMSAvLyBwcmVNQlI6IHVpbnQ2NAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU0CgkvLyB0aGlzLmRhdGFCb3hlcyhib3hJbmRleCkuZGVsZXRlKCkKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglib3hfZGVsCgoJLy8gKmlmMl9jb25kaXRpb24KCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU2CgkvLyBib3hJbmRleCA9PT0gbWV0YWRhdGEuZW5kCglmcmFtZV9kaWcgLTIgLy8gYm94SW5kZXg6IHVpbnQ2NAoJZnJhbWVfZGlnIC0xIC8vIHB1YktleTogQWRkcmVzcwoJaW50IDggLy8gaGVhZE9mZnNldAoJaW50IDgKCWJveF9leHRyYWN0CglidG9pCgk9PQoJYnogKmlmMl9lbHNlCgoJLy8gKmlmMl9jb25zZXF1ZW50CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NgoJLy8gdGhpcy5tZXRhZGF0YShwdWJLZXkpLmRlbGV0ZSgpCglmcmFtZV9kaWcgLTEgLy8gcHViS2V5OiBBZGRyZXNzCglib3hfZGVsCgliICppZjJfZW5kCgoqaWYyX2Vsc2U6CgkvLyBjb250cmFjdHMvZGlkLWFsZ28tc3RvcmFnZS5hbGdvLnRzOjE1NwoJLy8gbWV0YWRhdGEubGFzdERlbGV0ZWQgPSBib3hJbmRleAoJaW50IDI1IC8vIGhlYWRPZmZzZXQKCWZyYW1lX2RpZyAtMiAvLyBib3hJbmRleDogdWludDY0CglpdG9iCglmcmFtZV9kaWcgMCAvLyBzdG9yYWdlIGtleS8vbWV0YWRhdGEKCWNvdmVyIDIKCWJveF9yZXBsYWNlCgoqaWYyX2VuZDoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTU5CgkvLyBzZW5kUGF5bWVudCh7CgkvLyAgICAgICBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlLAoJLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYwCgkvLyBhbW91bnQ6IHByZU1CUiAtIGdsb2JhbHMuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcy5taW5CYWxhbmNlCglmcmFtZV9kaWcgMSAvLyBwcmVNQlI6IHVpbnQ2NAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJcG9wCgktCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTYxCgkvLyByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyCgl0eG4gU2VuZGVyCglpdHhuX2ZpZWxkIFJlY2VpdmVyCgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uOgoJLy8gZXhlY3V0ZSB1cGRhdGVBcHBsaWNhdGlvbigpdm9pZAoJY2FsbHN1YiB1cGRhdGVBcHBsaWNhdGlvbgoJaW50IDEKCXJldHVybgoKLy8gdXBkYXRlQXBwbGljYXRpb24oKTogdm9pZAovLwovLyBBbGxvdyB0aGUgY29udHJhY3QgdG8gYmUgdXBkYXRlZCBieSB0aGUgY3JlYXRvcgp1cGRhdGVBcHBsaWNhdGlvbjoKCXByb3RvIDAgMAoKCS8vIGNvbnRyYWN0cy9kaWQtYWxnby1zdG9yYWdlLmFsZ28udHM6MTY5CgkvLyBhc3NlcnQodGhpcy50eG4uc2VuZGVyID09PSBnbG9iYWxzLmNyZWF0b3JBZGRyZXNzKQoJdHhuIFNlbmRlcgoJZ2xvYmFsIENyZWF0b3JBZGRyZXNzCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGR1bW15KCl2b2lkCiphYmlfcm91dGVfZHVtbXk6CgkvLyBleGVjdXRlIGR1bW15KCl2b2lkCgljYWxsc3ViIGR1bW15CglpbnQgMQoJcmV0dXJuCgovLyBkdW1teSgpOiB2b2lkCi8vCi8vIER1bW15IGZ1bmN0aW9uIHRvIGFkZCBleHRyYSBib3ggcmVmZXJlbmNlcyBmb3IgZGVsZXRlRGF0YS4KLy8gQm94ZXMgYXJlIDMyaywgYnV0IGEgc2luZ2xlIGFwcCBjYWxsIGNhbiBvbmx5IGlubGN1ZGUgZW5vdWdoIHJlZmVyZW5jZXMgdG8gcmVhZC93cml0ZSA4awovLyBhdCBhIHRpbWUuIFRodXMgd2hlbiBhIGJveCBpcyBkZWxldGVkLCB3ZSBuZWVkIHRvIGFkZCBhZGRpdGlvbmFsIGR1bW15IGNhbGxzIHdpdGggYm94Ci8vIHJlZmVyZW5jZXMgdG8gaW5jcmVhc2UgdGhlIHRvdGFsIHJlYWQvd3JpdGUgYnVkZ2V0IHRvIDMyay4KZHVtbXk6Cglwcm90byAwIDAKCXJldHN1YgoKKmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCipjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNyZWF0ZSBOb09wCgllcnIKCipjYWxsX05vT3A6CgltZXRob2QgInN0YXJ0VXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxwYXkpdm9pZCIKCW1ldGhvZCAidXBsb2FkKGFkZHJlc3MsdWludDY0LHVpbnQ2NCxieXRlW10pdm9pZCIKCW1ldGhvZCAiZmluaXNoVXBsb2FkKGFkZHJlc3Mpdm9pZCIKCW1ldGhvZCAic3RhcnREZWxldGUoYWRkcmVzcyl2b2lkIgoJbWV0aG9kICJkZWxldGVEYXRhKGFkZHJlc3MsdWludDY0KXZvaWQiCgltZXRob2QgImR1bW15KCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9zdGFydFVwbG9hZCAqYWJpX3JvdXRlX3VwbG9hZCAqYWJpX3JvdXRlX2ZpbmlzaFVwbG9hZCAqYWJpX3JvdXRlX3N0YXJ0RGVsZXRlICphYmlfcm91dGVfZGVsZXRlRGF0YSAqYWJpX3JvdXRlX2R1bW15CgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgTm9PcAoJZXJyCgoqY2FsbF9VcGRhdGVBcHBsaWNhdGlvbjoKCW1ldGhvZCAidXBkYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCAqYWJpX3JvdXRlX3VwZGF0ZUFwcGxpY2F0aW9uCgoJLy8gdGhpcyBjb250cmFjdCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGdpdmVuIEFCSSBtZXRob2QgZm9yIGNhbGwgVXBkYXRlQXBwbGljYXRpb24KCWVycg==", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CiAJAQgAIBCQA8QTgIACGSYCAAxjdXJyZW50SW5kZXgxGBSBBgsxGQiNDAInAAAAAAAAAl0AAAIZAAAAAAAAAAAAAAAxFiIJSTgQIhJENhoDFzYaAhc2GgFJFSUSRIgAAiJDigQAKEcDMQAyCRJEKWSMAIsAi/4IIgmMAYsAFosBFlCAAQBQi/0WUIAIAAAAAAAAAABQjAKL/71MSBREi/+LAr8piwEiCGeL/iEGC4v+IgkhBwshBQsIi/4jCyEFCwiL/SEFCwghBgiBkMsBCIwDi/w4CIsDEkSL/DgHMgoSRIk2GgRXAgA2GgMXNhoCFzYaAUkVJRJEiAACIkOKBAAoMQAyCRJEi/+MAIv/IQQiuhckEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/SQSQQAdi/4Wi/6L/yMjuhcSQQAKi/+BESO6F0IAAiEHuUiL/haL/Yv8u4k2GgFJFSUSRIgAAiJDigEAMQAyCRJEi/8hBIABAbuJNhoBSRUlEkSIAAIiQ4oBACgxADIJEkSL/4wAi/8hBCK6FyISRIsAIQSAAQK7iTYaAhc2GgFJFSUSRIgAAiJDigIAKEkxADIJEkSL/4wAi/8hBCK6F4ECEkSL/yQjuheL/g5JQQAKi/6L/yMjuhcOEESL/ov/JCO6FxNBAA2L/yEII7oXi/4iCRJEMgpzAUiMAYv+FryL/ov/IyO6FxJBAAaL/7xCAAohCIv+FosATgK7sSKyEIsBMgpzAUgJsggxALIHJLIBs4mIAAIiQ4oAADEAMgkSRImIAAIiQ4oAAIkiQ4AEuER7NjYaAI4B//EAgARWXGddgARNscQYgAQOeHJXgAS9LITigARokbqQgASjDOf/NhoAjgb9pf5E/rz+2/8J/7IAgARG92UzNhoAjgH/lQA=", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 3, + "minor": 24, + "patch": 0, + "commitHash": "5c2cf06d" + } + } +} \ No newline at end of file diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.clear.teal b/reference_contract/contracts/artifacts/DIDAlgoStorage.clear.teal new file mode 100644 index 0000000..e9f1d65 --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/reference_contract/contracts/artifacts/DIDAlgoStorage.src_map.json b/reference_contract/contracts/artifacts/DIDAlgoStorage.src_map.json new file mode 100644 index 0000000..8128601 --- /dev/null +++ b/reference_contract/contracts/artifacts/DIDAlgoStorage.src_map.json @@ -0,0 +1,2936 @@ +[ + { + "teal": 1, + "source": 38, + "pc": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31 + ] + }, + { + "teal": 13, + "source": 38, + "pc": [ + 32, + 33 + ] + }, + { + "teal": 14, + "source": 38, + "pc": [ + 34 + ] + }, + { + "teal": 15, + "source": 38, + "pc": [ + 35, + 36 + ] + }, + { + "teal": 16, + "source": 38, + "pc": [ + 37 + ] + }, + { + "teal": 17, + "source": 38, + "pc": [ + 38, + 39 + ] + }, + { + "teal": 18, + "source": 38, + "pc": [ + 40 + ] + }, + { + "teal": 19, + "source": 38, + "pc": [ + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66 + ] + }, + { + "teal": 23, + "source": 38, + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 67 + ] + }, + { + "teal": 28, + "source": 61, + "pc": [ + 68, + 69 + ] + }, + { + "teal": 29, + "source": 61, + "pc": [ + 70 + ] + }, + { + "teal": 30, + "source": 61, + "pc": [ + 71 + ] + }, + { + "teal": 31, + "source": 61, + "pc": [ + 72 + ] + }, + { + "teal": 32, + "source": 61, + "pc": [ + 73, + 74 + ] + }, + { + "teal": 33, + "source": 61, + "pc": [ + 75 + ] + }, + { + "teal": 34, + "source": 61, + "pc": [ + 76 + ] + }, + { + "teal": 37, + "source": 61, + "errorMessage": "argument 0 (mbrPayment) for startUpload must be a pay transaction", + "pc": [ + 77 + ] + }, + { + "teal": 40, + "source": 60, + "pc": [ + 78, + 79, + 80 + ] + }, + { + "teal": 41, + "source": 60, + "pc": [ + 81 + ] + }, + { + "teal": 44, + "source": 59, + "pc": [ + 82, + 83, + 84 + ] + }, + { + "teal": 45, + "source": 59, + "pc": [ + 85 + ] + }, + { + "teal": 48, + "source": 58, + "pc": [ + 86, + 87, + 88 + ] + }, + { + "teal": 49, + "source": 58, + "pc": [ + 89 + ] + }, + { + "teal": 50, + "source": 58, + "pc": [ + 90 + ] + }, + { + "teal": 51, + "source": 58, + "pc": [ + 91 + ] + }, + { + "teal": 52, + "source": 58, + "pc": [ + 92 + ] + }, + { + "teal": 55, + "source": 58, + "errorMessage": "argument 3 (pubKey) for startUpload must be a address", + "pc": [ + 93 + ] + }, + { + "teal": 58, + "source": 57, + "pc": [ + 94, + 95, + 96 + ] + }, + { + "teal": 59, + "source": 57, + "pc": [ + 97 + ] + }, + { + "teal": 60, + "source": 57, + "pc": [ + 98 + ] + }, + { + "teal": 72, + "source": 57, + "pc": [ + 99, + 100, + 101 + ] + }, + { + "teal": 75, + "source": 57, + "pc": [ + 102 + ] + }, + { + "teal": 76, + "source": 57, + "pc": [ + 103, + 104 + ] + }, + { + "teal": 80, + "source": 63, + "pc": [ + 105, + 106 + ] + }, + { + "teal": 81, + "source": 63, + "pc": [ + 107, + 108 + ] + }, + { + "teal": 82, + "source": 63, + "pc": [ + 109 + ] + }, + { + "teal": 83, + "source": 63, + "pc": [ + 110 + ] + }, + { + "teal": 87, + "source": 65, + "pc": [ + 111 + ] + }, + { + "teal": 88, + "source": 65, + "pc": [ + 112 + ] + }, + { + "teal": 89, + "source": 65, + "pc": [ + 113, + 114 + ] + }, + { + "teal": 93, + "source": 66, + "pc": [ + 115, + 116 + ] + }, + { + "teal": 94, + "source": 66, + "pc": [ + 117, + 118 + ] + }, + { + "teal": 95, + "source": 66, + "pc": [ + 119 + ] + }, + { + "teal": 96, + "source": 66, + "pc": [ + 120 + ] + }, + { + "teal": 97, + "source": 66, + "pc": [ + 121 + ] + }, + { + "teal": 98, + "source": 66, + "pc": [ + 122, + 123 + ] + }, + { + "teal": 104, + "source": 69, + "pc": [ + 124, + 125 + ] + }, + { + "teal": 105, + "source": 69, + "pc": [ + 126 + ] + }, + { + "teal": 106, + "source": 69, + "pc": [ + 127, + 128 + ] + }, + { + "teal": 107, + "source": 69, + "pc": [ + 129 + ] + }, + { + "teal": 108, + "source": 69, + "pc": [ + 130 + ] + }, + { + "teal": 109, + "source": 69, + "pc": [ + 131, + 132, + 133 + ] + }, + { + "teal": 110, + "source": 69, + "pc": [ + 134 + ] + }, + { + "teal": 111, + "source": 69, + "pc": [ + 135, + 136 + ] + }, + { + "teal": 112, + "source": 69, + "pc": [ + 137 + ] + }, + { + "teal": 113, + "source": 69, + "pc": [ + 138 + ] + }, + { + "teal": 114, + "source": 69, + "pc": [ + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148 + ] + }, + { + "teal": 115, + "source": 69, + "pc": [ + 149 + ] + }, + { + "teal": 116, + "source": 68, + "pc": [ + 150, + 151 + ] + }, + { + "teal": 120, + "source": 72, + "pc": [ + 152, + 153 + ] + }, + { + "teal": 121, + "source": 72, + "pc": [ + 154 + ] + }, + { + "teal": 122, + "source": 72, + "pc": [ + 155 + ] + }, + { + "teal": 123, + "source": 72, + "pc": [ + 156 + ] + }, + { + "teal": 124, + "source": 72, + "pc": [ + 157 + ] + }, + { + "teal": 125, + "source": 72, + "pc": [ + 158 + ] + }, + { + "teal": 129, + "source": 74, + "pc": [ + 159, + 160 + ] + }, + { + "teal": 130, + "source": 74, + "pc": [ + 161, + 162 + ] + }, + { + "teal": 131, + "source": 74, + "pc": [ + 163 + ] + }, + { + "teal": 135, + "source": 76, + "pc": [ + 164 + ] + }, + { + "teal": 136, + "source": 76, + "pc": [ + 165, + 166 + ] + }, + { + "teal": 137, + "source": 76, + "pc": [ + 167 + ] + }, + { + "teal": 138, + "source": 76, + "pc": [ + 168 + ] + }, + { + "teal": 139, + "source": 76, + "pc": [ + 169 + ] + }, + { + "teal": 147, + "source": 78, + "pc": [ + 170, + 171 + ] + }, + { + "teal": 148, + "source": 78, + "pc": [ + 172, + 173 + ] + }, + { + "teal": 149, + "source": 78, + "pc": [ + 174 + ] + }, + { + "teal": 150, + "source": 79, + "pc": [ + 175, + 176 + ] + }, + { + "teal": 151, + "source": 79, + "pc": [ + 177 + ] + }, + { + "teal": 152, + "source": 79, + "pc": [ + 178 + ] + }, + { + "teal": 153, + "source": 79, + "pc": [ + 179, + 180 + ] + }, + { + "teal": 154, + "source": 79, + "pc": [ + 181 + ] + }, + { + "teal": 155, + "source": 79, + "pc": [ + 182, + 183 + ] + }, + { + "teal": 156, + "source": 79, + "pc": [ + 184 + ] + }, + { + "teal": 157, + "source": 79, + "pc": [ + 185 + ] + }, + { + "teal": 158, + "source": 80, + "pc": [ + 186, + 187 + ] + }, + { + "teal": 159, + "source": 80, + "pc": [ + 188 + ] + }, + { + "teal": 160, + "source": 80, + "pc": [ + 189 + ] + }, + { + "teal": 161, + "source": 80, + "pc": [ + 190, + 191 + ] + }, + { + "teal": 162, + "source": 80, + "pc": [ + 192 + ] + }, + { + "teal": 163, + "source": 80, + "pc": [ + 193 + ] + }, + { + "teal": 164, + "source": 81, + "pc": [ + 194, + 195 + ] + }, + { + "teal": 165, + "source": 81, + "pc": [ + 196, + 197 + ] + }, + { + "teal": 166, + "source": 81, + "pc": [ + 198 + ] + }, + { + "teal": 167, + "source": 81, + "pc": [ + 199 + ] + }, + { + "teal": 168, + "source": 82, + "pc": [ + 200, + 201 + ] + }, + { + "teal": 169, + "source": 82, + "pc": [ + 202 + ] + }, + { + "teal": 170, + "source": 82, + "pc": [ + 203, + 204, + 205, + 206 + ] + }, + { + "teal": 171, + "source": 82, + "pc": [ + 207 + ] + }, + { + "teal": 172, + "source": 78, + "pc": [ + 208, + 209 + ] + }, + { + "teal": 176, + "source": 84, + "pc": [ + 210, + 211 + ] + }, + { + "teal": 177, + "source": 84, + "pc": [ + 212, + 213 + ] + }, + { + "teal": 178, + "source": 84, + "pc": [ + 214, + 215 + ] + }, + { + "teal": 179, + "source": 84, + "pc": [ + 216 + ] + }, + { + "teal": 180, + "source": 84, + "pc": [ + 217 + ] + }, + { + "teal": 184, + "source": 85, + "pc": [ + 218, + 219 + ] + }, + { + "teal": 185, + "source": 85, + "pc": [ + 220, + 221 + ] + }, + { + "teal": 186, + "source": 85, + "pc": [ + 222, + 223 + ] + }, + { + "teal": 187, + "source": 85, + "pc": [ + 224 + ] + }, + { + "teal": 188, + "source": 85, + "pc": [ + 225 + ] + }, + { + "teal": 189, + "source": 57, + "pc": [ + 226 + ] + }, + { + "teal": 194, + "source": 97, + "pc": [ + 227, + 228, + 229 + ] + }, + { + "teal": 195, + "source": 97, + "pc": [ + 230, + 231, + 232 + ] + }, + { + "teal": 198, + "source": 97, + "pc": [ + 233, + 234, + 235 + ] + }, + { + "teal": 199, + "source": 97, + "pc": [ + 236 + ] + }, + { + "teal": 202, + "source": 97, + "pc": [ + 237, + 238, + 239 + ] + }, + { + "teal": 203, + "source": 97, + "pc": [ + 240 + ] + }, + { + "teal": 206, + "source": 97, + "pc": [ + 241, + 242, + 243 + ] + }, + { + "teal": 207, + "source": 97, + "pc": [ + 244 + ] + }, + { + "teal": 208, + "source": 97, + "pc": [ + 245 + ] + }, + { + "teal": 209, + "source": 97, + "pc": [ + 246 + ] + }, + { + "teal": 210, + "source": 97, + "pc": [ + 247 + ] + }, + { + "teal": 213, + "source": 97, + "errorMessage": "argument 3 (pubKey) for upload must be a address", + "pc": [ + 248 + ] + }, + { + "teal": 216, + "source": 97, + "pc": [ + 249, + 250, + 251 + ] + }, + { + "teal": 217, + "source": 97, + "pc": [ + 252 + ] + }, + { + "teal": 218, + "source": 97, + "pc": [ + 253 + ] + }, + { + "teal": 230, + "source": 97, + "pc": [ + 254, + 255, + 256 + ] + }, + { + "teal": 233, + "source": 97, + "pc": [ + 257 + ] + }, + { + "teal": 237, + "source": 98, + "pc": [ + 258, + 259 + ] + }, + { + "teal": 238, + "source": 98, + "pc": [ + 260, + 261 + ] + }, + { + "teal": 239, + "source": 98, + "pc": [ + 262 + ] + }, + { + "teal": 240, + "source": 98, + "pc": [ + 263 + ] + }, + { + "teal": 244, + "source": 100, + "pc": [ + 264, + 265 + ] + }, + { + "teal": 245, + "source": 100, + "pc": [ + 266, + 267 + ] + }, + { + "teal": 249, + "source": 100, + "pc": [ + 268, + 269 + ] + }, + { + "teal": 250, + "source": 100, + "pc": [ + 270, + 271 + ] + }, + { + "teal": 251, + "source": 100, + "pc": [ + 272 + ] + }, + { + "teal": 252, + "source": 100, + "pc": [ + 273 + ] + }, + { + "teal": 253, + "source": 101, + "pc": [ + 274 + ] + }, + { + "teal": 254, + "source": 26, + "pc": [ + 275 + ] + }, + { + "teal": 255, + "source": 101, + "pc": [ + 276 + ] + }, + { + "teal": 256, + "source": 101, + "pc": [ + 277 + ] + }, + { + "teal": 260, + "source": 100, + "pc": [ + 278, + 279 + ] + }, + { + "teal": 261, + "source": 100, + "pc": [ + 280 + ] + }, + { + "teal": 262, + "source": 100, + "pc": [ + 281 + ] + }, + { + "teal": 263, + "source": 100, + "pc": [ + 282 + ] + }, + { + "teal": 264, + "source": 102, + "pc": [ + 283 + ] + }, + { + "teal": 265, + "source": 102, + "pc": [ + 284, + 285 + ] + }, + { + "teal": 266, + "source": 102, + "pc": [ + 286 + ] + }, + { + "teal": 267, + "source": 102, + "pc": [ + 287 + ] + }, + { + "teal": 268, + "source": 102, + "pc": [ + 288, + 289, + 290 + ] + }, + { + "teal": 269, + "source": 102, + "pc": [ + 291, + 292 + ] + }, + { + "teal": 270, + "source": 100, + "pc": [ + 293, + 294 + ] + }, + { + "teal": 271, + "source": 100, + "pc": [ + 295 + ] + }, + { + "teal": 272, + "source": 100, + "pc": [ + 296 + ] + }, + { + "teal": 273, + "source": 100, + "pc": [ + 297 + ] + }, + { + "teal": 274, + "source": 102, + "pc": [ + 298 + ] + }, + { + "teal": 275, + "source": 102, + "pc": [ + 299 + ] + }, + { + "teal": 276, + "source": 102, + "pc": [ + 300 + ] + }, + { + "teal": 279, + "source": 102, + "pc": [ + 301 + ] + }, + { + "teal": 284, + "source": 104, + "pc": [ + 302, + 303 + ] + }, + { + "teal": 285, + "source": 104, + "pc": [ + 304 + ] + }, + { + "teal": 286, + "source": 104, + "pc": [ + 305 + ] + }, + { + "teal": 287, + "source": 104, + "pc": [ + 306, + 307, + 308 + ] + }, + { + "teal": 292, + "source": 105, + "pc": [ + 309, + 310 + ] + }, + { + "teal": 293, + "source": 105, + "pc": [ + 311 + ] + }, + { + "teal": 294, + "source": 105, + "pc": [ + 312, + 313 + ] + }, + { + "teal": 295, + "source": 100, + "pc": [ + 314, + 315 + ] + }, + { + "teal": 296, + "source": 100, + "pc": [ + 316 + ] + }, + { + "teal": 297, + "source": 100, + "pc": [ + 317 + ] + }, + { + "teal": 298, + "source": 100, + "pc": [ + 318 + ] + }, + { + "teal": 299, + "source": 105, + "pc": [ + 319 + ] + }, + { + "teal": 300, + "source": 105, + "pc": [ + 320 + ] + }, + { + "teal": 301, + "source": 105, + "pc": [ + 321, + 322, + 323 + ] + }, + { + "teal": 302, + "source": 100, + "pc": [ + 324, + 325 + ] + }, + { + "teal": 303, + "source": 100, + "pc": [ + 326, + 327 + ] + }, + { + "teal": 304, + "source": 100, + "pc": [ + 328 + ] + }, + { + "teal": 305, + "source": 100, + "pc": [ + 329 + ] + }, + { + "teal": 306, + "source": 105, + "pc": [ + 330 + ] + }, + { + "teal": 307, + "source": 105, + "pc": [ + 331, + 332, + 333 + ] + }, + { + "teal": 310, + "source": 105, + "pc": [ + 334, + 335 + ] + }, + { + "teal": 313, + "source": 105, + "pc": [ + 336 + ] + }, + { + "teal": 314, + "source": 105, + "pc": [ + 337 + ] + }, + { + "teal": 319, + "source": 108, + "pc": [ + 338, + 339 + ] + }, + { + "teal": 320, + "source": 108, + "pc": [ + 340 + ] + }, + { + "teal": 321, + "source": 108, + "pc": [ + 341, + 342 + ] + }, + { + "teal": 322, + "source": 108, + "pc": [ + 343, + 344 + ] + }, + { + "teal": 323, + "source": 108, + "pc": [ + 345 + ] + }, + { + "teal": 324, + "source": 97, + "pc": [ + 346 + ] + }, + { + "teal": 329, + "source": 117, + "pc": [ + 347, + 348, + 349 + ] + }, + { + "teal": 330, + "source": 117, + "pc": [ + 350 + ] + }, + { + "teal": 331, + "source": 117, + "pc": [ + 351 + ] + }, + { + "teal": 332, + "source": 117, + "pc": [ + 352 + ] + }, + { + "teal": 333, + "source": 117, + "pc": [ + 353 + ] + }, + { + "teal": 336, + "source": 117, + "errorMessage": "argument 0 (pubKey) for finishUpload must be a address", + "pc": [ + 354 + ] + }, + { + "teal": 339, + "source": 117, + "pc": [ + 355, + 356, + 357 + ] + }, + { + "teal": 340, + "source": 117, + "pc": [ + 358 + ] + }, + { + "teal": 341, + "source": 117, + "pc": [ + 359 + ] + }, + { + "teal": 350, + "source": 117, + "pc": [ + 360, + 361, + 362 + ] + }, + { + "teal": 354, + "source": 118, + "pc": [ + 363, + 364 + ] + }, + { + "teal": 355, + "source": 118, + "pc": [ + 365, + 366 + ] + }, + { + "teal": 356, + "source": 118, + "pc": [ + 367 + ] + }, + { + "teal": 357, + "source": 118, + "pc": [ + 368 + ] + }, + { + "teal": 361, + "source": 120, + "pc": [ + 369, + 370 + ] + }, + { + "teal": 362, + "source": 120, + "pc": [ + 371, + 372 + ] + }, + { + "teal": 363, + "source": 120, + "pc": [ + 373, + 374, + 375 + ] + }, + { + "teal": 364, + "source": 120, + "pc": [ + 376 + ] + }, + { + "teal": 365, + "source": 117, + "pc": [ + 377 + ] + }, + { + "teal": 370, + "source": 128, + "pc": [ + 378, + 379, + 380 + ] + }, + { + "teal": 371, + "source": 128, + "pc": [ + 381 + ] + }, + { + "teal": 372, + "source": 128, + "pc": [ + 382 + ] + }, + { + "teal": 373, + "source": 128, + "pc": [ + 383 + ] + }, + { + "teal": 374, + "source": 128, + "pc": [ + 384 + ] + }, + { + "teal": 377, + "source": 128, + "errorMessage": "argument 0 (pubKey) for startDelete must be a address", + "pc": [ + 385 + ] + }, + { + "teal": 380, + "source": 128, + "pc": [ + 386, + 387, + 388 + ] + }, + { + "teal": 381, + "source": 128, + "pc": [ + 389 + ] + }, + { + "teal": 382, + "source": 128, + "pc": [ + 390 + ] + }, + { + "teal": 390, + "source": 128, + "pc": [ + 391, + 392, + 393 + ] + }, + { + "teal": 393, + "source": 128, + "pc": [ + 394 + ] + }, + { + "teal": 397, + "source": 129, + "pc": [ + 395, + 396 + ] + }, + { + "teal": 398, + "source": 129, + "pc": [ + 397, + 398 + ] + }, + { + "teal": 399, + "source": 129, + "pc": [ + 399 + ] + }, + { + "teal": 400, + "source": 129, + "pc": [ + 400 + ] + }, + { + "teal": 404, + "source": 131, + "pc": [ + 401, + 402 + ] + }, + { + "teal": 405, + "source": 131, + "pc": [ + 403, + 404 + ] + }, + { + "teal": 409, + "source": 131, + "pc": [ + 405, + 406 + ] + }, + { + "teal": 410, + "source": 131, + "pc": [ + 407, + 408 + ] + }, + { + "teal": 411, + "source": 131, + "pc": [ + 409 + ] + }, + { + "teal": 412, + "source": 131, + "pc": [ + 410 + ] + }, + { + "teal": 413, + "source": 132, + "pc": [ + 411 + ] + }, + { + "teal": 414, + "source": 29, + "pc": [ + 412 + ] + }, + { + "teal": 415, + "source": 132, + "pc": [ + 413 + ] + }, + { + "teal": 416, + "source": 132, + "pc": [ + 414 + ] + }, + { + "teal": 420, + "source": 131, + "pc": [ + 415, + 416 + ] + }, + { + "teal": 421, + "source": 131, + "pc": [ + 417, + 418 + ] + }, + { + "teal": 422, + "source": 131, + "pc": [ + 419, + 420, + 421 + ] + }, + { + "teal": 423, + "source": 131, + "pc": [ + 422 + ] + }, + { + "teal": 424, + "source": 128, + "pc": [ + 423 + ] + }, + { + "teal": 429, + "source": 143, + "pc": [ + 424, + 425, + 426 + ] + }, + { + "teal": 430, + "source": 143, + "pc": [ + 427 + ] + }, + { + "teal": 433, + "source": 143, + "pc": [ + 428, + 429, + 430 + ] + }, + { + "teal": 434, + "source": 143, + "pc": [ + 431 + ] + }, + { + "teal": 435, + "source": 143, + "pc": [ + 432 + ] + }, + { + "teal": 436, + "source": 143, + "pc": [ + 433 + ] + }, + { + "teal": 437, + "source": 143, + "pc": [ + 434 + ] + }, + { + "teal": 440, + "source": 143, + "errorMessage": "argument 1 (pubKey) for deleteData must be a address", + "pc": [ + 435 + ] + }, + { + "teal": 443, + "source": 143, + "pc": [ + 436, + 437, + 438 + ] + }, + { + "teal": 444, + "source": 143, + "pc": [ + 439 + ] + }, + { + "teal": 445, + "source": 143, + "pc": [ + 440 + ] + }, + { + "teal": 454, + "source": 143, + "pc": [ + 441, + 442, + 443 + ] + }, + { + "teal": 457, + "source": 143, + "pc": [ + 444 + ] + }, + { + "teal": 458, + "source": 143, + "pc": [ + 445 + ] + }, + { + "teal": 462, + "source": 144, + "pc": [ + 446, + 447 + ] + }, + { + "teal": 463, + "source": 144, + "pc": [ + 448, + 449 + ] + }, + { + "teal": 464, + "source": 144, + "pc": [ + 450 + ] + }, + { + "teal": 465, + "source": 144, + "pc": [ + 451 + ] + }, + { + "teal": 469, + "source": 146, + "pc": [ + 452, + 453 + ] + }, + { + "teal": 470, + "source": 146, + "pc": [ + 454, + 455 + ] + }, + { + "teal": 474, + "source": 146, + "pc": [ + 456, + 457 + ] + }, + { + "teal": 475, + "source": 146, + "pc": [ + 458, + 459 + ] + }, + { + "teal": 476, + "source": 146, + "pc": [ + 460 + ] + }, + { + "teal": 477, + "source": 146, + "pc": [ + 461 + ] + }, + { + "teal": 478, + "source": 147, + "pc": [ + 462 + ] + }, + { + "teal": 479, + "source": 32, + "pc": [ + 463, + 464 + ] + }, + { + "teal": 480, + "source": 147, + "pc": [ + 465 + ] + }, + { + "teal": 481, + "source": 147, + "pc": [ + 466 + ] + }, + { + "teal": 485, + "source": 146, + "pc": [ + 467, + 468 + ] + }, + { + "teal": 486, + "source": 146, + "pc": [ + 469 + ] + }, + { + "teal": 487, + "source": 146, + "pc": [ + 470 + ] + }, + { + "teal": 488, + "source": 146, + "pc": [ + 471 + ] + }, + { + "teal": 489, + "source": 148, + "pc": [ + 472 + ] + }, + { + "teal": 490, + "source": 148, + "pc": [ + 473, + 474 + ] + }, + { + "teal": 491, + "source": 148, + "pc": [ + 475 + ] + }, + { + "teal": 492, + "source": 148, + "pc": [ + 476 + ] + }, + { + "teal": 493, + "source": 148, + "pc": [ + 477, + 478, + 479 + ] + }, + { + "teal": 494, + "source": 148, + "pc": [ + 480, + 481 + ] + }, + { + "teal": 495, + "source": 146, + "pc": [ + 482, + 483 + ] + }, + { + "teal": 496, + "source": 146, + "pc": [ + 484 + ] + }, + { + "teal": 497, + "source": 146, + "pc": [ + 485 + ] + }, + { + "teal": 498, + "source": 146, + "pc": [ + 486 + ] + }, + { + "teal": 499, + "source": 148, + "pc": [ + 487 + ] + }, + { + "teal": 500, + "source": 148, + "pc": [ + 488 + ] + }, + { + "teal": 501, + "source": 148, + "pc": [ + 489 + ] + }, + { + "teal": 504, + "source": 148, + "pc": [ + 490 + ] + }, + { + "teal": 509, + "source": 150, + "pc": [ + 491, + 492 + ] + }, + { + "teal": 510, + "source": 146, + "pc": [ + 493, + 494 + ] + }, + { + "teal": 511, + "source": 146, + "pc": [ + 495 + ] + }, + { + "teal": 512, + "source": 146, + "pc": [ + 496 + ] + }, + { + "teal": 513, + "source": 146, + "pc": [ + 497 + ] + }, + { + "teal": 514, + "source": 150, + "pc": [ + 498 + ] + }, + { + "teal": 515, + "source": 150, + "pc": [ + 499 + ] + }, + { + "teal": 516, + "source": 150, + "pc": [ + 500, + 501, + 502 + ] + }, + { + "teal": 521, + "source": 146, + "pc": [ + 503, + 504 + ] + }, + { + "teal": 522, + "source": 146, + "pc": [ + 505, + 506 + ] + }, + { + "teal": 523, + "source": 146, + "pc": [ + 507 + ] + }, + { + "teal": 524, + "source": 146, + "pc": [ + 508 + ] + }, + { + "teal": 525, + "source": 150, + "pc": [ + 509 + ] + }, + { + "teal": 526, + "source": 150, + "pc": [ + 510, + 511 + ] + }, + { + "teal": 527, + "source": 150, + "pc": [ + 512 + ] + }, + { + "teal": 528, + "source": 150, + "pc": [ + 513 + ] + }, + { + "teal": 529, + "source": 150, + "pc": [ + 514 + ] + }, + { + "teal": 530, + "source": 150, + "pc": [ + 515 + ] + }, + { + "teal": 535, + "source": 152, + "pc": [ + 516, + 517 + ] + }, + { + "teal": 536, + "source": 152, + "pc": [ + 518, + 519 + ] + }, + { + "teal": 537, + "source": 152, + "pc": [ + 520 + ] + }, + { + "teal": 538, + "source": 152, + "pc": [ + 521, + 522 + ] + }, + { + "teal": 542, + "source": 154, + "pc": [ + 523, + 524 + ] + }, + { + "teal": 543, + "source": 154, + "pc": [ + 525 + ] + }, + { + "teal": 544, + "source": 154, + "pc": [ + 526 + ] + }, + { + "teal": 549, + "source": 156, + "pc": [ + 527, + 528 + ] + }, + { + "teal": 550, + "source": 146, + "pc": [ + 529, + 530 + ] + }, + { + "teal": 551, + "source": 146, + "pc": [ + 531 + ] + }, + { + "teal": 552, + "source": 146, + "pc": [ + 532 + ] + }, + { + "teal": 553, + "source": 146, + "pc": [ + 533 + ] + }, + { + "teal": 554, + "source": 156, + "pc": [ + 534 + ] + }, + { + "teal": 555, + "source": 156, + "pc": [ + 535 + ] + }, + { + "teal": 556, + "source": 156, + "pc": [ + 536, + 537, + 538 + ] + }, + { + "teal": 561, + "source": 156, + "pc": [ + 539, + 540 + ] + }, + { + "teal": 562, + "source": 156, + "pc": [ + 541 + ] + }, + { + "teal": 563, + "source": 156, + "pc": [ + 542, + 543, + 544 + ] + }, + { + "teal": 568, + "source": 157, + "pc": [ + 545, + 546 + ] + }, + { + "teal": 569, + "source": 157, + "pc": [ + 547, + 548 + ] + }, + { + "teal": 570, + "source": 157, + "pc": [ + 549 + ] + }, + { + "teal": 571, + "source": 146, + "pc": [ + 550, + 551 + ] + }, + { + "teal": 572, + "source": 146, + "pc": [ + 552, + 553 + ] + }, + { + "teal": 573, + "source": 146, + "pc": [ + 554 + ] + }, + { + "teal": 581, + "source": 159, + "pc": [ + 555 + ] + }, + { + "teal": 582, + "source": 159, + "pc": [ + 556 + ] + }, + { + "teal": 583, + "source": 159, + "pc": [ + 557, + 558 + ] + }, + { + "teal": 587, + "source": 160, + "pc": [ + 559, + 560 + ] + }, + { + "teal": 588, + "source": 160, + "pc": [ + 561, + 562 + ] + }, + { + "teal": 589, + "source": 160, + "pc": [ + 563, + 564 + ] + }, + { + "teal": 590, + "source": 160, + "pc": [ + 565 + ] + }, + { + "teal": 591, + "source": 160, + "pc": [ + 566 + ] + }, + { + "teal": 592, + "source": 160, + "pc": [ + 567, + 568 + ] + }, + { + "teal": 596, + "source": 161, + "pc": [ + 569, + 570 + ] + }, + { + "teal": 597, + "source": 161, + "pc": [ + 571, + 572 + ] + }, + { + "teal": 600, + "source": 159, + "pc": [ + 573 + ] + }, + { + "teal": 601, + "source": 159, + "pc": [ + 574, + 575 + ] + }, + { + "teal": 604, + "source": 159, + "pc": [ + 576 + ] + }, + { + "teal": 605, + "source": 143, + "pc": [ + 577 + ] + }, + { + "teal": 610, + "source": 168, + "pc": [ + 578, + 579, + 580 + ] + }, + { + "teal": 611, + "source": 168, + "pc": [ + 581 + ] + }, + { + "teal": 612, + "source": 168, + "pc": [ + 582 + ] + }, + { + "teal": 618, + "source": 168, + "pc": [ + 583, + 584, + 585 + ] + }, + { + "teal": 622, + "source": 169, + "pc": [ + 586, + 587 + ] + }, + { + "teal": 623, + "source": 169, + "pc": [ + 588, + 589 + ] + }, + { + "teal": 624, + "source": 169, + "pc": [ + 590 + ] + }, + { + "teal": 625, + "source": 169, + "pc": [ + 591 + ] + }, + { + "teal": 626, + "source": 168, + "pc": [ + 592 + ] + }, + { + "teal": 631, + "source": 178, + "pc": [ + 593, + 594, + 595 + ] + }, + { + "teal": 632, + "source": 178, + "pc": [ + 596 + ] + }, + { + "teal": 633, + "source": 178, + "pc": [ + 597 + ] + }, + { + "teal": 642, + "source": 178, + "pc": [ + 598, + 599, + 600 + ] + }, + { + "teal": 643, + "source": 178, + "pc": [ + 601 + ] + }, + { + "teal": 646, + "source": 38, + "pc": [ + 602 + ] + }, + { + "teal": 647, + "source": 38, + "pc": [ + 603 + ] + }, + { + "teal": 650, + "source": 38, + "pc": [ + 604, + 605, + 606, + 607, + 608, + 609 + ] + }, + { + "teal": 651, + "source": 38, + "pc": [ + 610, + 611, + 612 + ] + }, + { + "teal": 652, + "source": 38, + "pc": [ + 613, + 614, + 615, + 616 + ] + }, + { + "teal": 655, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 617 + ] + }, + { + "teal": 658, + "source": 38, + "pc": [ + 618, + 619, + 620, + 621, + 622, + 623 + ] + }, + { + "teal": 659, + "source": 38, + "pc": [ + 624, + 625, + 626, + 627, + 628, + 629 + ] + }, + { + "teal": 660, + "source": 38, + "pc": [ + 630, + 631, + 632, + 633, + 634, + 635 + ] + }, + { + "teal": 661, + "source": 38, + "pc": [ + 636, + 637, + 638, + 639, + 640, + 641 + ] + }, + { + "teal": 662, + "source": 38, + "pc": [ + 642, + 643, + 644, + 645, + 646, + 647 + ] + }, + { + "teal": 663, + "source": 38, + "pc": [ + 648, + 649, + 650, + 651, + 652, + 653 + ] + }, + { + "teal": 664, + "source": 38, + "pc": [ + 654, + 655, + 656 + ] + }, + { + "teal": 665, + "source": 38, + "pc": [ + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670 + ] + }, + { + "teal": 668, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 671 + ] + }, + { + "teal": 671, + "source": 38, + "pc": [ + 672, + 673, + 674, + 675, + 676, + 677 + ] + }, + { + "teal": 672, + "source": 38, + "pc": [ + 678, + 679, + 680 + ] + }, + { + "teal": 673, + "source": 38, + "pc": [ + 681, + 682, + 683, + 684 + ] + }, + { + "teal": 676, + "source": 38, + "errorMessage": "this contract does not implement the given ABI method for call UpdateApplication", + "pc": [ + 685 + ] + } +] \ No newline at end of file diff --git a/reference_contract/contracts/did-algo-storage.algo.ts b/reference_contract/contracts/did-algo-storage.algo.ts new file mode 100644 index 0000000..0ddcd18 --- /dev/null +++ b/reference_contract/contracts/did-algo-storage.algo.ts @@ -0,0 +1,179 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { Contract } from '@algorandfoundation/tealscript'; + +/** Metadata about DID Document data */ +type Metadata = { + /** start - The index of the box at which the data starts */ + start: uint64, + + /** end - The index of the box at which the data ends */ + end: uint64, + + /** status - 0 if uploading, 1 if ready, 2 if deleting */ + status: uint<8>, + + /** The size of the last box */ + endSize: uint64, + + /** + * The index of the last box that was deleted. Used to ensure all boxes are deleted in order + * To prevent any missed boxes (thus missed MBR refund) + */ + lastDeleted: uint64 +}; + +/** Indicates the data is still being uploaded */ +const UPLOADING = >0; + +/** Indicates the data is done uploading and can be safely read */ +const READY = >1; + +/** Indicates the data is currently being deleted */ +const DELETING = >2; + +const COST_PER_BYTE = 400; +const COST_PER_BOX = 2500; +const MAX_BOX_SIZE = 32768; + +export class DIDAlgoStorage extends Contract { + /** The boxes that contain the data, indexed by uint64 */ + dataBoxes = BoxMap(); + + /** Metadata for a given pubkey */ + metadata = BoxMap(); + + /** The index of the next box to be created */ + currentIndex = GlobalStateKey(); + + /** + * + * Allocate boxes to begin data upload process + * + * @param pubKey The pubkey of the DID + * @param numBoxes The number of boxes that the data will take up + * @param endBoxSize The size of the last box + * @param mbrPayment Payment from the uploader to cover the box MBR + */ + startUpload( + pubKey: Address, + numBoxes: uint64, + endBoxSize: uint64, + mbrPayment: PayTxn, + ): void { + assert(this.txn.sender === globals.creatorAddress); + + const startBox = this.currentIndex.value; + const endBox = startBox + numBoxes - 1; + + const metadata: Metadata = { + start: startBox, end: endBox, status: UPLOADING, endSize: endBoxSize, lastDeleted: 0, + }; + + assert(!this.metadata(pubKey).exists); + + this.metadata(pubKey).value = metadata; + + this.currentIndex.value = endBox + 1; + + const totalCost = numBoxes * COST_PER_BOX // cost of data boxes + + (numBoxes - 1) * MAX_BOX_SIZE * COST_PER_BYTE // cost of data + + numBoxes * 8 * COST_PER_BYTE // cost of data keys + + endBoxSize * COST_PER_BYTE // cost of last data box + + COST_PER_BOX + (8 + 8 + 1 + 8 + 32 + 8) * COST_PER_BYTE; // cost of metadata box + + assert(mbrPayment.amount === totalCost); + assert(mbrPayment.receiver === this.app.address); + } + + /** + * + * Upload data to a specific offset in a box + * + * @param pubKey The pubkey of the DID + * @param boxIndex The index of the box to upload the given chunk of data to + * @param offset The offset within the box to start writing the data + * @param data The data to write + */ + upload(pubKey: Address, boxIndex: uint64, offset: uint64, data: bytes): void { + assert(this.txn.sender === globals.creatorAddress); + + const metadata = this.metadata(pubKey).value; + assert(metadata.status === UPLOADING); + assert(metadata.start <= boxIndex && boxIndex <= metadata.end); + + if (offset === 0) { + this.dataBoxes(boxIndex).create(boxIndex === metadata.end ? metadata.endSize : MAX_BOX_SIZE); + } + + this.dataBoxes(boxIndex).replace(offset, data); + } + + /** + * + * Mark uploading as false + * + * @param pubKey The address of the DID + */ + finishUpload(pubKey: Address): void { + assert(this.txn.sender === globals.creatorAddress); + + this.metadata(pubKey).value.status = READY; + } + + /** + * Starts the deletion process for the data associated with a DID + * + * @param pubKey The address of the DID + */ + startDelete(pubKey: Address): void { + assert(this.txn.sender === globals.creatorAddress); + + const metadata = this.metadata(pubKey).value; + assert(metadata.status === READY); + + metadata.status = DELETING; + } + + /** + * Deletes a box of data + * + * @param pubKey The address of the DID + * @param boxIndex The index of the box to delete + */ + deleteData(pubKey: Address, boxIndex: uint64): void { + assert(this.txn.sender === globals.creatorAddress); + + const metadata = this.metadata(pubKey).value; + assert(metadata.status === DELETING); + assert(metadata.start <= boxIndex && boxIndex <= metadata.end); + + if (boxIndex !== metadata.start) assert(metadata.lastDeleted === boxIndex - 1); + + const preMBR = globals.currentApplicationAddress.minBalance; + + this.dataBoxes(boxIndex).delete(); + + if (boxIndex === metadata.end) this.metadata(pubKey).delete(); + else metadata.lastDeleted = boxIndex; + + sendPayment({ + amount: preMBR - globals.currentApplicationAddress.minBalance, + receiver: this.txn.sender, + }); + } + + /** + * Allow the contract to be updated by the creator + */ + updateApplication(): void { + assert(this.txn.sender === globals.creatorAddress); + } + + /** + * Dummy function to add extra box references for deleteData. + * Boxes are 32k, but a single app call can only inlcude enough references to read/write 8k + * at a time. Thus when a box is deleted, we need to add additional dummy calls with box + * references to increase the total read/write budget to 32k. + */ + dummy(): void {} +} diff --git a/reference_contract/jest.config.js b/reference_contract/jest.config.js new file mode 100644 index 0000000..3745fc2 --- /dev/null +++ b/reference_contract/jest.config.js @@ -0,0 +1,5 @@ +/** @type {import('ts-jest').JestConfigWithTsJest} */ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'node', +}; diff --git a/reference_contract/package-lock.json b/reference_contract/package-lock.json new file mode 100644 index 0000000..e0ea321 --- /dev/null +++ b/reference_contract/package-lock.json @@ -0,0 +1,11235 @@ +{ + "name": "did-algo-storage", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "did-algo-storage", + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@algorandfoundation/algokit-utils": "^5.1.3", + "@algorandfoundation/tealscript": "^0.96.0", + "algosdk": "^2.6.0" + }, + "devDependencies": { + "@algorandfoundation/algokit-client-generator": "^2.2.1", + "@jest/globals": "^29.5.0", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-plugin-import": "^2.25.2", + "jest": "^29.5.0", + "ts-jest": "^29.1.0", + "typescript": "5.0.2" + } + }, + "node_modules/@algorandfoundation/algokit-client-generator": { + "version": "2.2.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@algorandfoundation/algokit-utils": "^2.1.0", + "chalk": "^4.1.2", + "change-case": "^4.1.2", + "commander": "^10.0.1", + "jsonschema": "^1.4.1" + }, + "bin": { + "algokit-client-generator": "bin/cli.js", + "algokitgen": "bin/cli.js" + } + }, + "node_modules/@algorandfoundation/algokit-client-generator/node_modules/@algorandfoundation/algokit-utils": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils/-/algokit-utils-2.3.2.tgz", + "integrity": "sha512-+Q4b8OVXogjkthapH04k+AqY19hxklfXFTmvoaQdQbbo2rUk1AgSXBRq0ThVg7n7RhfSMMUh0ZIL5bpse7MSKA==", + "dev": true, + "dependencies": { + "algosdk": "^2.3.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16.0" + } + }, + "node_modules/@algorandfoundation/algokit-utils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils/-/algokit-utils-5.1.3.tgz", + "integrity": "sha512-TYkJioqOSG4DhW8phAdMhGi5QUla64PRzoi+5Ixq4LA371xZ2zegQFvHjoXZXMIIJaD8HckihlDju7K7U3xj8Q==", + "dependencies": { + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "algosdk": "^2.7.0" + } + }, + "node_modules/@algorandfoundation/tealscript": { + "version": "0.96.0", + "resolved": "https://registry.npmjs.org/@algorandfoundation/tealscript/-/tealscript-0.96.0.tgz", + "integrity": "sha512-NKL+IpTpYpwYUHrVxMl/YQ0y+3+hPnShrPaSfy0fc68ftnhHuP7gIkFiwM4kuJvBcc3+StXY7dqb0tpQh3o0wg==", + "dependencies": { + "@microsoft/tsdoc": "^0.14.2", + "@playwright/test": "^1.40.1", + "argparse": "^2.0.1", + "dotenv": "^16.3.1", + "glob": "^10.3.10", + "js-sha512": "^0.8.0", + "node-fetch": "2", + "polytype": "^0.17.0", + "source-map": "^0.7.4", + "ts-morph": "^20.0.0", + "typescript": "^4.9.3", + "vlq": "^2.0.4" + }, + "bin": { + "tealscript": "dist/bin/tealscript.js" + } + }, + "node_modules/@algorandfoundation/tealscript/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@algorandfoundation/tealscript/node_modules/glob": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@algorandfoundation/tealscript/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@algorandfoundation/tealscript/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@algorandfoundation/tealscript/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.22.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.3", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.43.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.4.3", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/types": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "dependencies": { + "playwright": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.25.24", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.21.0.tgz", + "integrity": "sha512-ES110Mmne5Vi4ypUKrtVQfXFDtCsDXiUiGxF6ILVlE90dDD4fdpC1LSjydl/ml7xJWKSDZwUYD2zkOePMSrPBA==", + "dependencies": { + "fast-glob": "^3.2.12", + "minimatch": "^7.4.3", + "mkdirp": "^2.1.6", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.3.1", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/type-utils": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.5.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.60.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.60.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.5.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.5.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.60.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.60.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.9.0", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/algosdk": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.7.0.tgz", + "integrity": "sha512-sBE9lpV7bup3rZ+q2j3JQaFAE9JwZvjWKX00vPlG8e9txctXbgLL56jZhSWZndqhDI9oI+0P4NldkuQIWdrUyg==", + "dependencies": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.3", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.9", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001505", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-block-writer": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", + "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==" + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "dev": true, + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true, + "license": "MIT" + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.435", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.43.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.43.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "license": "MIT", + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-typescript": { + "version": "17.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-airbnb-base": "^15.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.3" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-scope": { + "version": "7.2.0", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.5.2", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "dev": true, + "license": "MIT" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==", + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.1", + "dev": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-watcher": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==", + "license": "MIT" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT" + }, + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "license": "MIT", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==", + "bin": { + "mkdirp": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.12", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "dependencies": { + "playwright-core": "1.44.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=16" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", + "bin": { + "playwright-core": "cli.js" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/polytype": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/polytype/-/polytype-0.17.0.tgz", + "integrity": "sha512-Q1y07MZqHPlGRJs8qI8bnxrQs+W3r24v25cmhbQV/lC9VNNtd+smi/2m3CUHNBDTfLtl+6SpA0EsL/J1oVsEag==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "29.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-jest": { + "version": "29.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.5.2", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-morph": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-20.0.0.tgz", + "integrity": "sha512-JVmEJy2Wow5n/84I3igthL9sudQ8qzjh/6i4tmYCm6IqYyKFlNbJZi7oBdjyqcWSWYRu3CtL0xbT6fS03ESZIg==", + "dependencies": { + "@ts-morph/common": "~0.21.0", + "code-block-writer": "^12.0.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.5.3", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==", + "license": "MIT" + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@algorandfoundation/algokit-client-generator": { + "version": "2.2.1", + "dev": true, + "requires": { + "@algorandfoundation/algokit-utils": "^2.1.0", + "chalk": "^4.1.2", + "change-case": "^4.1.2", + "commander": "^10.0.1", + "jsonschema": "^1.4.1" + }, + "dependencies": { + "@algorandfoundation/algokit-utils": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils/-/algokit-utils-2.3.2.tgz", + "integrity": "sha512-+Q4b8OVXogjkthapH04k+AqY19hxklfXFTmvoaQdQbbo2rUk1AgSXBRq0ThVg7n7RhfSMMUh0ZIL5bpse7MSKA==", + "dev": true, + "requires": { + "algosdk": "^2.3.0", + "buffer": "^6.0.3" + } + } + } + }, + "@algorandfoundation/algokit-utils": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils/-/algokit-utils-5.1.3.tgz", + "integrity": "sha512-TYkJioqOSG4DhW8phAdMhGi5QUla64PRzoi+5Ixq4LA371xZ2zegQFvHjoXZXMIIJaD8HckihlDju7K7U3xj8Q==", + "requires": { + "buffer": "^6.0.3" + } + }, + "@algorandfoundation/tealscript": { + "version": "0.96.0", + "resolved": "https://registry.npmjs.org/@algorandfoundation/tealscript/-/tealscript-0.96.0.tgz", + "integrity": "sha512-NKL+IpTpYpwYUHrVxMl/YQ0y+3+hPnShrPaSfy0fc68ftnhHuP7gIkFiwM4kuJvBcc3+StXY7dqb0tpQh3o0wg==", + "requires": { + "@microsoft/tsdoc": "^0.14.2", + "@playwright/test": "^1.40.1", + "argparse": "^2.0.1", + "dotenv": "^16.3.1", + "glob": "^10.3.10", + "js-sha512": "^0.8.0", + "node-fetch": "2", + "polytype": "^0.17.0", + "source-map": "^0.7.4", + "ts-morph": "^20.0.0", + "typescript": "^4.9.3", + "vlq": "^2.0.4" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", + "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==" + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + } + } + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/highlight": "^7.22.5" + } + }, + "@babel/compat-data": { + "version": "7.22.5", + "dev": true + }, + "@babel/core": { + "version": "7.22.5", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/highlight": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.5", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.22.5", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" + } + }, + "@babel/traverse": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.22.5", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.1", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.3", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.2", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.43.0", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/reporters": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.5.0", + "jest-config": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-resolve-dependencies": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "jest-watcher": "^29.5.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0" + } + }, + "@jest/expect": { + "version": "29.5.0", + "dev": true, + "requires": { + "expect": "^29.5.0", + "jest-snapshot": "^29.5.0" + } + }, + "@jest/expect-utils": { + "version": "29.5.0", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3" + } + }, + "@jest/fake-timers": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "@jest/globals": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/types": "^29.5.0", + "jest-mock": "^29.5.0" + } + }, + "@jest/reporters": { + "version": "29.5.0", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + } + }, + "@jest/schemas": { + "version": "29.4.3", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.25.16" + } + }, + "@jest/source-map": { + "version": "29.4.3", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.15", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + } + }, + "@jest/test-result": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.5.0", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.5.0", + "@jridgewell/trace-mapping": "^0.3.15", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + } + } + }, + "@jest/types": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.18", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@microsoft/tsdoc": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.14.2.tgz", + "integrity": "sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@playwright/test": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", + "requires": { + "playwright": "1.44.1" + } + }, + "@sinclair/typebox": { + "version": "0.25.24", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", + "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@ts-morph/common": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.21.0.tgz", + "integrity": "sha512-ES110Mmne5Vi4ypUKrtVQfXFDtCsDXiUiGxF6ILVlE90dDD4fdpC1LSjydl/ml7xJWKSDZwUYD2zkOePMSrPBA==", + "requires": { + "fast-glob": "^3.2.12", + "minimatch": "^7.4.3", + "mkdirp": "^2.1.6", + "path-browserify": "^1.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz", + "integrity": "sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@types/babel__core": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", + "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", + "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", + "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "20.3.1", + "dev": true + }, + "@types/prettier": { + "version": "2.7.3", + "dev": true + }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "@types/yargs": { + "version": "17.0.24", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", + "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.60.0", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/type-utils": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.60.0", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.60.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.60.0", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.60.0", + "@typescript-eslint/utils": "5.60.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.60.0", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.60.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/visitor-keys": "5.60.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "5.60.0", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.60.0", + "@typescript-eslint/types": "5.60.0", + "@typescript-eslint/typescript-estree": "5.60.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "dependencies": { + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "semver": { + "version": "7.5.2", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.60.0", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.60.0", + "eslint-visitor-keys": "^3.3.0" + } + }, + "acorn": { + "version": "8.9.0", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" + }, + "algosdk": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-2.7.0.tgz", + "integrity": "sha512-sBE9lpV7bup3rZ+q2j3JQaFAE9JwZvjWKX00vPlG8e9txctXbgLL56jZhSWZndqhDI9oI+0P4NldkuQIWdrUyg==", + "requires": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.3", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + } + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-jest": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/transform": "^29.5.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.5.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", + "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", + "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.5.0", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.9", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001505", + "dev": true + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "ci-info": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "code-block-writer": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-12.0.0.tgz", + "integrity": "sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==" + }, + "collect-v8-coverage": { + "version": "1.0.1", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "0.7.0", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.4.3.tgz", + "integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "electron-to-chromium": { + "version": "1.4.435", + "dev": true + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.21.2", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.43.0", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.3", + "@eslint/js": "8.43.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.5.2", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + } + }, + "eslint-config-airbnb-typescript": { + "version": "17.0.0", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^15.0.0" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.7", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.27.5", + "dev": true, + "requires": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-scope": { + "version": "7.2.0", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.4.1", + "dev": true + }, + "espree": { + "version": "9.5.2", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + } + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.12.1", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.10", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.5", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jest": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/core": "^29.5.0", + "@jest/types": "^29.5.0", + "import-local": "^3.0.2", + "jest-cli": "^29.5.0" + } + }, + "jest-changed-files": { + "version": "29.5.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.5.0.tgz", + "integrity": "sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/expect": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.5.0", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.5.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/core": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "prompts": "^2.0.1", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.5.0", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.5.0", + "@jest/types": "^29.5.0", + "babel-jest": "^29.5.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-runner": "^29.5.0", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "29.5.0", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-docblock": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz", + "integrity": "sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "jest-util": "^29.5.0", + "pretty-format": "^29.5.0" + } + }, + "jest-environment-node": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-mock": "^29.5.0", + "jest-util": "^29.5.0" + } + }, + "jest-get-type": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.4.3.tgz", + "integrity": "sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==", + "dev": true + }, + "jest-haste-map": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.4.3", + "jest-util": "^29.5.0", + "jest-worker": "^29.5.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.5.0", + "dev": true, + "requires": { + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-matcher-utils": { + "version": "29.5.0", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + } + }, + "jest-message-util": { + "version": "29.5.0", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "jest-util": "^29.5.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.4.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", + "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "dev": true + }, + "jest-resolve": { + "version": "29.5.0", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.5.0", + "jest-validate": "^29.5.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.5.0", + "dev": true, + "requires": { + "jest-regex-util": "^29.4.3", + "jest-snapshot": "^29.5.0" + } + }, + "jest-runner": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/console": "^29.5.0", + "@jest/environment": "^29.5.0", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.4.3", + "jest-environment-node": "^29.5.0", + "jest-haste-map": "^29.5.0", + "jest-leak-detector": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-resolve": "^29.5.0", + "jest-runtime": "^29.5.0", + "jest-util": "^29.5.0", + "jest-watcher": "^29.5.0", + "jest-worker": "^29.5.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/environment": "^29.5.0", + "@jest/fake-timers": "^29.5.0", + "@jest/globals": "^29.5.0", + "@jest/source-map": "^29.4.3", + "@jest/test-result": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-mock": "^29.5.0", + "jest-regex-util": "^29.4.3", + "jest-resolve": "^29.5.0", + "jest-snapshot": "^29.5.0", + "jest-util": "^29.5.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "29.5.0", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.5.0", + "@jest/transform": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/babel__traverse": "^7.0.6", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.5.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.5.0", + "semver": "^7.3.5" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "jest-util": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/types": "^29.5.0", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.4.3", + "leven": "^3.1.0", + "pretty-format": "^29.5.0" + } + }, + "jest-watcher": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/test-result": "^29.5.0", + "@jest/types": "^29.5.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.5.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.5.0", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.5.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + }, + "mkdirp": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-2.1.6.tgz", + "integrity": "sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.12", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "object.values": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==" + } + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "playwright": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", + "requires": { + "fsevents": "2.3.2", + "playwright-core": "1.44.1" + } + }, + "playwright-core": { + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==" + }, + "polytype": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/polytype/-/polytype-0.17.0.tgz", + "integrity": "sha512-Q1y07MZqHPlGRJs8qI8bnxrQs+W3r24v25cmhbQV/lC9VNNtd+smi/2m3CUHNBDTfLtl+6SpA0EsL/J1oVsEag==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-format": { + "version": "29.5.0", + "dev": true, + "requires": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "pure-rand": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz", + "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.0", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "functions-have-names": "^1.2.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.2", + "dev": true, + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "semver": { + "version": "6.3.0", + "dev": true + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz", + "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "string.prototype.trimstart": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-jest": { + "version": "29.1.0", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "7.x", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "semver": { + "version": "7.5.2", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "ts-morph": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-20.0.0.tgz", + "integrity": "sha512-JVmEJy2Wow5n/84I3igthL9sudQ8qzjh/6i4tmYCm6IqYyKFlNbJZi7oBdjyqcWSWYRu3CtL0xbT6fS03ESZIg==", + "requires": { + "@ts-morph/common": "~0.21.0", + "code-block-writer": "^12.0.0" + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "2.5.3", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.2.tgz", + "integrity": "sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-to-istanbul": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz", + "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0" + } + }, + "vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.9", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + } + }, + "word-wrap": { + "version": "1.2.3", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/reference_contract/package.json b/reference_contract/package.json new file mode 100644 index 0000000..c020c34 --- /dev/null +++ b/reference_contract/package.json @@ -0,0 +1,30 @@ +{ + "name": "did-algo-storage", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "compile-contract": "tealscript contracts/did-algo-storage.algo.ts contracts/artifacts", + "build": "npm run compile-contract && cp contracts/artifacts/* ../client/internal/contracts", + "test": "npm run build && jest", + "lint": "eslint . --ext .ts", + "fix": "eslint . --ext .ts --fix" + }, + "dependencies": { + "@algorandfoundation/algokit-utils": "^5.1.3", + "@algorandfoundation/tealscript": "^0.96.0", + "algosdk": "^2.6.0" + }, + "devDependencies": { + "@algorandfoundation/algokit-client-generator": "^2.2.1", + "@jest/globals": "^29.5.0", + "@typescript-eslint/eslint-plugin": "^5.13.0", + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^7.32.0 || ^8.2.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-plugin-import": "^2.25.2", + "jest": "^29.5.0", + "ts-jest": "^29.1.0", + "typescript": "5.0.2" + } +} diff --git a/reference_contract/src/index.ts b/reference_contract/src/index.ts new file mode 100644 index 0000000..7787045 --- /dev/null +++ b/reference_contract/src/index.ts @@ -0,0 +1,369 @@ +/* eslint-disable no-await-in-loop */ +/* eslint-disable no-restricted-syntax */ +import algosdk, { ABIMethod, ABIResult } from 'algosdk'; +import { ApplicationClient } from '@algorandfoundation/algokit-utils/types/app-client'; +import { AppCallTransactionResult } from '@algorandfoundation/algokit-utils/types/app'; +import { expect } from '@jest/globals'; +import { SuggestedParamsWithMinFee } from 'algosdk/dist/types/types/transactions/base'; +import appSpec from '../contracts/artifacts/DIDAlgoStorage.arc32.json'; + +const COST_PER_BYTE = 400; +const COST_PER_BOX = 2500; +const MAX_BOX_SIZE = 32768; + +const BYTES_PER_CALL = 2048 +- 4 // 4 bytes for the method selector +- 34 // 34 bytes for the key +- 8 // 8 bytes for the box index +- 8; // 8 bytes for the offset + +export type Metadata = {start: bigint, end: bigint, status: bigint, endSize: bigint}; + +export async function resolveDID(did: string, algodClient: algosdk.Algodv2): Promise { + const splitDid = did.split(':'); + + const idxOffset = splitDid.length === 6 ? 0 : 1; + + if (splitDid[0] !== 'did') { + throw new Error(`invalid protocol, expected 'did', got ${splitDid[0]}`); + } + if (splitDid[1] !== 'algo') { + throw new Error(`invalid DID method, expected 'algo', got ${splitDid[1]}`); + } + + const nameSpace = splitDid[3 - idxOffset]; + + if (nameSpace !== 'app') { + throw new Error(`invalid namespace, expected 'app', got ${nameSpace}`); + } + + const pubKey = Buffer.from(splitDid[5 - idxOffset], 'hex'); + + let appID: bigint; + + try { + appID = BigInt(splitDid[4 - idxOffset]); + algosdk.encodeUint64(appID); + } catch (e) { + throw new Error( + `invalid app ID, expected uint64, got ${splitDid[4 - idxOffset]}`, + ); + } + + const appClient = new ApplicationClient({ + resolveBy: 'id', + id: appID, + sender: algosdk.generateAccount(), + app: JSON.stringify(appSpec), + }, algodClient); + + const boxValue = (await appClient.getBoxValueFromABIType(pubKey, algosdk.ABIType.from('(uint64,uint64,uint8,uint64,uint64)'))).valueOf() as bigint[]; + + const metadata: Metadata = { + start: boxValue[0], end: boxValue[1], status: boxValue[2], endSize: boxValue[3], + }; + + if (metadata.status === BigInt(0)) throw new Error('DID document is still being uploaded'); + if (metadata.status === BigInt(2)) throw new Error('DID document is being deleted'); + + const boxPromises = []; + for (let i = metadata.start; i <= metadata.end; i += 1n) { + boxPromises.push(appClient.getBoxValue(algosdk.encodeUint64(i))); + } + + const boxValues = await Promise.all(boxPromises); + + return Buffer.concat(boxValues); +} + +/** + * + * @param algodClient + * @param abiMethod + * @param pubKey + * @param boxes + * @param boxIndex + * @param suggestedParams + * @param sender + * @param appID + * @param group + * @returns + */ +export async function sendTxGroup( + algodClient: algosdk.Algodv2, + abiMethod: ABIMethod, + bytesOffset: number, + pubKey: Uint8Array, + boxes: algosdk.BoxReference[], + boxIndex: bigint, + suggestedParams: SuggestedParamsWithMinFee, + sender: algosdk.Account, + appID: number, + group: Buffer[], +): Promise { + const atc = new algosdk.AtomicTransactionComposer(); + group.forEach((chunk, i) => { + atc.addMethodCall({ + method: abiMethod!, + methodArgs: [pubKey, boxIndex, BYTES_PER_CALL * (i + bytesOffset), chunk], + boxes, + suggestedParams, + sender: sender.addr, + signer: algosdk.makeBasicAccountTransactionSigner(sender), + appID, + }); + }); + + await new Promise((r) => setTimeout(r, 2000)); + return (await atc.execute(algodClient, 3)).txIDs; +} + +/** + * + * @param atc + * @param algodClient + * @param retryCount + */ +async function tryExecute( + atc: algosdk.AtomicTransactionComposer, + algodClient: algosdk.Algodv2, + retryCount = 1, +): Promise { + try { + await atc.execute(algodClient, 3); + } catch (e) { + if (retryCount === 3) { + // TODO: SDK bugfix + // const execTraceConfig = new algosdk.modelsv2.SimulateTraceConfig({ + // enable: true, + // stackChange: true, + // stateChange: true, + // scratchChange: true, + // }); + + // const simReq = new algosdk.modelsv2.SimulateRequest({ + // txnGroups: [], + // execTraceConfig, + // }); + // const result = await atc.simulate(algodClient, simReq); + + // console.warn(result.simulateResponse.txnGroups[0].txnResults[0].execTrace); + throw e; + } + + // eslint-disable-next-line no-console + console.warn(`Failed to send transaction group. Retrying in ${500 * retryCount}ms (${retryCount / 3})`); + } +} + +/** + * + * @param data + * @param appID + * @param pubKey + * @param sender + * @param algodClient + * @returns + */ +export async function uploadDIDDocument( + data: Buffer, + appID: number, + pubKey: Uint8Array, + sender: algosdk.Account, + algodClient: algosdk.Algodv2, +): Promise { + const appClient = new ApplicationClient({ + resolveBy: 'id', + id: appID, + sender, + app: JSON.stringify(appSpec), + }, algodClient); + + const ceilBoxes = Math.ceil(data.byteLength / MAX_BOX_SIZE); + + const endBoxSize = data.byteLength % MAX_BOX_SIZE; + + const totalCost = ceilBoxes * COST_PER_BOX // cost of data boxes + + (ceilBoxes - 1) * MAX_BOX_SIZE * COST_PER_BYTE // cost of data + + ceilBoxes * 8 * COST_PER_BYTE // cost of data keys + + endBoxSize * COST_PER_BYTE // cost of last data box + + COST_PER_BOX + (8 + 8 + 1 + 8 + 32 + 8) * COST_PER_BYTE; // cost of metadata box + + const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({ + from: sender.addr, + to: (await appClient.getAppReference()).appAddress, + amount: totalCost, + suggestedParams: await algodClient.getTransactionParams().do(), + }); + + const appCallResult: AppCallTransactionResult = await appClient.call({ + method: 'startUpload', + methodArgs: [pubKey, ceilBoxes, endBoxSize, mbrPayment], + boxes: [ + pubKey, + ], + sendParams: { suppressLog: true }, + }); + expect(appCallResult).toBeDefined(); + + const boxValue = (await appClient.getBoxValueFromABIType(pubKey, algosdk.ABIType.from('(uint64,uint64,uint8,uint64,uint64)'))).valueOf() as bigint[]; + + const metadata: Metadata = { + start: boxValue[0], end: boxValue[1], status: boxValue[2], endSize: boxValue[3], + }; + + const numBoxes = Math.floor(data.byteLength / MAX_BOX_SIZE); + const boxData: Buffer[] = []; + + for (let i = 0; i < numBoxes; i += 1) { + const box = data.subarray(i * MAX_BOX_SIZE, (i + 1) * MAX_BOX_SIZE); + boxData.push(box); + } + + boxData.push(data.subarray(numBoxes * MAX_BOX_SIZE, data.byteLength)); + + const suggestedParams: SuggestedParamsWithMinFee = await algodClient.getTransactionParams().do(); + + const boxPromises = boxData.map(async (box, boxIndexOffset) => { + const boxIndex = metadata.start + BigInt(boxIndexOffset); + const numChunks = Math.ceil(box.byteLength / BYTES_PER_CALL); + + const chunks: Buffer[] = []; + + for (let i = 0; i < numChunks; i += 1) { + chunks.push(box.subarray(i * BYTES_PER_CALL, (i + 1) * BYTES_PER_CALL)); + } + + const boxRef = { appIndex: 0, name: algosdk.encodeUint64(boxIndex) }; + const boxes: algosdk.BoxReference[] = new Array(7).fill(boxRef); + + boxes.push({ appIndex: 0, name: pubKey }); + + const firstGroup = chunks.slice(0, 8); + const secondGroup = chunks.slice(8); + + await sendTxGroup(algodClient, appClient.getABIMethod('upload')!, 0, pubKey, boxes, boxIndex, suggestedParams, sender, appID, firstGroup); + + if (secondGroup.length === 0) return; + + await sendTxGroup(algodClient, appClient.getABIMethod('upload')!, 8, pubKey, boxes, boxIndex, suggestedParams, sender, appID, secondGroup); + }); + + await Promise.all(boxPromises); + if (Buffer.concat(boxData).toString('hex') !== data.toString('hex')) throw new Error('Data validation failed!'); + + await appClient.call({ + method: 'finishUpload', + methodArgs: [pubKey], + boxes: [ + pubKey, + ], + sendParams: { suppressLog: true }, + }); + + return metadata; +} + +/* +export async function uploadDIDDocument( + data: Buffer, + appID: number, + pubKey: Uint8Array, + sender: algosdk.Account, + algodClient: algosdk.Algodv2, +): Promise { + */ +export async function deleteDIDDocument( + appID: number, + pubKey: Uint8Array, + sender: algosdk.Account, + algodClient: algosdk.Algodv2, +): Promise { + const appClient = new ApplicationClient({ + resolveBy: 'id', + id: appID, + sender: algosdk.generateAccount(), + app: JSON.stringify(appSpec), + }, algodClient); + + const boxValue = (await appClient.getBoxValueFromABIType(pubKey, algosdk.ABIType.from('(uint64,uint64,uint8,uint64,uint64)'))).valueOf() as bigint[]; + + const metadata: Metadata = { + start: boxValue[0], end: boxValue[1], status: boxValue[2], endSize: boxValue[3], + }; + + await appClient.call({ + method: 'startDelete', + methodArgs: [pubKey], + boxes: [ + pubKey, + ], + sender, + sendParams: { suppressLog: true }, + }); + + const suggestedParams = await algodClient.getTransactionParams().do(); + + const atcs: {boxIndex: bigint, atc: algosdk.AtomicTransactionComposer}[] = []; + for (let boxIndex = metadata.start; boxIndex <= metadata.end; boxIndex += 1n) { + const atc = new algosdk.AtomicTransactionComposer(); + const boxIndexRef = { appIndex: appID, name: algosdk.encodeUint64(boxIndex) }; + atc.addMethodCall({ + appID, + method: appClient.getABIMethod('deleteData')!, + methodArgs: [pubKey, boxIndex], + boxes: [ + { appIndex: appID, name: pubKey }, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + ], + suggestedParams: { ...suggestedParams, fee: 2000, flatFee: true }, + sender: sender.addr, + signer: algosdk.makeBasicAccountTransactionSigner(sender), + }); + + for (let i = 0; i < 4; i += 1) { + atc.addMethodCall({ + appID, + method: appClient.getABIMethod('dummy')!, + methodArgs: [], + boxes: [ + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + boxIndexRef, + ], + suggestedParams, + sender: sender.addr, + signer: algosdk.makeBasicAccountTransactionSigner(sender), + note: new Uint8Array(Buffer.from(`dummy ${i}`)), + }); + } + + atcs.push({ atc, boxIndex }); + } + + for await (const atcAndIndex of atcs) { + await tryExecute(atcAndIndex.atc, algodClient); + } +} + +export async function updateDIDDocument( + data: Buffer, + appID: number, + pubKey: Uint8Array, + sender: algosdk.Account, + algodClient: algosdk.Algodv2, +): Promise { + await deleteDIDDocument(appID, pubKey, sender, algodClient); + return uploadDIDDocument(data, appID, pubKey, sender, algodClient); +} diff --git a/reference_contract/tsconfig.json b/reference_contract/tsconfig.json new file mode 100644 index 0000000..a74f6dc --- /dev/null +++ b/reference_contract/tsconfig.json @@ -0,0 +1,103 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2020", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs", /* Specify what module code is generated. */ + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + "resolveJsonModule": true, /* Enable importing .json files. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ + + /* Type Checking */ + "strict": true, /* Enable all strict type-checking options. */ + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +}